From 9b5a87bbcfbbce571af46cdbacef51a83a0b6067 Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <67171972+IoTManagerProject@users.noreply.github.com> Date: Mon, 7 Feb 2022 23:49:29 +0100 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=B2=D0=B5=D0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_svelte/build/bundle.css | 6 +- data_svelte/build/bundle.js | 9954 +++++++++++++++++++++++++++++++++- src/DeviceList.cpp | 9 +- src/Main.cpp | 2 +- src/WsServer.cpp | 4 +- 5 files changed, 9967 insertions(+), 8 deletions(-) diff --git a/data_svelte/build/bundle.css b/data_svelte/build/bundle.css index b6ca09bb..cf50bd18 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-3cols{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.grd-3cols{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1024px){.grd-3cols{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1280px){.grd-3cols{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1536px){.grd-3cols{grid-template-columns:repeat(3, minmax(0, 1fr))}}.grd-1cols{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center}.crd-itm-psn{margin-bottom:0.75rem;display:flex;height:2rem;align-items:center}.wgt-dscr-w{width:66.666667%}.wgt-dscr-stl{padding-right:1rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.wgt-w{display:flex;width:33.333333%;justify-content:flex-end}.wgt-ipt{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))}.wgt-ipt:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.wgt-ipt{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))}.wgt-ipt:focus{outline:2px solid transparent;outline-offset:2px}.jsn-ipt{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))}.jsn-ipt:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.jsn-ipt{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.jsn-ipt:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.jsn-ipt{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))}.jsn-ipt:focus{outline:2px solid transparent;outline-offset:2px}.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{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem;text-align:center}.tbl-s-bdy{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem}.tbl-ipt{margin-top:0.5rem;height:1.75rem;align-content:center;border-width:2px;--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.tbl-ipt:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.tbl-ipt{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.tbl-ipt:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.tbl-ipt{text-align:center;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.tbl-ipt:focus{outline:2px solid transparent;outline-offset:2px}.tbl-s-ipt{height:1.5rem;align-content:center;border-radius:0.125rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.tbl-s-ipt:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.tbl-s-ipt{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.tbl-s-ipt:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.tbl-s-ipt{text-align:center;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.tbl-s-ipt:focus{outline:2px solid transparent;outline-offset:2px}.tbl-s-txt{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))}.tbl-txt-p{padding-left:0.5rem;padding-right:0.5rem;padding-top:0px;padding-bottom:0px}@media(min-width: 640px){.tbl-txt-p{padding-top:0px;padding-bottom:0px}}@media(min-width: 768px){.tbl-txt-p{padding-top:0px;padding-bottom:0px}}@media(min-width: 1024px){.tbl-txt-p{padding-top:0.25rem;padding-bottom:0.25rem}}@media(min-width: 1280px){.tbl-txt-p{padding-top:0.5rem;padding-bottom:0.5rem}}@media(min-width: 1536px){.tbl-txt-p{padding-top:0.5rem;padding-bottom:0.5rem}}.tbl-txt-sz{font-size:.5rem}@media(min-width: 640px){.tbl-txt-sz{font-size:1rem}}@media(min-width: 768px){.tbl-txt-sz{font-size:1rem}}@media(min-width: 1024px){.tbl-txt-sz{font-size:1rem}}@media(min-width: 1280px){.tbl-txt-sz{font-size:1rem}}@media(min-width: 1536px){.tbl-txt-sz{font-size:1rem}}.btn-lg{margin-top:0px;display:flex;height:2rem;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-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.grd-2colsfx{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.grd-2colsfx{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1024px){.grd-2colsfx{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1280px){.grd-2colsfx{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1536px){.grd-2colsfx{grid-template-columns:repeat(2, minmax(0, 1fr))}}.grd-2cols{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.grd-2cols{grid-template-columns:repeat(1, minmax(0, 1fr))}}@media(min-width: 1024px){.grd-2cols{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1280px){.grd-2cols{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1536px){.grd-2cols{grid-template-columns:repeat(2, minmax(0, 1fr))}}.slct-lg{margin-bottom:0px;display:flex;height:2rem;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-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-3{margin-bottom:0.75rem}.mb-4{margin-bottom:1rem}.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-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.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-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-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-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, 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-2{padding-left:0.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.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-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))}*,::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-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.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\: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\: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\: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\:px-8{padding-left:2rem;padding-right:2rem}.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\: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\:px-8{padding-left:2rem;padding-right:2rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom: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(1, 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-w{width:66.666667%}.wgt-dscr-stl{padding-right:1rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.wgt-w{display:flex;width:33.333333%;justify-content:flex-end}.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:1rem;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:.5rem;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:1rem;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:.5rem;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-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-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-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, 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-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.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-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))}*,::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-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.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\:px-8{padding-left:2rem;padding-right:2rem}.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\:px-8{padding-left:2rem;padding-right:2rem}.\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-hdr{padding-bottom:0px;text-align:center;font-size:1rem;--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.alm{margin-bottom:1rem;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}}.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-3{margin-bottom:0.75rem}.mb-4{margin-bottom:1rem}.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-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.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-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-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-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, 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-2{padding-left:0.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.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-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))}*,::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-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.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\: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\: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\: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\:px-8{padding-left:2rem;padding-right:2rem}.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\: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\:px-8{padding-left:2rem;padding-right:2rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom: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;--tw-text-opacity:1;color:rgba(239, 68, 68, 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-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-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-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, 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-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.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-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))}*,::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-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.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\:px-8{padding-left:2rem;padding-right:2rem}.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\:px-8{padding-left:2rem;padding-right:2rem}.\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{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:2rem;padding-right:2rem;padding-top:1rem;padding-bottom:1rem}}@media(min-width: 1536px){.crd{padding-left:2rem;padding-right:2rem;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-3{margin-bottom:0.75rem}.mb-4{margin-bottom:1rem}.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-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.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-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-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-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, 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-2{padding-left:0.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.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-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))}*,::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-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.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\: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\: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\: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\:px-8{padding-left:2rem;padding-right:2rem}.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\: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\:px-8{padding-left:2rem;padding-right:2rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom: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:2rem;padding-right:2rem;padding-top:1rem;padding-bottom:1rem}}@media(min-width: 1536px){.crd{padding-left:2rem;padding-right:2rem;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-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-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-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, 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-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.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-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))}*,::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-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.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\:px-8{padding-left:2rem;padding-right:2rem}.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\:px-8{padding-left:2rem;padding-right:2rem}.\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 ae346cfe..ab7bcb1b 100644 --- a/data_svelte/build/bundle.js +++ b/data_svelte/build/bundle.js @@ -1,2 +1,9954 @@ -var app=function(){"use strict";function t(){}function e(t){return t()}function n(){return Object.create(null)}function i(t){t.forEach(e)}function s(t){return"function"==typeof t}function a(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function r(e,n,i){e.$$.on_destroy.push(function(e,...n){if(null==e)return t;const i=e.subscribe(...n);return i.unsubscribe?()=>i.unsubscribe():i}(n,i))}function o(t,e,n,i){if(t){const s=l(t,e,n,i);return t[0](s)}}function l(t,e,n,i){return t[1]&&i?function(t,e){for(const n in e)t[n]=e[n];return t}(n.ctx.slice(),t[1](i(e))):n.ctx}function c(t,e,n,i){if(t[2]&&i){const s=t[2](i(n));if(void 0===e.dirty)return s;if("object"==typeof s){const t=[],n=Math.max(e.dirty.length,s.length);for(let i=0;i32){const e=[],n=t.ctx.length/32;for(let t=0;tt.removeEventListener(e,n,i)}function $(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function k(t){return""===t?null:+t}function O(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function A(t,e){t.value=null==e?"":e}function P(t,e){for(let n=0;nt.call(this,e)))}const D=[],E=[],z=[],j=[],H=Promise.resolve();let F=!1;function J(){F||(F=!0,H.then(q))}function W(){return J(),H}function R(t){z.push(t)}function I(t){j.push(t)}const B=new Set;let Y=0;function q(){const t=T;do{for(;Y{V.delete(t),i&&(n&&t.d(1),i())})),t.o(e)}}function tt(t,e,n){const i=t.$$.props[e];void 0!==i&&(t.$$.bound[i]=n,n(t.$$.ctx[i]))}function et(t){t&&t.c()}function nt(t,n,a,r){const{fragment:o,on_mount:l,on_destroy:c,after_update:u}=t.$$;o&&o.m(n,a),r||R((()=>{const n=l.map(e).filter(s);c?c.push(...n):i(n),t.$$.on_mount=[]})),u.forEach(R)}function it(t,e){const n=t.$$;null!==n.fragment&&(i(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function st(e,s,a,r,o,l,c,u=[-1]){const d=T;M(e);const h=e.$$={fragment:null,ctx:null,props:l,update:t,not_equal:o,bound:n(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(s.context||(d?d.$$.context:[])),callbacks:n(),dirty:u,skip_bound:!1,root:s.target||d.$$.root};c&&c(h.root);let p=!1;if(h.ctx=a?a(e,s.props||{},((t,n,...i)=>{const s=i.length?i[0]:n;return h.ctx&&o(h.ctx[t],h.ctx[t]=s)&&(!h.skip_bound&&h.bound[t]&&h.bound[t](s),p&&function(t,e){-1===t.$$.dirty[0]&&(D.push(t),J(),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 i;const s=new Set;function r(t){if(a(e,t)&&(e=t,i)){const t=!rt.length;for(const t of s)t[1](),rt.push(t,e);if(t){for(let t=0;t{s.delete(l),0===s.size&&(i(),i=null)}}}}function lt(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 ct(t,e,n){if(""===n)return t;if("/"===n[0])return n;let i=t=>t.split("/").filter((t=>""!==t)),s=i(t);return"/"+(e?i(e):[]).map(((t,e)=>s[e])).join("/")+"/"+n}function ut(t,e,n,i){let s=[e,"data-"+e].reduce(((e,i)=>{let s=t.getAttribute(i);return n&&t.removeAttribute(i),null===s?e:s}),!1);return!i&&""===s||(s||i||!1)}function dt(t){let e=t.split("&").map((t=>t.split("="))).reduce(((t,e)=>{let n=e[0];if(!n)return t;let i=!(e.length>1)||e[e.length-1];return"string"==typeof i&&i.includes(",")&&(i=i.split(",")),void 0===t[n]?t[n]=[i]:t[n].push(i),t}),{});return Object.entries(e).reduce(((t,e)=>(t[e[0]]=e[1].length>1?e[1]:e[1][0],t)),{})}var ht,pt,ft={HISTORY:1,HASH:2,MEMORY:3,OFF:4,run:function(t,e,n,i){return 1===t?e&&e():2===t?n&&n():i&&i()},getDeafault:function(){return window&&"srcdoc"!==window.location.pathname?1:3}},gt=function(){let t,e=ft.getDeafault(),n=n=>t&&t(mt(e));function i(t){t&&(e=t),window.onhashchange=window.onpopstate=pt=null,e!==ft.OFF&&ft.run(e,(t=>window.onpopstate=n),(t=>window.onhashchange=n))&&n()}return{mode:t=>i(t),get:t=>mt(e),go(t,i){(function(t,e,n){let i=t=>history[n?"replaceState":"pushState"]({},"",t);ft.run(t,(t=>i(e)),(t=>i(`#${e}`)),(t=>pt=e))})(e,t,i),n()},start(e){t=e,i()},stop(){t=null,i(ft.OFF)}}}();function mt(t){let e=ht,n=ht=ft.run(t,(t=>window.location.pathname+window.location.search),(t=>String(window.location.hash.slice(1)||"/")),(t=>pt||"/")),i=n.match(/^([^?#]+)(?:\?([^#]+))?(?:\#(.+))?$/);return{url:n,from:e,path:i[1]||"",query:dt(i[2]||""),hash:i[3]||""}}function vt(t){let e=_("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",i=ot({}),s={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){s.exact=!t.path.endsWith("/*"),s.pattern=lt(`${s.parent&&s.parent.pattern||""}${t.path}`),s.redirect=t.redirect,s.firstmatch=t.firstmatch,s.breadcrumb=t.breadcrumb,s.match()},register:()=>{if(s.parent)return s.parent[n].add(s),()=>{s.parent[n].delete(s),s.router.un&&s.router.un()}},show:()=>{t.onShow(),!s.fallback&&s.parent&&s.parent.activeChilds.add(s)},hide:()=>{t.onHide(),!s.fallback&&s.parent&&s.parent.activeChilds.delete(s)},match:async()=>{s.matched=!1;let{path:e,url:n,from:a,query:r}=s.router,o=function(t,e){t=lt(t,!0),e=lt(e,!0);let n=[],i={},s=!0,a=t.split("/").map((t=>t.startsWith(":")?(n.push(t.slice(1)),"([^\\/]+)"):t)).join("\\/"),r=e.match(new RegExp(`^${a}$`));return r||(s=!1,r=e.match(new RegExp(`^${a}`))),r?(n.forEach(((t,e)=>i[t]=r[e+1])),{exact:s,params:i,part:r[0].slice(0,-1)}):null}(s.pattern,e);if(!s.fallback&&o&&s.redirect&&(!s.exact||s.exact&&o.exact)){await W();let t=ct(e,s.parent&&s.parent.pattern,s.redirect);return bt.goto(t,!0)}if(s.meta=o&&{from:a,url:n,query:r,match:o.part,pattern:s.pattern,breadcrumbs:s.parent&&s.parent.meta&&s.parent.meta.breadcrumbs.slice()||[],params:o.params,subscribe:i.subscribe},s.breadcrumb&&s.meta&&s.meta.breadcrumbs.push({name:s.breadcrumb,path:o.part}),i.set(s.meta),!o||s.fallback||!(!s.exact||s.exact&&o.exact)||s.parent&&s.parent.firstmatch&&s.parent.matched?s.hide():(t.onMeta(s.meta),s.parent&&(s.parent.matched=!0),s.show()),await W(),o&&!s.fallback&&(s.childs.size>0&&0==s.activeChilds.size||0==s.childs.size&&s.fallbacks.size>0)){let t=s;for(;0==t.fallbacks.size;)if(t=t.parent,!t)return;t&&t.fallbacks.forEach((t=>{if(t.redirect){let e=ct("/",t.parent&&t.parent.pattern,t.redirect);bt.goto(e,!0)}else t.show()}))}}};return a="tinro",r=s,C().$$.context.set(a,r),S((()=>s.register())),s.router.un=bt.subscribe((t=>{s.router.path=t.path,s.router.url=t.url,s.router.query=t.query,s.router.from=t.from,null!==s.pattern&&s.match()})),s;var a,r}function yt(){return _("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]"),i=n&&ut(n,"target",!1,"_self"),s=n&&ut(n,"tinro-ignore"),a=e.ctrlKey||e.metaKey||e.altKey||e.shiftKey;if("_self"==i&&!s&&!a&&n){let i=n.getAttribute("href").replace(/^\/#/,"");/^\/\/|^[a-zA-Z]+:/.test(i)||(e.preventDefault(),t(i.startsWith("/")?i: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:xt,meta:yt,useHashNavigation:t=>gt.mode(t?ft.HASH:ft.HISTORY),mode:{hash:()=>gt.mode(ft.HASH),history:()=>gt.mode(ft.HISTORY),memory:()=>gt.mode(ft.MEMORY)}}}();function xt(){return _("tinro").meta.params}const wt=t=>({params:2&t,meta:4&t}),$t=t=>({params:t[1],meta:t[2]});function kt(t){let e;const n=t[9].default,i=o(n,t,t[8],$t);return{c(){i&&i.c()},m(t,n){i&&i.m(t,n),e=!0},p(t,s){i&&i.p&&(!e||262&s)&&u(i,n,t,t[8],e?c(n,t[8],s,wt):d(t[8]),$t)},i(t){e||(Z(i,t),e=!0)},o(t){Q(i,t),e=!1},d(t){i&&i.d(t)}}}function Ot(t){let e,n,i=t[0]&&kt(t);return{c(){i&&i.c(),e=x()},m(t,s){i&&i.m(t,s),p(t,e,s),n=!0},p(t,[n]){t[0]?i?(i.p(t,n),1&n&&Z(i,1)):(i=kt(t),i.c(),Z(i,1),i.m(e.parentNode,e)):i&&(X(),Q(i,1,1,(()=>{i=null})),K())},i(t){n||(Z(i),n=!0)},o(t){Q(i),n=!1},d(t){i&&i.d(t),t&&f(e)}}}function At(t,e,n){let{$$slots:i={},$$scope:s}=e,{path:a="/*"}=e,{fallback:r=!1}=e,{redirect:o=!1}=e,{firstmatch:l=!1}=e,{breadcrumb:c=null}=e,u=!1,d={},h={};const p=vt({fallback:r,onShow(){n(0,u=!0)},onHide(){n(0,u=!1)},onMeta(t){n(2,h=t),n(1,d=h.params)}});return t.$$set=t=>{"path"in t&&n(3,a=t.path),"fallback"in t&&n(4,r=t.fallback),"redirect"in t&&n(5,o=t.redirect),"firstmatch"in t&&n(6,l=t.firstmatch),"breadcrumb"in t&&n(7,c=t.breadcrumb),"$$scope"in t&&n(8,s=t.$$scope)},t.$$.update=()=>{232&t.$$.dirty&&p.update({path:a,redirect:o,firstmatch:l,breadcrumb:c})},[u,d,h,a,r,o,l,c,s,i]}class Pt extends at{constructor(t){super(),st(this,t,At,Ot,a,{path:3,fallback:4,redirect:5,firstmatch:6,breadcrumb:7})}}function Lt(t){let e,n;return{c(){e=m("h1"),n=y(t[0]),$(e,"class","alm-hdr")},m(t,i){p(t,e,i),h(e,n)},p(t,e){1&e&&O(n,t[0])},d(t){t&&f(e)}}}function Tt(t){let e,n,i,s=t[0]&&Lt(t);const a=t[2].default,r=o(a,t,t[1],null);return{c(){e=m("div"),s&&s.c(),n=b(),r&&r.c(),$(e,"class","alm")},m(t,a){p(t,e,a),s&&s.m(e,null),h(e,n),r&&r.m(e,null),i=!0},p(t,[o]){t[0]?s?s.p(t,o):(s=Lt(t),s.c(),s.m(e,n)):s&&(s.d(1),s=null),r&&r.p&&(!i||2&o)&&u(r,a,t,t[1],i?c(a,t[1],o,null):d(t[1]),null)},i(t){i||(Z(r,t),i=!0)},o(t){Q(r,t),i=!1},d(t){t&&f(e),s&&s.d(),r&&r.d(t)}}}function Mt(t,e,n){let{$$slots:i={},$$scope:s}=e,{title:a}=e;return t.$$set=t=>{"title"in t&&n(0,a=t.title),"$$scope"in t&&n(1,s=t.$$scope)},[a,s,i]}class Ct extends at{constructor(t){super(),st(this,t,Mt,Tt,a,{title:0})}}function St(t){let e,n,i,s,a,r,o,l,c,u,d,g,v,x,k,A,P,L,T,M,C,S,_;return{c(){e=m("div"),n=m("div"),i=m("div"),s=b(),a=m("span"),a.textContent="​",r=b(),o=m("div"),l=m("div"),c=m("div"),u=m("div"),d=m("h3"),g=y(t[1]),v=b(),x=m("div"),k=m("p"),A=y(t[2]),P=b(),L=m("div"),T=m("button"),T.textContent="Deactivate",M=b(),C=m("button"),C.textContent="Cancel",$(i,"class","fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"),$(i,"aria-hidden","true"),$(a,"class","hidden sm:inline-block sm:align-middle sm:h-screen"),$(a,"aria-hidden","true"),$(d,"class","text-lg leading-6 font-medium text-gray-900"),$(d,"id","modal-title"),$(k,"class","text-sm text-gray-500"),$(x,"class","mt-2"),$(u,"class","mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left"),$(c,"class","sm:flex sm:items-start"),$(l,"class","bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4"),$(T,"type","button"),$(T,"class","w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm"),$(C,"type","button"),$(C,"class","mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"),$(L,"class","bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse"),$(o,"class","inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"),$(n,"class","flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"),$(e,"class","fixed z-10 inset-0 overflow-y-auto"),$(e,"aria-labelledby","modal-title"),$(e,"role","dialog"),$(e,"aria-modal","true")},m(f,m){p(f,e,m),h(e,n),h(n,i),h(n,s),h(n,a),h(n,r),h(n,o),h(o,l),h(l,c),h(c,u),h(u,d),h(d,g),h(u,v),h(u,x),h(x,k),h(k,A),h(o,P),h(o,L),h(L,T),h(L,M),h(L,C),S||(_=w(C,"click",t[3]),S=!0)},p(t,e){2&e&&O(g,t[1]),4&e&&O(A,t[2])},d(t){t&&f(e),S=!1,_()}}}function _t(e){let n,i=e[0]&&St(e);return{c(){n=m("div"),i&&i.c(),$(n,"class","modal")},m(t,e){p(t,n,e),i&&i.m(n,null)},p(t,[e]){t[0]?i?i.p(t,e):(i=St(t),i.c(),i.m(n,null)):i&&(i.d(1),i=null)},i:t,o:t,d(t){t&&f(n),i&&i.d()}}}function Nt(t,e,n){let{show:i}=e,{header:s="header"}=e,{text:a="text"}=e;return t.$$set=t=>{"show"in t&&n(0,i=t.show),"header"in t&&n(1,s=t.header),"text"in t&&n(2,a=t.text)},[i,s,a,()=>n(0,i=!1)]}class Dt extends at{constructor(t){super(),st(this,t,Nt,_t,a,{show:0,header:1,text:2})}}function Et(t){let e,n;return{c(){e=m("h1"),n=y(t[0]),$(e,"class","crd-hdr")},m(t,i){p(t,e,i),h(e,n)},p(t,e){1&e&&O(n,t[0])},d(t){t&&f(e)}}}function zt(t){let e,n,i,s=t[0]&&Et(t);const a=t[2].default,r=o(a,t,t[1],null);return{c(){e=m("div"),s&&s.c(),n=b(),r&&r.c(),$(e,"class","crd")},m(t,a){p(t,e,a),s&&s.m(e,null),h(e,n),r&&r.m(e,null),i=!0},p(t,[o]){t[0]?s?s.p(t,o):(s=Et(t),s.c(),s.m(e,n)):s&&(s.d(1),s=null),r&&r.p&&(!i||2&o)&&u(r,a,t,t[1],i?c(a,t[1],o,null):d(t[1]),null)},i(t){i||(Z(r,t),i=!0)},o(t){Q(r,t),i=!1},d(t){t&&f(e),s&&s.d(),r&&r.d(t)}}}function jt(t,e,n){let{$$slots:i={},$$scope:s}=e,{title:a}=e;return t.$$set=t=>{"title"in t&&n(0,a=t.title),"$$scope"in t&&n(1,s=t.$$scope)},[a,s,i]}class Ht extends at{constructor(t){super(),st(this,t,jt,zt,a,{title:0})}}function Ft(t){let e,n,s,a;return{c(){e=m("input"),$(e,"class",n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500"),$(e,"step","0.1"),$(e,"type","number")},m(n,i){p(n,e,i),A(e,t[0].status),s||(a=[w(e,"change",t[3]),w(e,"input",t[4])],s=!0)},p(t,i){1&i&&n!==(n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500")&&$(e,"class",n),1&i&&k(e.value)!==t[0].status&&A(e,t[0].status)},d(t){t&&f(e),s=!1,i(a)}}}function Jt(t){let e,n,s,a;return{c(){e=m("input"),$(e,"class",n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500"),$(e,"type","text")},m(n,i){p(n,e,i),A(e,t[0].status),s||(a=[w(e,"change",t[5]),w(e,"input",t[6])],s=!0)},p(t,i){1&i&&n!==(n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500")&&$(e,"class",n),1&i&&e.value!==t[0].status&&A(e,t[0].status)},d(t){t&&f(e),s=!1,i(a)}}}function Wt(t){let e,n,s,a;return{c(){e=m("input"),$(e,"class",n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500"),$(e,"type","date")},m(n,i){p(n,e,i),A(e,t[0].status),s||(a=[w(e,"change",t[7]),w(e,"input",t[8])],s=!0)},p(t,i){1&i&&n!==(n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500")&&$(e,"class",n),1&i&&A(e,t[0].status)},d(t){t&&f(e),s=!1,i(a)}}}function Rt(t){let e,n,s,a;return{c(){e=m("input"),$(e,"class",n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500"),$(e,"type","time")},m(n,i){p(n,e,i),A(e,t[0].status),s||(a=[w(e,"change",t[9]),w(e,"input",t[10])],s=!0)},p(t,i){1&i&&n!==(n=1==t[0].send?"wgt-ipt text-right border-red-500":"wgt-ipt text-right focus:border-indigo-500")&&$(e,"class",n),1&i&&A(e,t[0].status)},d(t){t&&f(e),s=!1,i(a)}}}function It(e){let n,i,s,a,r,o,l,c,u,d=(e[0].descr?e[0].descr:"")+"",g="number"==e[0].type&&Ft(e),v="text"==e[0].type&&Jt(e),x="date"==e[0].type&&Wt(e),w="time"==e[0].type&&Rt(e);return{c(){n=m("div"),i=m("div"),s=m("label"),a=y(d),r=b(),o=m("div"),g&&g.c(),l=b(),v&&v.c(),c=b(),x&&x.c(),u=b(),w&&w.c(),$(s,"class","wgt-dscr-stl"),$(i,"class","wgt-dscr-w"),$(o,"class","wgt-w"),$(n,"class","crd-itm-psn")},m(t,e){p(t,n,e),h(n,i),h(i,s),h(s,a),h(n,r),h(n,o),g&&g.m(o,null),h(o,l),v&&v.m(o,null),h(o,c),x&&x.m(o,null),h(o,u),w&&w.m(o,null)},p(t,[e]){1&e&&d!==(d=(t[0].descr?t[0].descr:"")+"")&&O(a,d),"number"==t[0].type?g?g.p(t,e):(g=Ft(t),g.c(),g.m(o,l)):g&&(g.d(1),g=null),"text"==t[0].type?v?v.p(t,e):(v=Jt(t),v.c(),v.m(o,c)):v&&(v.d(1),v=null),"date"==t[0].type?x?x.p(t,e):(x=Wt(t),x.c(),x.m(o,u)):x&&(x.d(1),x=null),"time"==t[0].type?w?w.p(t,e):(w=Rt(t),w.c(),w.m(o,null)):w&&(w.d(1),w=null)},i:t,o:t,d(t){t&&f(n),g&&g.d(),v&&v.d(),x&&x.d(),w&&w.d()}}}function Bt(t,e,n){let{widget:i}=e,{wsPush:s=((t,e,n)=>{})}=e,{value:a}=e;a=a;return t.$$set=t=>{"widget"in t&&n(0,i=t.widget),"wsPush"in t&&n(1,s=t.wsPush),"value"in t&&n(2,a=t.value)},[i,s,a,()=>(n(0,i.send=!0,i),s(i.ws,i.topic,i.status)),function(){i.status=k(this.value),n(0,i)},()=>(n(0,i.send=!0,i),s(i.ws,i.topic,i.status)),function(){i.status=this.value,n(0,i)},()=>(n(0,i.send=!0,i),s(i.ws,i.topic,i.status)),function(){i.status=this.value,n(0,i)},()=>(n(0,i.send=!0,i),s(i.ws,i.topic,i.status)),function(){i.status=this.value,n(0,i)}]}class Yt extends at{constructor(t){super(),st(this,t,Bt,It,a,{widget:0,wsPush:1,value:2})}}function qt(e){let n,s,a,r,o,l,c,u,d,g,v,x,k,P,L,T,M,C,S=(e[0].descr?e[0].descr:"")+"";return{c(){n=m("div"),s=m("div"),a=m("label"),r=y(S),o=b(),l=m("div"),c=m("label"),u=m("div"),d=m("input"),v=b(),x=m("div"),k=b(),P=m("div"),$(a,"class","wgt-dscr-stl"),$(s,"class","wgt-dscr-w"),$(d,"id",g=e[0].topic),$(d,"type","checkbox"),$(d,"class","sr-only"),$(x,"class","block bg-gray-600 w-10 h-6 rounded-full"),$(P,"class",L="dot "+(1==e[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition"),$(u,"class","relative"),$(c,"for",T=e[0].topic),$(c,"class","items-center cursor-pointer"),$(l,"class","wgt-w"),$(n,"class","crd-itm-psn")},m(t,i){p(t,n,i),h(n,s),h(s,a),h(a,r),h(n,o),h(n,l),h(l,c),h(c,u),h(u,d),A(d,e[0].status),h(u,v),h(u,x),h(u,k),h(u,P),M||(C=[w(d,"change",e[3]),w(d,"change",e[4])],M=!0)},p(t,[e]){1&e&&S!==(S=(t[0].descr?t[0].descr:"")+"")&&O(r,S),1&e&&g!==(g=t[0].topic)&&$(d,"id",g),1&e&&A(d,t[0].status),1&e&&L!==(L="dot "+(1==t[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition")&&$(P,"class",L),1&e&&T!==(T=t[0].topic)&&$(c,"for",T)},i:t,o:t,d(t){t&&f(n),M=!1,i(C)}}}function Ut(t,e,n){let{widget:i}=e,{value:s}=e;s=s;let{wsPush:a=((t,e,n)=>{})}=e;return t.$$set=t=>{"widget"in t&&n(0,i=t.widget),"value"in t&&n(2,s=t.value),"wsPush"in t&&n(1,a=t.wsPush)},[i,a,s,()=>(n(0,i.send=!0,i),a(i.ws,i.topic,i.status)),function(){i.status=this.value,n(0,i)}]}class Vt extends at{constructor(t){super(),st(this,t,Ut,qt,a,{widget:0,value:2,wsPush:1})}}function Gt(e){let n,i,s,a,r,o,l,c,u,d,g,v,x=(e[0].descr?e[0].descr:"")+"",w=(e[0].status?e[0].status:"")+"",k=(e[0].after?e[0].after:"")+"";return{c(){n=m("div"),i=m("div"),s=m("label"),a=y(x),r=b(),o=m("div"),l=m("label"),c=y(w),u=b(),d=m("label"),g=y(" "),v=y(k),$(s,"class","wgt-dscr-stl"),$(i,"class","wgt-dscr-w"),$(l,"class","wgt-adt-stl"),$(d,"class","wgt-adt-stl"),$(o,"class","wgt-w"),$(n,"class","crd-itm-psn")},m(t,e){p(t,n,e),h(n,i),h(i,s),h(s,a),h(n,r),h(n,o),h(o,l),h(l,c),h(o,u),h(o,d),h(d,g),h(d,v)},p(t,[e]){1&e&&x!==(x=(t[0].descr?t[0].descr:"")+"")&&O(a,x),1&e&&w!==(w=(t[0].status?t[0].status:"")+"")&&O(c,w),1&e&&k!==(k=(t[0].after?t[0].after:"")+"")&&O(v,k)},i:t,o:t,d(t){t&&f(n)}}}function Xt(t,e,n){let{widget:i}=e,{value:s}=e;return s=s,t.$$set=t=>{"widget"in t&&n(0,i=t.widget),"value"in t&&n(1,s=t.value)},[i,s]}class Kt extends at{constructor(t){super(),st(this,t,Xt,Gt,a,{widget:0,value:1})}}function Zt(t,e,n){const i=t.slice();return i[8]=e[n],i[10]=n,i}function Qt(t,e,n){const i=t.slice();return i[11]=e[n],i[12]=e,i[10]=n,i}function te(t){let e,n;return e=new Ht({props:{title:"Ваша панель управления пуста, вначале добавьте новые элементы в конфигураторе!"}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function ee(t){let e,n,i,s,a="input"===t[11].widget&&ne(t),r="toggle"===t[11].widget&&ie(t),o="anydata"===t[11].widget&&se(t);return{c(){a&&a.c(),e=b(),r&&r.c(),n=b(),o&&o.c(),i=x()},m(t,l){a&&a.m(t,l),p(t,e,l),r&&r.m(t,l),p(t,n,l),o&&o.m(t,l),p(t,i,l),s=!0},p(t,s){"input"===t[11].widget?a?(a.p(t,s),1&s&&Z(a,1)):(a=ne(t),a.c(),Z(a,1),a.m(e.parentNode,e)):a&&(X(),Q(a,1,1,(()=>{a=null})),K()),"toggle"===t[11].widget?r?(r.p(t,s),1&s&&Z(r,1)):(r=ie(t),r.c(),Z(r,1),r.m(n.parentNode,n)):r&&(X(),Q(r,1,1,(()=>{r=null})),K()),"anydata"===t[11].widget?o?(o.p(t,s),1&s&&Z(o,1)):(o=se(t),o.c(),Z(o,1),o.m(i.parentNode,i)):o&&(X(),Q(o,1,1,(()=>{o=null})),K())},i(t){s||(Z(a),Z(r),Z(o),s=!0)},o(t){Q(a),Q(r),Q(o),s=!1},d(t){a&&a.d(t),t&&f(e),r&&r.d(t),t&&f(n),o&&o.d(t),t&&f(i)}}}function ne(t){let e,n,i;function s(e){t[4](e,t[11])}let a={widget:t[11],wsPush:t[3]};return void 0!==t[11].status&&(a.value=t[11].status),e=new Yt({props:a}),E.push((()=>tt(e,"value",s))),{c(){et(e.$$.fragment)},m(t,n){nt(e,t,n),i=!0},p(i,s){t=i;const a={};1&s&&(a.widget=t[11]),4&s&&(a.wsPush=t[3]),!n&&1&s&&(n=!0,a.value=t[11].status,I((()=>n=!1))),e.$set(a)},i(t){i||(Z(e.$$.fragment,t),i=!0)},o(t){Q(e.$$.fragment,t),i=!1},d(t){it(e,t)}}}function ie(t){let e,n,i;function s(e){t[6](e,t[11])}let a={widget:t[11],wsPush:t[5]};return void 0!==t[11].status&&(a.value=t[11].status),e=new Vt({props:a}),E.push((()=>tt(e,"value",s))),{c(){et(e.$$.fragment)},m(t,n){nt(e,t,n),i=!0},p(i,s){t=i;const a={};1&s&&(a.widget=t[11]),4&s&&(a.wsPush=t[5]),!n&&1&s&&(n=!0,a.value=t[11].status,I((()=>n=!1))),e.$set(a)},i(t){i||(Z(e.$$.fragment,t),i=!0)},o(t){Q(e.$$.fragment,t),i=!1},d(t){it(e,t)}}}function se(t){let e,n,i;function s(e){t[7](e,t[11])}let a={widget:t[11]};return void 0!==t[11].status&&(a.value=t[11].status),e=new Kt({props:a}),E.push((()=>tt(e,"value",s))),{c(){et(e.$$.fragment)},m(t,n){nt(e,t,n),i=!0},p(i,s){t=i;const a={};1&s&&(a.widget=t[11]),!n&&1&s&&(n=!0,a.value=t[11].status,I((()=>n=!1))),e.$set(a)},i(t){i||(Z(e.$$.fragment,t),i=!0)},o(t){Q(e.$$.fragment,t),i=!1},d(t){it(e,t)}}}function ae(t){let e,n,i=t[11].page===t[8].page&&ee(t);return{c(){i&&i.c(),e=x()},m(t,s){i&&i.m(t,s),p(t,e,s),n=!0},p(t,n){t[11].page===t[8].page?i?(i.p(t,n),3&n&&Z(i,1)):(i=ee(t),i.c(),Z(i,1),i.m(e.parentNode,e)):i&&(X(),Q(i,1,1,(()=>{i=null})),K())},i(t){n||(Z(i),n=!0)},o(t){Q(i),n=!1},d(t){i&&i.d(t),t&&f(e)}}}function re(t){let e,n,i=t[0],s=[];for(let e=0;eQ(s[t],1,1,(()=>{s[t]=null}));return{c(){for(let t=0;tQ(r[t],1,1,(()=>{r[t]=null}));return{c(){e=m("div"),s&&s.c(),n=b();for(let t=0;t{s=null})),K()),7&i){let n;for(a=t[1],n=0;n{})}=e;return t.$$set=t=>{"layoutJson"in t&&n(0,i=t.layoutJson),"pages"in t&&n(1,s=t.pages),"wsPush"in t&&n(2,a=t.wsPush)},[i,s,a,(t,e,n)=>a(t,e,n),function(e,s){t.$$.not_equal(s.status,e)&&(s.status=e,n(0,i))},(t,e,n)=>a(t,e,n),function(e,s){t.$$.not_equal(s.status,e)&&(s.status=e,n(0,i))},function(e,s){t.$$.not_equal(s.status,e)&&(s.status=e,n(0,i))}]}class ue extends at{constructor(t){super(),st(this,t,ce,le,a,{layoutJson:0,pages:1,wsPush:2})}}function de(t,e,n){const i=t.slice();return i[18]=e[n],i[19]=e,i[20]=n,i}function he(t,e,n){const i=t.slice();return i[21]=e[n][0],i[22]=e[n][1],i[23]=e,i[24]=n,i}function pe(t,e,n){const i=t.slice();return i[25]=e[n],i}function fe(t,e,n){const i=t.slice();return i[28]=e[n],i}function ge(t){let e,n;return{c(){e=m("optgroup"),$(e,"label",n=t[28].header)},m(t,n){p(t,e,n)},p(t,i){4&i[0]&&n!==(n=t[28].header)&&$(e,"label",n)},d(t){t&&f(e)}}}function me(t){let e,n,i,s,a=t[28].name+"";return{c(){e=m("option"),n=y(a),i=b(),e.__value=s=t[28].num,e.value=e.__value},m(t,s){p(t,e,s),h(e,n),h(e,i)},p(t,i){4&i[0]&&a!==(a=t[28].name+"")&&O(n,a),4&i[0]&&s!==(s=t[28].num)&&(e.__value=s,e.value=e.__value)},d(t){t&&f(e)}}}function ve(t){let e,n,i=t[28].header&&ge(t),s=!t[28].header&&me(t);return{c(){i&&i.c(),e=x(),s&&s.c(),n=x()},m(t,a){i&&i.m(t,a),p(t,e,a),s&&s.m(t,a),p(t,n,a)},p(t,a){t[28].header?i?i.p(t,a):(i=ge(t),i.c(),i.m(e.parentNode,e)):i&&(i.d(1),i=null),t[28].header?s&&(s.d(1),s=null):s?s.p(t,a):(s=me(t),s.c(),s.m(n.parentNode,n))},d(t){i&&i.d(t),t&&f(e),s&&s.d(t),t&&f(n)}}}function ye(t){let e,n,i,s,a=t[25].label+"";return{c(){e=m("option"),n=y(a),i=b(),e.__value=s=t[25].name,e.value=e.__value},m(t,s){p(t,e,s),h(e,n),h(e,i)},p(t,i){2&i[0]&&a!==(a=t[25].label+"")&&O(n,a),2&i[0]&&s!==(s=t[25].name)&&(e.__value=s,e.value=e.__value)},d(t){t&&f(e)}}}function be(t){let e,n=Object.entries(t[18]),i=[];for(let e=0;eТип \n Id \n Виджет \n Вкладка \n Название \n \n ',u=b(),d=m("tbody");for(let t=0;tt[8].call(n))),r.__value="Выберите пресет",r.value=r.__value,$(a,"class","slct-lg"),$(e,"class","grd-2colsfx"),$(c,"class","bg-gray-100"),$(d,"class","bg-white"),$(l,"class","tbl"),$(y,"class","btn-lg")},m(i,f){p(i,e,f),h(e,n);for(let t=0;t{})}=e,l=!0;function c(){for(let t=0;t{"configJson"in t&&n(0,i=t.configJson),"widgetsJson"in t&&n(1,s=t.widgetsJson),"itemsJson"in t&&n(2,a=t.itemsJson),"saveConfig"in t&&n(3,o=t.saveConfig)},[i,s,a,o,r,l,c,u,function(){r=L(this),n(4,r),n(2,a)},()=>c(),function(t,e){t[e].id=this.value,n(0,i),n(1,s)},function(t,e){t[e].widget=L(this),n(0,i),n(1,s)},function(t,e){t[e].page=this.value,n(0,i),n(1,s)},function(t,e){t[e].descr=this.value,n(0,i),n(1,s)},()=>n(5,l=!l),t=>u(t),function(t,e,a){e[a][t]=this.value,n(0,i),n(1,s)},()=>o()]}class Pe extends at{constructor(t){super(),st(this,t,Ae,Oe,a,{configJson:0,widgetsJson:1,itemsJson:2,saveConfig:3},null,[-1,-1])}}function Le(t,e,n){const i=t.slice();return i[17]=e[n][0],i[18]=e[n][1],i}function Te(t){let e,n,i,s,a=t[18]+"";return{c(){e=m("option"),n=y(a),i=b(),e.__value=s=t[18],e.value=e.__value},m(t,s){p(t,e,s),h(e,n),h(e,i)},p(t,i){2&i&&a!==(a=t[18]+"")&&O(n,a),2&i&&s!==(s=t[18])&&(e.__value=s,e.value=e.__value)},d(t){t&&f(e)}}}function Me(t){let e,n,i;return n=new Ct({props:{title:"Введен неправильный пароль"}}),{c(){e=m("div"),et(n.$$.fragment),$(e,"class","grd-1cols")},m(t,s){p(t,e,s),nt(n,e,null),i=!0},i(t){i||(Z(n.$$.fragment,t),i=!0)},o(t){Q(n.$$.fragment,t),i=!1},d(t){t&&f(e),it(n)}}}function Ce(t){let e,n,s,a,r,o,l,c,u,d,v,y,x,k,O,L,T,M,C,S,_,N,D,E,z,j,H,F,J,W,I,B,Y,q,U,V=Object.entries(t[1]),G=[];for(let e=0;eНазвание устройства

',s=b(),a=m("div"),r=m("input"),o=b(),l=m("div"),c=m("div"),c.innerHTML='

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

',u=b(),d=m("div"),v=m("input"),y=b(),x=m("div"),k=m("div"),k.innerHTML='

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

',O=b(),L=m("div"),T=m("input"),M=b(),C=m("div"),S=m("div"),S.innerHTML='

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

',_=b(),N=m("div"),D=m("select");for(let t=0;tПароль

',H=b(),F=m("div"),J=m("input"),W=b(),tt&&tt.c(),I=b(),B=m("button"),B.textContent="Сохранить и перезагрузить",$(n,"class","wgt-dscr-w"),$(r,"class","wgt-ipt text-left focus:border-indigo-500"),$(r,"type","text"),$(a,"class","wgt-w"),$(e,"class","crd-itm-psn"),$(c,"class","wgt-dscr-w"),$(v,"class","wgt-ipt text-left focus:border-indigo-500"),$(v,"type","text"),$(d,"class","wgt-w"),$(l,"class","crd-itm-psn"),$(k,"class","wgt-dscr-w"),$(T,"class","wgt-ipt text-left focus:border-indigo-500"),$(T,"type","text"),$(L,"class","wgt-w"),$(x,"class","crd-itm-psn"),$(S,"class","wgt-dscr-w"),$(D,"class","wgt-ipt text-left focus:border-indigo-500"),void 0===t[0].routerssid&&R((()=>t[7].call(D))),$(N,"class","wgt-w"),$(C,"class","crd-itm-psn"),$(j,"class","wgt-dscr-w"),$(J,"class","wgt-ipt text-left focus:border-indigo-500"),$(J,"type","text"),$(F,"class","wgt-w"),$(z,"class","crd-itm-psn"),$(B,"class","btn-lg")},m(i,f){p(i,e,f),h(e,n),h(e,s),h(e,a),h(a,r),A(r,t[0].name),p(i,o,f),p(i,l,f),h(l,c),h(l,u),h(l,d),h(d,v),A(v,t[0].apssid),p(i,y,f),p(i,x,f),h(x,k),h(x,O),h(x,L),h(L,T),A(T,t[0].appass),p(i,M,f),p(i,C,f),h(C,S),h(C,_),h(C,N),h(N,D);for(let t=0;t{tt=null})),K())},i(t){Y||(Z(tt),Y=!0)},o(t){Q(tt),Y=!1},d(t){t&&f(e),t&&f(o),t&&f(l),t&&f(y),t&&f(x),t&&f(M),t&&f(C),g(G,t),t&&f(E),t&&f(z),t&&f(W),tt&&tt.d(t),t&&f(I),t&&f(B),q=!1,i(U)}}}function Se(t){let e,n,s,a,r,o,l,c,u,d,g,v,y,x,k,O,P,L,T,M,C,S,_,N,D,E,z,j,H,F,J,W,R;return{c(){e=m("div"),n=m("div"),n.innerHTML='

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

',s=b(),a=m("div"),r=m("input"),o=b(),l=m("div"),c=m("div"),c.innerHTML='

Порт

',u=b(),d=m("div"),g=m("input"),v=b(),y=m("div"),x=m("div"),x.innerHTML='

Префикс

',k=b(),O=m("div"),P=m("input"),L=b(),T=m("div"),M=m("div"),M.innerHTML='

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

',C=b(),S=m("div"),_=m("input"),N=b(),D=m("div"),E=m("div"),E.innerHTML='

Пароль

',z=b(),j=m("div"),H=m("input"),F=b(),J=m("button"),J.textContent="Сохранить и проверить подключение",$(n,"class","wgt-dscr-w"),$(r,"class","wgt-ipt text-left focus:border-indigo-500"),$(r,"type","text"),$(a,"class","wgt-w"),$(e,"class","crd-itm-psn"),$(c,"class","wgt-dscr-w"),$(g,"class","wgt-ipt text-left focus:border-indigo-500"),$(g,"type","text"),$(d,"class","wgt-w"),$(l,"class","crd-itm-psn"),$(x,"class","wgt-dscr-w"),$(P,"class","wgt-ipt text-left focus:border-indigo-500"),$(P,"type","text"),$(O,"class","wgt-w"),$(y,"class","crd-itm-psn"),$(M,"class","wgt-dscr-w"),$(_,"class","wgt-ipt text-left focus:border-indigo-500"),$(_,"type","text"),$(S,"class","wgt-w"),$(T,"class","crd-itm-psn"),$(E,"class","wgt-dscr-w"),$(H,"class","wgt-ipt text-left focus:border-indigo-500"),$(H,"type","text"),$(j,"class","wgt-w"),$(D,"class","crd-itm-psn"),$(J,"class","btn-lg")},m(i,f){p(i,e,f),h(e,n),h(e,s),h(e,a),h(a,r),A(r,t[0].mqttServer),p(i,o,f),p(i,l,f),h(l,c),h(l,u),h(l,d),h(d,g),A(g,t[0].mqttPort),p(i,v,f),p(i,y,f),h(y,x),h(y,k),h(y,O),h(O,P),A(P,t[0].mqttPrefix),p(i,L,f),p(i,T,f),h(T,M),h(T,C),h(T,S),h(S,_),A(_,t[0].mqttUser),p(i,N,f),p(i,D,f),h(D,E),h(D,z),h(D,j),h(j,H),A(H,t[0].mqttPass),p(i,F,f),p(i,J,f),W||(R=[w(r,"input",t[11]),w(g,"input",t[12]),w(P,"input",t[13]),w(_,"input",t[14]),w(H,"input",t[15]),w(J,"click",t[16])],W=!0)},p(t,e){3&e&&r.value!==t[0].mqttServer&&A(r,t[0].mqttServer),3&e&&g.value!==t[0].mqttPort&&A(g,t[0].mqttPort),3&e&&P.value!==t[0].mqttPrefix&&A(P,t[0].mqttPrefix),3&e&&_.value!==t[0].mqttUser&&A(_,t[0].mqttUser),3&e&&H.value!==t[0].mqttPass&&A(H,t[0].mqttPass)},d(t){t&&f(e),t&&f(o),t&&f(l),t&&f(v),t&&f(y),t&&f(L),t&&f(T),t&&f(N),t&&f(D),t&&f(F),t&&f(J),W=!1,i(R)}}}function _e(t){let e,n,i,s,a;return n=new Ht({props:{title:"Подключение к WiFi роутеру",$$slots:{default:[Ce]},$$scope:{ctx:t}}}),s=new Ht({props:{title:"Подключение к MQTT брокеру",$$slots:{default:[Se]},$$scope:{ctx:t}}}),{c(){e=m("div"),et(n.$$.fragment),i=b(),et(s.$$.fragment),$(e,"class","grd-2cols")},m(t,r){p(t,e,r),nt(n,e,null),h(e,i),nt(s,e,null),a=!0},p(t,[e]){const i={};2097167&e&&(i.$$scope={dirty:e,ctx:t}),n.$set(i);const a={};2097161&e&&(a.$$scope={dirty:e,ctx:t}),s.$set(a)},i(t){a||(Z(n.$$.fragment,t),Z(s.$$.fragment,t),a=!0)},o(t){Q(n.$$.fragment,t),Q(s.$$.fragment,t),a=!1},d(t){t&&f(e),it(n),it(s)}}}function Ne(t,e,n){let{settingsJson:i}=e,{ssidJson:s}=e,{ssidDropdownClick:a=(()=>{})}=e,{saveSettings:r=(()=>{})}=e;return t.$$set=t=>{"settingsJson"in t&&n(0,i=t.settingsJson),"ssidJson"in t&&n(1,s=t.ssidJson),"ssidDropdownClick"in t&&n(2,a=t.ssidDropdownClick),"saveSettings"in t&&n(3,r=t.saveSettings)},[i,s,a,r,function(){i.name=this.value,n(0,i),n(1,s)},function(){i.apssid=this.value,n(0,i),n(1,s)},function(){i.appass=this.value,n(0,i),n(1,s)},function(){i.routerssid=L(this),n(0,i),n(1,s)},()=>a(),function(){i.routerpass=this.value,n(0,i),n(1,s)},()=>r(),function(){i.mqttServer=this.value,n(0,i),n(1,s)},function(){i.mqttPort=this.value,n(0,i),n(1,s)},function(){i.mqttPrefix=this.value,n(0,i),n(1,s)},function(){i.mqttUser=this.value,n(0,i),n(1,s)},function(){i.mqttPass=this.value,n(0,i),n(1,s)},()=>r()]}class De extends at{constructor(t){super(),st(this,t,Ne,_e,a,{settingsJson:0,ssidJson:1,ssidDropdownClick:2,saveSettings:3})}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var Ee,ze=(function(t,e){t.exports=function(){function t(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function e(t){var e=t.getBoundingClientRect();return{top:e.top+(document.documentElement.scrollTop||document.body.scrollTop),left:e.left+(document.documentElement.scrollLeft||document.body.scrollLeft)}}function n(t){return null===t.offsetParent}function i(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)}function s(t){var e=window.getComputedStyle(t),n=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight);return t.clientWidth-n}function a(t,e,n){var i=document.createEvent("HTMLEvents");for(var s in i.initEvent(e,!0,!0),n)i[s]=n[s];return t.dispatchEvent(i)}function r(t){return t.titleHeight+t.margins.top+t.paddings.top}function o(t){return t.margins.left+t.paddings.left}function l(t){return t.margins.top+t.margins.bottom+t.paddings.top+t.paddings.bottom+t.titleHeight+t.legendHeight}function c(t){return t.margins.left+t.margins.right+t.paddings.left+t.paddings.right}function u(t){return parseFloat(t.toFixed(2))}function d(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];n||(n=i?t[0]:t[t.length-1]);var s=new Array(Math.abs(e)).fill(n);return i?s.concat(t):t.concat(s)}function h(t,e){return(t+"").length*e}function p(t,e){return{x:Math.sin(t*Zt)*e,y:Math.cos(t*Zt)*e}}function f(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!(Number.isNaN(t)||void 0===t||!Number.isFinite(t)||e&&t<0)}function g(t){return Number(Math.round(t+"e4")+"e-4")}function m(t){var e=void 0,n=void 0,i=void 0;if(t instanceof Date)return new Date(t.getTime());if("object"!==(void 0===t?"undefined":Ht(t))||null===t)return t;for(i in e=Array.isArray(t)?[]:{},t)n=t[i],e[i]=m(n);return e}function v(t,e){var n=void 0,i=void 0;return t<=e?(n=e-t,i=t):(n=t-e,i=e),[n,i]}function y(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length-t.length;return n>0?t=d(t,n):e=d(e,n),[t,e]}function b(t,e){if(t)return t.length>e?t.slice(0,e-3)+"...":t}function x(t){var e=void 0;if("number"==typeof t)e=t;else if("string"==typeof t&&(e=Number(t),Number.isNaN(e)))return t;var n=Math.floor(Math.log10(Math.abs(e)));if(n<=2)return e;var i=Math.floor(n/3),s=Math.pow(10,n-3*i)*+(e/Math.pow(10,n)).toFixed(1);return Math.round(100*s)/100+" "+["","K","M","B","T"][i]}function w(t,e){for(var n=[],i=0;i255?255:t<0?0:t}function k(t,e){var n=ee(t),i=!1;"#"==n[0]&&(n=n.slice(1),i=!0);var s=parseInt(n,16),a=$((s>>16)+e),r=$((s>>8&255)+e);return(i?"#":"")+($((255&s)+e)|r<<8|a<<16).toString(16)}function O(t){var e=/(^\s*)(rgb|hsl)(a?)[(]\s*([\d.]+\s*%?)\s*,\s*([\d.]+\s*%?)\s*,\s*([\d.]+\s*%?)\s*(?:,\s*([\d.]+)\s*)?[)]$/i;return/(^\s*)(#)((?:[A-Fa-f0-9]{3}){1,2})$/i.test(t)||e.test(t)}function A(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function P(t,e){var n=document.createElementNS("http://www.w3.org/2000/svg",t);for(var i in e){var s=e[i];if("inside"===i)A(s).appendChild(n);else if("around"===i){var a=A(s);a.parentNode.insertBefore(n,a),n.appendChild(a)}else"styles"===i?"object"===(void 0===s?"undefined":Ht(s))&&Object.keys(s).map((function(t){n.style[t]=s[t]})):("className"===i&&(i="class"),"innerHTML"===i?n.textContent=s:n.setAttribute(i,s))}return n}function L(t,e){return P("linearGradient",{inside:t,id:e,x1:0,x2:0,y1:0,y2:1})}function T(t,e,n,i){return P("stop",{inside:t,style:"stop-color: "+n,offset:e,"stop-opacity":i})}function M(t,e,n,i){return P("svg",{className:e,inside:t,width:n,height:i})}function C(t){return P("defs",{inside:t})}function S(t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n={className:t,transform:arguments.length>1&&void 0!==arguments[1]?arguments[1]:""};return e&&(n.inside=e),P("g",n)}function _(t){return P("path",{className:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",d:t,styles:{stroke:arguments.length>2&&void 0!==arguments[2]?arguments[2]:"none",fill:arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none","stroke-width":arguments.length>4&&void 0!==arguments[4]?arguments[4]:2}})}function N(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=n.x+t.x,o=n.y+t.y,l=n.x+e.x,c=n.y+e.y;return"M"+n.x+" "+n.y+"\n\t\tL"+r+" "+o+"\n\t\tA "+i+" "+i+" 0 "+a+" "+(s?1:0)+"\n\t\t"+l+" "+c+" z"}function D(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=n.x+t.x,o=n.y+t.y,l=n.x+e.x,c=2*n.y,u=n.y+e.y;return"M"+n.x+" "+n.y+"\n\t\tL"+r+" "+o+"\n\t\tA "+i+" "+i+" 0 "+a+" "+(s?1:0)+"\n\t\t"+l+" "+c+" z\n\t\tL"+r+" "+c+"\n\t\tA "+i+" "+i+" 0 "+a+" "+(s?1:0)+"\n\t\t"+l+" "+u+" z"}function E(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;return"M"+(n.x+t.x)+" "+(n.y+t.y)+"\n\t\tA "+i+" "+i+" 0 "+a+" "+(s?1:0)+"\n\t\t"+(n.x+e.x)+" "+(n.y+e.y)}function z(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=n.x+t.x,o=n.y+t.y,l=n.x+e.x,c=2*i+o;return"M"+r+" "+o+"\n\t\tA "+i+" "+i+" 0 "+a+" "+(s?1:0)+"\n\t\t"+l+" "+c+"\n\t\tM"+r+" "+c+"\n\t\tA "+i+" "+i+" 0 "+a+" "+(s?1:0)+"\n\t\t"+l+" "+(n.y+t.y)}function j(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i="path-fill-gradient-"+e+"-"+(n?"lighter":"default"),s=L(t,i),a=[1,.6,.2];return n&&(a=[.4,.2,0]),T(s,"0%",e,a[0]),T(s,"50%",e,a[1]),T(s,"100%",e,a[2]),i}function H(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Vt,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"none";return P("rect",{className:"percentage-bar",x:t,y:e,width:n,height:i,fill:a,styles:{stroke:k(a,-25),"stroke-dasharray":"0, "+(i+n)+", "+n+", "+i,"stroke-width":s}})}function F(t,e,n,i,s){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},r={className:t,x:e,y:n,width:i,height:i,rx:s,fill:arguments.length>5&&void 0!==arguments[5]?arguments[5]:"none"};return Object.keys(a).map((function(t){r[t]=a[t]})),P("rect",r)}function J(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=arguments[4];s=arguments.length>5&&void 0!==arguments[5]&&arguments[5]?b(s,se):s;var a={className:"legend-bar",x:0,y:0,width:n,height:"2px",fill:i},r=P("text",{className:"legend-dataset-text",x:0,y:0,dy:2*ae+"px","font-size":1.2*ae+"px","text-anchor":"start",fill:oe,innerHTML:s}),o=P("g",{transform:"translate("+t+", "+e+")"});return o.appendChild(P("rect",a)),o.appendChild(r),o}function W(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=arguments[4];s=arguments.length>5&&void 0!==arguments[5]&&arguments[5]?b(s,se):s;var a={className:"legend-dot",cx:0,cy:0,r:n,fill:i},r=P("text",{className:"legend-dataset-text",x:0,y:0,dx:ae+"px",dy:ae/3+"px","font-size":1.2*ae+"px","text-anchor":"start",fill:oe,innerHTML:s}),o=P("g",{transform:"translate("+t+", "+e+")"});return o.appendChild(P("circle",a)),o.appendChild(r),o}function R(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=s.fontSize||ae;return P("text",{className:t,x:e,y:n,dy:(void 0!==s.dy?s.dy:a/2)+"px","font-size":a+"px",fill:s.fill||oe,"text-anchor":s.textAnchor||"start",innerHTML:i})}function I(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};s.stroke||(s.stroke=re);var a=P("line",{className:"line-vertical "+s.className,x1:0,x2:0,y1:n,y2:i,styles:{stroke:s.stroke}}),r=P("text",{x:0,y:n>i?n+ie:n-ie-ae,dy:ae+"px","font-size":ae+"px","text-anchor":"middle",innerHTML:e+""}),o=P("g",{transform:"translate("+t+", 0)"});return o.appendChild(a),o.appendChild(r),o}function B(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};s.stroke||(s.stroke=re),s.lineType||(s.lineType=""),s.shortenNumbers&&(e=x(e));var a=P("line",{className:"line-horizontal "+s.className+("dashed"===s.lineType?"dashed":""),x1:n,x2:i,y1:0,y2:0,styles:{stroke:s.stroke}}),r=P("text",{x:n3&&void 0!==arguments[3]?arguments[3]:{};f(t)||(t=0),i.pos||(i.pos="left"),i.offset||(i.offset=0),i.mode||(i.mode="span"),i.stroke||(i.stroke=re),i.className||(i.className="");var s=-1*ne,a="span"===i.mode?n+ne:0;return"tick"===i.mode&&"right"===i.pos&&(s=n+ne,a=n),B(t,e,s+=i.offset,a+=i.offset,{stroke:i.stroke,className:i.className,lineType:i.lineType,shortenNumbers:i.shortenNumbers})}function q(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};f(t)||(t=0),i.pos||(i.pos="bottom"),i.offset||(i.offset=0),i.mode||(i.mode="span"),i.stroke||(i.stroke=re),i.className||(i.className="");var s=n+ne,a="span"===i.mode?-1*ne:n;return"tick"===i.mode&&"top"===i.pos&&(s=-1*ne,a=0),I(t,e,s,a,{stroke:i.stroke,className:i.className,lineType:i.lineType})}function U(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};i.labelPos||(i.labelPos="right");var s=P("text",{className:"chart-label",x:"left"===i.labelPos?ie:n-h(e,5)-ie,y:0,dy:ae/-2+"px","font-size":ae+"px","text-anchor":"start",innerHTML:e+""}),a=B(t,"",0,n,{stroke:i.stroke||re,className:i.className||"",lineType:i.lineType});return a.appendChild(s),a}function V(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=t-e,r=P("rect",{className:"bar mini",styles:{fill:"rgba(228, 234, 239, 0.49)",stroke:re,"stroke-dasharray":n+", "+a},x:0,y:0,width:n,height:a});s.labelPos||(s.labelPos="right");var o=P("text",{className:"chart-label",x:"left"===s.labelPos?ie:n-h(i+"",4.5)-ie,y:0,dy:ae/-2+"px","font-size":ae+"px","text-anchor":"start",innerHTML:i+""}),l=P("g",{transform:"translate(0, "+e+")"});return l.appendChild(r),l.appendChild(o),l}function G(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},l=v(e,o.zeroLine),c=Bt(l,2),u=c[0],d=c[1];d-=r,0===u&&(u=o.minHeight,d-=o.minHeight),f(t)||(t=0),f(d)||(d=0),f(u,!0)||(u=0),f(n,!0)||(n=0);var h=P("rect",{className:"bar mini",style:"fill: "+i,"data-point-index":a,x:t,y:d,width:n,height:u});if((s+="")||s.length){h.setAttribute("y",0),h.setAttribute("x",0);var p=P("text",{className:"data-point-value",x:n/2,y:0,dy:ae/2*-1+"px","font-size":ae+"px","text-anchor":"middle",innerHTML:s}),g=P("g",{"data-point-index":a,transform:"translate("+t+", "+d+")"});return g.appendChild(h),g.appendChild(p),g}return h}function X(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=P("circle",{style:"fill: "+i,"data-point-index":a,cx:t,cy:e,r:n});if((s+="")||s.length){r.setAttribute("cy",0),r.setAttribute("cx",0);var o=P("text",{className:"data-point-value",x:0,y:0,dy:ae/2*-1-n+"px","font-size":ae+"px","text-anchor":"middle",innerHTML:s}),l=P("g",{"data-point-index":a,transform:"translate("+t+", "+e+")"});return l.appendChild(r),l.appendChild(o),l}return r}function K(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=e.map((function(e,n){return t[n]+","+e})).join("L");i.spline&&(a=w(t,e));var r=_("M"+a,"line-graph-path",n);if(i.heatline){var o=j(s.svgDefs,n);r.style.stroke="url(#"+o+")"}var l={path:r};if(i.regionFill){var c=j(s.svgDefs,n,!0),u="M"+t[0]+","+s.zeroLine+"L"+a+"L"+t.slice(-1)[0]+","+s.zeroLine;l.region=_(u,"region-fill","none","url(#"+c+")")}return l}function Z(t,e,n,i){var s="string"==typeof e?e:e.join(", ");return[t,{transform:n.join(", ")},i,fe,"translate",{transform:s}]}function Q(t,e,n){return Z(t,[n,0],[e,0],he)}function tt(t,e,n){return Z(t,[0,n],[0,e],he)}function et(t,e,n,i){var s=e-n,a=t.childNodes[0];return[[a,{height:s,"stroke-dasharray":a.getAttribute("width")+", "+s},he,fe],Z(t,[0,i],[0,n],he)]}function nt(t,e,n,i){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=v(n,(arguments.length>5&&void 0!==arguments[5]?arguments[5]:{}).zeroLine),r=Bt(a,2),o=r[0],l=r[1];return l-=s,"rect"!==t.nodeName?[[t.childNodes[0],{width:i,height:o},ue,fe],Z(t,t.getAttribute("transform").split("(")[1].slice(0,-1),[e,l],he)]:[[t,{width:i,height:o,x:e,y:l},ue,fe]]}function it(t,e,n){return"circle"!==t.nodeName?[Z(t,t.getAttribute("transform").split("(")[1].slice(0,-1),[e,n],he)]:[[t,{cx:e,cy:n},ue,fe]]}function st(t,e,n,i,s){var a=[],r=n.map((function(t,n){return e[n]+","+t})).join("L");s&&(r=w(e,n));var o=[t.path,{d:"M"+r},de,fe];if(a.push(o),t.region){var l=e[0]+","+i+"L",c="L"+e.slice(-1)[0]+", "+i,u=[t.region,{d:"M"+l+r+c},de,fe];a.push(u)}return a}function at(t,e){return[t,{d:e},ue,fe]}function rt(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"linear",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},r=t.cloneNode(!0),o=t.cloneNode(!0);for(var l in e){var c=void 0;c="transform"===l?document.createElementNS("http://www.w3.org/2000/svg","animateTransform"):document.createElementNS("http://www.w3.org/2000/svg","animate");var u=a[l]||t.getAttribute(l),d=e[l],h={attributeName:l,from:u,to:d,begin:"0s",dur:n/1e3+"s",values:u+";"+d,keySplines:ge[i],keyTimes:"0;1",calcMode:"spline",fill:"freeze"};for(var p in s&&(h.type=s),h)c.setAttribute(p,h[p]);r.appendChild(c),s?o.setAttribute(l,"translate("+d+")"):o.setAttribute(l,d)}return[r,o]}function ot(t,e){t.style.transform=e,t.style.webkitTransform=e,t.style.msTransform=e,t.style.mozTransform=e,t.style.oTransform=e}function lt(t,e){var n=[],i=[];e.map((function(t){var e=t[0],s=e.parentNode,a=void 0,r=void 0;t[0]=e;var o=rt.apply(void 0,Yt(t)),l=Bt(o,2);a=l[0],r=l[1],n.push(r),i.push([a,s]),s&&s.replaceChild(a,e)}));var s=t.cloneNode(!0);return i.map((function(t,i){t[1]&&(t[1].replaceChild(n[i],t[0]),e[i][0]=n[i])})),s}function ct(t,e,n){if(0!==n.length){var i=lt(e,n);e.parentNode==t&&(t.removeChild(e),t.appendChild(i)),setTimeout((function(){i.parentNode==t&&(t.removeChild(i),t.appendChild(e))}),pe)}}function ut(t,e){var n=document.createElement("a");n.style="display: none";var i=new Blob(e,{type:"image/svg+xml; charset=utf-8"}),s=window.URL.createObjectURL(i);n.href=s,n.download=t,document.body.appendChild(n),n.click(),setTimeout((function(){document.body.removeChild(n),window.URL.revokeObjectURL(s)}),300)}function dt(e){var n=e.cloneNode(!0);n.classList.add("chart-container"),n.setAttribute("xmlns","http://www.w3.org/2000/svg"),n.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink");var i=t.create("style",{innerHTML:me});n.insertBefore(i,n.firstChild);var s=t.create("div");return s.appendChild(n),s.innerHTML}function ht(t){var e=new Date(t);return e.setMinutes(e.getMinutes()-e.getTimezoneOffset()),e}function pt(t){var e=t.getDate(),n=t.getMonth()+1;return[t.getFullYear(),(n>9?"":"0")+n,(e>9?"":"0")+e].join("-")}function ft(t){return new Date(t.getTime())}function gt(t,e){var n=xt(t);return Math.ceil(mt(n,e)/be)}function mt(t,e){var n=we*xe;return(ht(e)-ht(t))/n}function vt(t,e){return t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear()}function yt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=$e[t];return e?n.slice(0,3):n}function bt(t,e){return new Date(e,t+1,0)}function xt(t){var e=ft(t),n=e.getDay();return 0!==n&&wt(e,-1*n),e}function wt(t,e){t.setDate(t.getDate()+e)}function $t(t,e,n){var i=Object.keys(Ae).filter((function(e){return t.includes(e)})),s=Ae[i[0]];return Object.assign(s,{constants:e,getData:n}),new Oe(s)}function kt(t){if(0===t)return[0,0];if(isNaN(t))return{mantissa:-6755399441055744,exponent:972};var e=t>0?1:-1;if(!isFinite(t))return{mantissa:4503599627370496*e,exponent:972};t=Math.abs(t);var n=Math.floor(Math.log10(t));return[e*(t/Math.pow(10,n)),n]}function Ot(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=Math.ceil(t),i=Math.floor(e),s=n-i,a=s,r=1;s>5&&(s%2!=0&&(s=++n-i),a=s/2,r=2),s<=2&&(r=s/(a=4)),0===s&&(a=5,r=1);for(var o=[],l=0;l<=a;l++)o.push(i+r*l);return o}function At(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=kt(t),i=Bt(n,2),s=i[0],a=i[1],r=e?e/Math.pow(10,a):0,o=Ot(s=s.toFixed(6),r);return o.map((function(t){return t*Math.pow(10,a)}))}function Pt(t){function e(t,e){for(var n=At(t),i=n[1]-n[0],s=0,a=1;s1&&void 0!==arguments[1]&&arguments[1],i=Math.max.apply(Math,Yt(t)),s=Math.min.apply(Math,Yt(t)),a=[];if(i>=0&&s>=0)kt(i)[1],a=n?At(i,s):At(i);else if(i>0&&s<0){var r=Math.abs(s);i>=r?(kt(i)[1],a=e(i,r)):(kt(r)[1],a=e(r,i).reverse().map((function(t){return-1*t})))}else if(i<=0&&s<=0){var o=Math.abs(s),l=Math.abs(i);kt(o)[1],a=(a=n?At(o,l):At(o)).reverse().map((function(t){return-1*t}))}return a}function Lt(t){var e=Tt(t);return t.indexOf(0)>=0?t.indexOf(0):t[0]>0?-1*t[0]/e:-1*t[t.length-1]/e+(t.length-1)}function Tt(t){return t[1]-t[0]}function Mt(t){return t[t.length-1]-t[0]}function Ct(t,e){return u(e.zeroLine-t*e.scaleMultiplier)}function St(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=e.reduce((function(e,n){return Math.abs(n-t)n?i.slice(0,n):d(i,n-i.length,0),t.values=i}else t.values=s;t.chartType||(t.chartType=e)})),t.yRegions&&t.yRegions.map((function(t){if(t.end1&&void 0!==arguments[1]?arguments[1]:[],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=t/e.length;i<=0&&(i=1);var s=i/Gt,a=void 0;if(n){var r=Math.max.apply(Math,Yt(e.map((function(t){return t.length}))));a=Math.ceil(r/s)}return e.map((function(t,e){return(t+="").length>s&&(n?e%a!=0&&(t=""):t=s-3>0?t.slice(0,s-3)+" ...":t.slice(0,s)+".."),t}))}function jt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"line",e=arguments[1],n=arguments[2];return"axis-mixed"===t?(n.type="line",new Me(e,n)):Se[t]?new Se[t](e,n):void console.error("Undefined chart type: "+t)}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===n&&i.firstChild?i.insertBefore(s,i.firstChild):i.appendChild(s),s.styleSheet?s.styleSheet.cssText=t:s.appendChild(document.createTextNode(t))}}('.chart-container{position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.chart-container .axis,.chart-container .chart-label{fill:#555b51}.chart-container .axis line,.chart-container .chart-label line{stroke:#dadada}.chart-container .dataset-units circle{stroke:#fff;stroke-width:2}.chart-container .dataset-units path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container .dataset-path{stroke-width:2px}.chart-container .path-group path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container line.dashed{stroke-dasharray:5,3}.chart-container .axis-line .specific-value{text-anchor:start}.chart-container .axis-line .y-line{text-anchor:end}.chart-container .axis-line .x-line{text-anchor:middle}.chart-container .legend-dataset-text{fill:#6c7680;font-weight:600}.graph-svg-tip{position:absolute;z-index:99999;padding:10px;font-size:12px;color:#959da5;text-align:center;background:rgba(0,0,0,.8);border-radius:3px}.graph-svg-tip ol,.graph-svg-tip ul{padding-left:0;display:-webkit-box;display:-ms-flexbox;display:flex}.graph-svg-tip ul.data-point-list li{min-width:90px;-webkit-box-flex:1;-ms-flex:1;flex:1;font-weight:600}.graph-svg-tip strong{color:#dfe2e5;font-weight:600}.graph-svg-tip .svg-pointer{position:absolute;height:5px;margin:0 0 0 -5px;content:" ";border:5px solid transparent;border-top-color:rgba(0,0,0,.8)}.graph-svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.graph-svg-tip.comparison .title{display:block;padding:10px;margin:0;font-weight:600;line-height:1;pointer-events:none}.graph-svg-tip.comparison ul{margin:0;white-space:nowrap;list-style:none}.graph-svg-tip.comparison li{display:inline-block;padding:5px 10px}');var Ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ft=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Jt=function(){function t(t,e){for(var n=0;n\n\t\t\t\t
    \n\t\t\t\t
    '}),this.hideTip(),this.title=this.container.querySelector(".title"),this.dataPointList=this.container.querySelector(".data-point-list"),this.parent.addEventListener("mouseleave",(function(){e.hideTip()}))}},{key:"fill",value:function(){var e=this,n=void 0;this.index&&this.container.setAttribute("data-point-index",this.index),n=this.titleValueFirst?""+this.titleValue+""+this.titleName:this.titleName+""+this.titleValue+"",this.title.innerHTML=n,this.dataPointList.innerHTML="",this.listValues.map((function(n,i){var s=e.colors[i]||"black",a=0===n.formatted||n.formatted?n.formatted:n.value,r=t.create("li",{styles:{"border-top":"3px solid "+s},innerHTML:''+(0===a||a?a:"")+"\n\t\t\t\t\t"+(n.title?n.title:"")});e.dataPointList.appendChild(r)}))}},{key:"calcPosition",value:function(){var t=this.container.offsetWidth;this.top=this.y-this.container.offsetHeight-5,this.left=this.x-t/2;var e=this.parent.offsetWidth-t,n=this.container.querySelector(".svg-pointer");if(this.left<0)n.style.left="calc(50% - "+-1*this.left+"px)",this.left=0;else if(this.left>e){var i="calc(50% + "+(this.left-e)+"px)";n.style.left=i,this.left=e}else n.style.left="50%"}},{key:"setValues",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;this.titleName=n.name,this.titleValue=n.value,this.listValues=i,this.x=t,this.y=e,this.titleValueFirst=n.valueFirst||0,this.index=s,this.refresh()}},{key:"hideTip",value:function(){this.container.style.top="0px",this.container.style.left="0px",this.container.style.opacity="0"}},{key:"showTip",value:function(){this.container.style.top=this.top+"px",this.container.style.left=this.left+"px",this.container.style.opacity="1"}}]),e}(),te={"light-blue":"#7cd6fd",blue:"#5e64ff",violet:"#743ee2",red:"#ff5858",orange:"#ffa00a",yellow:"#feef72",green:"#28a745","light-green":"#98d85b",purple:"#b554ff",magenta:"#ffa3ef",black:"#36114C",grey:"#bdd3e6","light-grey":"#f0f4f7","dark-grey":"#b8c2cc"},ee=function(t){return/rgb[a]{0,1}\([\d, ]+\)/gim.test(t)?/\D+(\d*)\D+(\d*)\D+(\d*)/gim.exec(t).map((function(t,e){return 0!==e?Number(t).toString(16):"#"})).reduce((function(t,e){return""+t+e})):te[t]||t},ne=6,ie=4,se=15,ae=10,re="#dadada",oe="#555b51",le={bar:function(t){var e=void 0;"rect"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var n=t.cloneNode();return n.style.fill="#000000",n.style.opacity="0.4",e&&n.setAttribute("transform",e),n},dot:function(t){var e=void 0;"circle"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var n=t.cloneNode(),i=t.getAttribute("r"),s=t.getAttribute("fill");return n.setAttribute("r",parseInt(i)+4),n.setAttribute("fill",s),n.style.opacity="0.6",e&&n.setAttribute("transform",e),n},heat_square:function(t){var e=void 0;"circle"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var n=t.cloneNode(),i=t.getAttribute("r"),s=t.getAttribute("fill");return n.setAttribute("r",parseInt(i)+4),n.setAttribute("fill",s),n.style.opacity="0.6",e&&n.setAttribute("transform",e),n}},ce={bar:function(t,e){var n=void 0;"rect"!==t.nodeName&&(n=t.getAttribute("transform"),t=t.childNodes[0]);var i=["x","y","width","height"];Object.values(t.attributes).filter((function(t){return i.includes(t.name)&&t.specified})).map((function(t){e.setAttribute(t.name,t.nodeValue)})),n&&e.setAttribute("transform",n)},dot:function(t,e){var n=void 0;"circle"!==t.nodeName&&(n=t.getAttribute("transform"),t=t.childNodes[0]);var i=["cx","cy"];Object.values(t.attributes).filter((function(t){return i.includes(t.name)&&t.specified})).map((function(t){e.setAttribute(t.name,t.nodeValue)})),n&&e.setAttribute("transform",n)},heat_square:function(t,e){var n=void 0;"circle"!==t.nodeName&&(n=t.getAttribute("transform"),t=t.childNodes[0]);var i=["cx","cy"];Object.values(t.attributes).filter((function(t){return i.includes(t.name)&&t.specified})).map((function(t){e.setAttribute(t.name,t.nodeValue)})),n&&e.setAttribute("transform",n)}},ue=350,de=350,he=ue,pe=250,fe="easein",ge={ease:"0.25 0.1 0.25 1",linear:"0 0 1 1",easein:"0.1 0.8 0.2 1",easeout:"0 0 0.58 1",easeinout:"0.42 0 0.58 1"},me=".chart-container{position:relative;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell','Fira Sans','Droid Sans','Helvetica Neue',sans-serif}.chart-container .axis,.chart-container .chart-label{fill:#555b51}.chart-container .axis line,.chart-container .chart-label line{stroke:#dadada}.chart-container .dataset-units circle{stroke:#fff;stroke-width:2}.chart-container .dataset-units path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container .dataset-path{stroke-width:2px}.chart-container .path-group path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container line.dashed{stroke-dasharray:5,3}.chart-container .axis-line .specific-value{text-anchor:start}.chart-container .axis-line .y-line{text-anchor:end}.chart-container .axis-line .x-line{text-anchor:middle}.chart-container .legend-dataset-text{fill:#6c7680;font-weight:600}.graph-svg-tip{position:absolute;z-index:99999;padding:10px;font-size:12px;color:#959da5;text-align:center;background:rgba(0,0,0,.8);border-radius:3px}.graph-svg-tip ul{padding-left:0;display:flex}.graph-svg-tip ol{padding-left:0;display:flex}.graph-svg-tip ul.data-point-list li{min-width:90px;flex:1;font-weight:600}.graph-svg-tip strong{color:#dfe2e5;font-weight:600}.graph-svg-tip .svg-pointer{position:absolute;height:5px;margin:0 0 0 -5px;content:' ';border:5px solid transparent;border-top-color:rgba(0,0,0,.8)}.graph-svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.graph-svg-tip.comparison .title{display:block;padding:10px;margin:0;font-weight:600;line-height:1;pointer-events:none}.graph-svg-tip.comparison ul{margin:0;white-space:nowrap;list-style:none}.graph-svg-tip.comparison li{display:inline-block;padding:5px 10px}",ve=function(){function e(t,n){if(Ft(this,e),n=m(n),this.parent="string"==typeof t?document.querySelector(t):t,!(this.parent instanceof HTMLElement))throw new Error("No `parent` element to render on was provided.");this.rawChartArgs=n,this.title=n.title||"",this.type=n.type||"",this.realData=this.prepareData(n.data),this.data=this.prepareFirstData(this.realData),this.colors=this.validateColors(n.colors,this.type),this.config={showTooltip:1,showLegend:1,isNavigable:n.isNavigable||0,animate:void 0!==n.animate?n.animate:1,truncateLegends:n.truncateLegends||1},this.measures=JSON.parse(JSON.stringify(qt));var i=this.measures;this.setMeasures(n),this.title.length||(i.titleHeight=0),this.config.showLegend||(i.legendHeight=0),this.argHeight=n.height||i.baseHeight,this.state={},this.options={},this.initTimeout=Ut,this.config.isNavigable&&(this.overlays=[]),this.configure(n)}return Jt(e,[{key:"prepareData",value:function(t){return t}},{key:"prepareFirstData",value:function(t){return t}},{key:"validateColors",value:function(t,e){var n=[];return(t=(t||[]).concat(Kt[e])).forEach((function(t){var e=ee(t);O(e)?n.push(e):console.warn('"'+t+'" is not a valid color.')})),n}},{key:"setMeasures",value:function(){}},{key:"configure",value:function(){var t=this,e=this.argHeight;this.baseHeight=e,this.height=e-l(this.measures),this.boundDrawFn=function(){return t.draw(!0)},ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.boundDrawFn),this.resizeObserver.observe(this.parent)),window.addEventListener("resize",this.boundDrawFn),window.addEventListener("orientationchange",this.boundDrawFn)}},{key:"destroy",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),window.removeEventListener("resize",this.boundDrawFn),window.removeEventListener("orientationchange",this.boundDrawFn)}},{key:"setup",value:function(){this.makeContainer(),this.updateWidth(),this.makeTooltip(),this.draw(!1,!0)}},{key:"makeContainer",value:function(){this.parent.innerHTML="";var e={inside:this.parent,className:"chart-container"};this.independentWidth&&(e.styles={width:this.independentWidth+"px"}),this.container=t.create("div",e)}},{key:"makeTooltip",value:function(){this.tip=new Qt({parent:this.container,colors:this.colors}),this.bindTooltip()}},{key:"bindTooltip",value:function(){}},{key:"draw",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e&&n(this.parent)||(this.updateWidth(),this.calc(e),this.makeChartArea(),this.setupComponents(),this.components.forEach((function(e){return e.setup(t.drawArea)})),this.render(this.components,!1),i&&(this.data=this.realData,setTimeout((function(){t.update(t.data)}),this.initTimeout)),this.renderLegend(),this.setupNavigation(i))}},{key:"calc",value:function(){}},{key:"updateWidth",value:function(){this.baseWidth=s(this.parent),this.width=this.baseWidth-c(this.measures)}},{key:"makeChartArea",value:function(){this.svg&&this.container.removeChild(this.svg);var t=this.measures;this.svg=M(this.container,"frappe-chart chart",this.baseWidth,this.baseHeight),this.svgDefs=C(this.svg),this.title.length&&(this.titleEL=R("title",t.margins.left,t.margins.top,this.title,{fontSize:t.titleFontSize,fill:"#666666",dy:t.titleFontSize}));var e=r(t);this.drawArea=S(this.type+"-chart chart-draw-area","translate("+o(t)+", "+e+")"),this.config.showLegend&&(e+=this.height+t.paddings.bottom,this.legendArea=S("chart-legend","translate("+o(t)+", "+e+")")),this.title.length&&this.svg.appendChild(this.titleEL),this.svg.appendChild(this.drawArea),this.config.showLegend&&this.svg.appendChild(this.legendArea),this.updateTipOffset(o(t),r(t))}},{key:"updateTipOffset",value:function(t,e){this.tip.offset={x:t,y:e}}},{key:"setupComponents",value:function(){this.components=new Map}},{key:"update",value:function(t){t||console.error("No data to update."),this.data=this.prepareData(t),this.calc(),this.render(this.components,this.config.animate),this.renderLegend()}},{key:"render",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.components,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.config.isNavigable&&this.overlays.map((function(t){return t.parentNode.removeChild(t)}));var i=[];e.forEach((function(t){i=i.concat(t.update(n))})),i.length>0?(ct(this.container,this.svg,i),setTimeout((function(){e.forEach((function(t){return t.make()})),t.updateNav()}),400)):(e.forEach((function(t){return t.make()})),this.updateNav())}},{key:"updateNav",value:function(){this.config.isNavigable&&(this.makeOverlay(),this.bindUnits())}},{key:"renderLegend",value:function(){}},{key:"setupNavigation",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.config.isNavigable&&e&&(this.bindOverlay(),this.keyActions={13:this.onEnterKey.bind(this),37:this.onLeftArrow.bind(this),38:this.onUpArrow.bind(this),39:this.onRightArrow.bind(this),40:this.onDownArrow.bind(this)},document.addEventListener("keydown",(function(e){i(t.container)&&(e=e||window.event,t.keyActions[e.keyCode]&&t.keyActions[e.keyCode]())})))}},{key:"makeOverlay",value:function(){}},{key:"updateOverlay",value:function(){}},{key:"bindOverlay",value:function(){}},{key:"bindUnits",value:function(){}},{key:"onLeftArrow",value:function(){}},{key:"onRightArrow",value:function(){}},{key:"onUpArrow",value:function(){}},{key:"onDownArrow",value:function(){}},{key:"onEnterKey",value:function(){}},{key:"addDataPoint",value:function(){}},{key:"removeDataPoint",value:function(){}},{key:"getDataPoint",value:function(){}},{key:"setCurrentDataPoint",value:function(){}},{key:"updateDataset",value:function(){}},{key:"export",value:function(){var t=dt(this.svg);ut(this.title||"Chart",[t])}}]),e}(),ye=function(t){function e(t,n){return Ft(this,e),It(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n))}return Rt(e,t),Jt(e,[{key:"configure",value:function(t){Wt(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"configure",this).call(this,t),this.config.formatTooltipY=(t.tooltipOptions||{}).formatTooltipY,this.config.maxSlices=t.maxSlices||20,this.config.maxLegendPoints=t.maxLegendPoints||20}},{key:"calc",value:function(){var t=this,e=this.state,n=this.config.maxSlices;e.sliceTotals=[];var i=this.data.labels.map((function(e,n){var i=0;return t.data.datasets.map((function(t){i+=t.values[n]})),[i,e]})).filter((function(t){return t[0]>=0})),s=i;if(i.length>n){i.sort((function(t,e){return e[0]-t[0]})),s=i.slice(0,n-1);var a=0;i.slice(n-1).map((function(t){a+=t[0]})),s.push([a,"Rest"]),this.colors[n-1]="grey"}e.labels=[],s.map((function(t){e.sliceTotals.push(g(t[0])),e.labels.push(t[1])})),e.grandTotal=e.sliceTotals.reduce((function(t,e){return t+e}),0),this.center={x:this.width/2,y:this.height/2}}},{key:"renderLegend",value:function(){var t=this,e=this.state;this.legendArea.textContent="",this.legendTotals=e.sliceTotals.slice(0,this.config.maxLegendPoints);var n=0,i=0;this.legendTotals.map((function(s,a){var r=150,o=Math.floor((t.width-c(t.measures))/r);t.legendTotals.lengtho&&(n=0,i+=20);var l=r*n+5,u=t.config.truncateLegends?b(e.labels[a],r/10):e.labels[a],d=t.config.formatTooltipY?t.config.formatTooltipY(s):s,h=W(l,i,5,t.colors[a],u+": "+d,!1);t.legendArea.appendChild(h),n++}))}}]),e}(ve),be=7,xe=1e3,we=86400,$e=["January","February","March","April","May","June","July","August","September","October","November","December"],ke=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Oe=function(){function t(e){var n=e.layerClass,i=void 0===n?"":n,s=e.layerTransform,a=void 0===s?"":s,r=e.constants,o=e.getData,l=e.makeElements,c=e.animateElements;Ft(this,t),this.layerTransform=a,this.constants=r,this.makeElements=l,this.getData=o,this.animateElements=c,this.store=[],this.labels=[],this.layerClass=i,this.layerClass="function"==typeof this.layerClass?this.layerClass():this.layerClass,this.refresh()}return Jt(t,[{key:"refresh",value:function(t){this.data=t||this.getData()}},{key:"setup",value:function(t){this.layer=S(this.layerClass,this.layerTransform,t)}},{key:"make",value:function(){this.render(this.data),this.oldData=this.data}},{key:"render",value:function(t){var e=this;this.store=this.makeElements(t),this.layer.textContent="",this.store.forEach((function(t){e.layer.appendChild(t)})),this.labels.forEach((function(t){e.layer.appendChild(t)}))}},{key:"update",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.refresh();var e=[];return t&&(e=this.animateElements(this.data)||[]),e}}]),t}(),Ae={donutSlices:{layerClass:"donut-slices",makeElements:function(t){return t.sliceStrings.map((function(e,n){var i=_(e,"donut-path",t.colors[n],"none",t.strokeWidth);return i.style.transition="transform .3s;",i}))},animateElements:function(t){return this.store.map((function(e,n){return at(e,t.sliceStrings[n])}))}},pieSlices:{layerClass:"pie-slices",makeElements:function(t){return t.sliceStrings.map((function(e,n){var i=_(e,"pie-path","none",t.colors[n]);return i.style.transition="transform .3s;",i}))},animateElements:function(t){return this.store.map((function(e,n){return at(e,t.sliceStrings[n])}))}},percentageBars:{layerClass:"percentage-bars",makeElements:function(t){var e=this;return t.xPositions.map((function(n,i){return H(n,0,t.widths[i],e.constants.barHeight,e.constants.barDepth,t.colors[i])}))},animateElements:function(t){if(t)return[]}},yAxis:{layerClass:"y axis",makeElements:function(t){var e=this;return t.positions.map((function(n,i){return Y(n,t.labels[i],e.constants.width,{mode:e.constants.mode,pos:e.constants.pos,shortenNumbers:e.constants.shortenNumbers})}))},animateElements:function(t){var e=t.positions,n=t.labels,i=this.oldData.positions,s=this.oldData.labels,a=y(i,e),r=Bt(a,2);i=r[0],e=r[1];var o=y(s,n),l=Bt(o,2);return s=l[0],n=l[1],this.render({positions:i,labels:n}),this.store.map((function(t,n){return tt(t,e[n],i[n])}))}},xAxis:{layerClass:"x axis",makeElements:function(t){var e=this;return t.positions.map((function(n,i){return q(n,t.calcLabels[i],e.constants.height,{mode:e.constants.mode,pos:e.constants.pos})}))},animateElements:function(t){var e=t.positions,n=t.calcLabels,i=this.oldData.positions,s=this.oldData.calcLabels,a=y(i,e),r=Bt(a,2);i=r[0],e=r[1];var o=y(s,n),l=Bt(o,2);return s=l[0],n=l[1],this.render({positions:i,calcLabels:n}),this.store.map((function(t,n){return Q(t,e[n],i[n])}))}},yMarkers:{layerClass:"y-markers",makeElements:function(t){var e=this;return t.map((function(t){return U(t.position,t.label,e.constants.width,{labelPos:t.options.labelPos,mode:"span",lineType:"dashed"})}))},animateElements:function(t){var e=y(this.oldData,t),n=Bt(e,2);this.oldData=n[0];var i=(t=n[1]).map((function(t){return t.position})),s=t.map((function(t){return t.label})),a=t.map((function(t){return t.options})),r=this.oldData.map((function(t){return t.position}));return this.render(r.map((function(t,e){return{position:r[e],label:s[e],options:a[e]}}))),this.store.map((function(t,e){return tt(t,i[e],r[e])}))}},yRegions:{layerClass:"y-regions",makeElements:function(t){var e=this;return t.map((function(t){return V(t.startPos,t.endPos,e.constants.width,t.label,{labelPos:t.options.labelPos})}))},animateElements:function(t){var e=y(this.oldData,t),n=Bt(e,2);this.oldData=n[0];var i=(t=n[1]).map((function(t){return t.endPos})),s=t.map((function(t){return t.label})),a=t.map((function(t){return t.startPos})),r=t.map((function(t){return t.options})),o=this.oldData.map((function(t){return t.endPos})),l=this.oldData.map((function(t){return t.startPos}));this.render(o.map((function(t,e){return{startPos:l[e],endPos:o[e],label:s[e],options:r[e]}})));var c=[];return this.store.map((function(t,e){c=c.concat(et(t,a[e],i[e],o[e]))})),c}},heatDomain:{layerClass:function(){return"heat-domain domain-"+this.constants.index},makeElements:function(t){var e=this,n=this.constants,i=n.index,s=n.colWidth,a=n.rowHeight,r=n.squareSize,o=n.radius,l=n.xTranslate,c=0;return this.serializedSubDomains=[],t.cols.map((function(t,n){1===n&&e.labels.push(R("domain-name",l,-12,yt(i,!0).toUpperCase(),{fontSize:9})),t.map((function(t,n){if(t.fill){var i={"data-date":t.yyyyMmDd,"data-value":t.dataValue,"data-day":n},s=F("day",l,c,r,o,t.fill,i);e.serializedSubDomains.push(s)}c+=a})),c=0,l+=s})),this.serializedSubDomains},animateElements:function(t){if(t)return[]}},barGraph:{layerClass:function(){return"dataset-units dataset-bars dataset-"+this.constants.index},makeElements:function(t){var e=this.constants;return this.unitType="bar",this.units=t.yPositions.map((function(n,i){return G(t.xPositions[i],n,t.barWidth,e.color,t.labels[i],i,t.offsets[i],{zeroLine:t.zeroLine,barsWidth:t.barsWidth,minHeight:e.minHeight})})),this.units},animateElements:function(t){var e=t.xPositions,n=t.yPositions,i=t.offsets,s=t.labels,a=this.oldData.xPositions,r=this.oldData.yPositions,o=this.oldData.offsets,l=this.oldData.labels,c=y(a,e),u=Bt(c,2);a=u[0],e=u[1];var d=y(r,n),h=Bt(d,2);r=h[0],n=h[1];var p=y(o,i),f=Bt(p,2);o=f[0],i=f[1];var g=y(l,s),m=Bt(g,2);l=m[0],s=m[1],this.render({xPositions:a,yPositions:r,offsets:o,labels:s,zeroLine:this.oldData.zeroLine,barsWidth:this.oldData.barsWidth,barWidth:this.oldData.barWidth});var v=[];return this.store.map((function(s,a){v=v.concat(nt(s,e[a],n[a],t.barWidth,i[a],{zeroLine:t.zeroLine}))})),v}},lineGraph:{layerClass:function(){return"dataset-units dataset-line dataset-"+this.constants.index},makeElements:function(t){var e=this.constants;return this.unitType="dot",this.paths={},e.hideLine||(this.paths=K(t.xPositions,t.yPositions,e.color,{heatline:e.heatline,regionFill:e.regionFill,spline:e.spline},{svgDefs:e.svgDefs,zeroLine:t.zeroLine})),this.units=[],e.hideDots||(this.units=t.yPositions.map((function(n,i){return X(t.xPositions[i],n,t.radius,e.color,e.valuesOverPoints?t.values[i]:"",i)}))),Object.values(this.paths).concat(this.units)},animateElements:function(t){var e=t.xPositions,n=t.yPositions,i=t.values,s=this.oldData.xPositions,a=this.oldData.yPositions,r=this.oldData.values,o=y(s,e),l=Bt(o,2);s=l[0],e=l[1];var c=y(a,n),u=Bt(c,2);a=u[0],n=u[1];var d=y(r,i),h=Bt(d,2);r=h[0],i=h[1],this.render({xPositions:s,yPositions:a,values:i,zeroLine:this.oldData.zeroLine,radius:this.oldData.radius});var p=[];return Object.keys(this.paths).length&&(p=p.concat(st(this.paths,e,n,t.zeroLine,this.constants.spline))),this.units.length&&this.units.map((function(t,i){p=p.concat(it(t,e[i],n[i]))})),p}}},Pe=function(t){function n(t,e){Ft(this,n);var i=It(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,t,e));return i.type="percentage",i.setup(),i}return Rt(n,t),Jt(n,[{key:"setMeasures",value:function(t){var e=this.measures;this.barOptions=t.barOptions||{};var n=this.barOptions;n.height=n.height||20,n.depth=n.depth||Vt,e.paddings.right=30,e.legendHeight=60,e.baseHeight=8*(n.height+.5*n.depth)}},{key:"setupComponents",value:function(){var t=this.state,e=[["percentageBars",{barHeight:this.barOptions.height,barDepth:this.barOptions.depth},function(){return{xPositions:t.xPositions,widths:t.widths,colors:this.colors}}.bind(this)]];this.components=new Map(e.map((function(t){var e=$t.apply(void 0,Yt(t));return[t[0],e]})))}},{key:"calc",value:function(){var t=this;Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"calc",this).call(this);var e=this.state;e.xPositions=[],e.widths=[];var i=0;e.sliceTotals.map((function(n){var s=t.width*n/e.grandTotal;e.widths.push(s),e.xPositions.push(i),i+=s}))}},{key:"makeDataByIndex",value:function(){}},{key:"bindTooltip",value:function(){var t=this,n=this.state;this.container.addEventListener("mousemove",(function(i){var s=t.components.get("percentageBars").store,a=i.target;if(s.includes(a)){var r=s.indexOf(a),o=e(t.container),l=e(a),c=l.left-o.left+parseInt(a.getAttribute("width"))/2,u=l.top-o.top,d=(t.formattedLabels&&t.formattedLabels.length>0?t.formattedLabels[r]:t.state.labels[r])+": ",h=n.sliceTotals[r]/n.grandTotal;t.tip.setValues(c,u,{name:d,value:(100*h).toFixed(1)+"%"}),t.tip.showTip()}}))}}]),n}(ye),Le=function(t){function n(t,e){Ft(this,n);var i=It(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,t,e));return i.type="pie",i.initTimeout=0,i.init=1,i.setup(),i}return Rt(n,t),Jt(n,[{key:"configure",value:function(t){Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"configure",this).call(this,t),this.mouseMove=this.mouseMove.bind(this),this.mouseLeave=this.mouseLeave.bind(this),this.hoverRadio=t.hoverRadio||.1,this.config.startAngle=t.startAngle||0,this.clockWise=t.clockWise||!1}},{key:"calc",value:function(){var t=this;Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"calc",this).call(this);var e=this.state;this.radius=this.height>this.width?this.center.x:this.center.y;var i=this.radius,s=this.clockWise,a=e.slicesProperties||[];e.sliceStrings=[],e.slicesProperties=[];var r=180-this.config.startAngle;e.sliceTotals.map((function(n,o){var l=r,c=n/e.grandTotal*360,u=c>180?1:0,d=s?-c:c,h=r+=d,f=p(l,i),g=p(h,i),m=t.init&&a[o],v=void 0,y=void 0;t.init?(v=m?m.startPosition:f,y=m?m.endPosition:f):(v=f,y=g);var b=360===c?D(v,y,t.center,t.radius,s,u):N(v,y,t.center,t.radius,s,u);e.sliceStrings.push(b),e.slicesProperties.push({startPosition:f,endPosition:g,value:n,total:e.grandTotal,startAngle:l,endAngle:h,angle:d})})),this.init=0}},{key:"setupComponents",value:function(){var t=this.state,e=[["pieSlices",{},function(){return{sliceStrings:t.sliceStrings,colors:this.colors}}.bind(this)]];this.components=new Map(e.map((function(t){var e=$t.apply(void 0,Yt(t));return[t[0],e]})))}},{key:"calTranslateByAngle",value:function(t){var e=this.radius,n=this.hoverRadio,i=p(t.startAngle+t.angle/2,e);return"translate3d("+i.x*n+"px,"+i.y*n+"px,0)"}},{key:"hoverSlice",value:function(t,n,i,s){if(t){var a=this.colors[n];if(i){ot(t,this.calTranslateByAngle(this.state.slicesProperties[n])),t.style.fill=k(a,50);var r=e(this.svg),o=s.pageX-r.left+10,l=s.pageY-r.top-10,c=(this.formatted_labels&&this.formatted_labels.length>0?this.formatted_labels[n]:this.state.labels[n])+": ",u=(100*this.state.sliceTotals[n]/this.state.grandTotal).toFixed(1);this.tip.setValues(o,l,{name:c,value:u+"%"}),this.tip.showTip()}else ot(t,"translate3d(0,0,0)"),this.tip.hideTip(),t.style.fill=a}}},{key:"bindTooltip",value:function(){this.container.addEventListener("mousemove",this.mouseMove),this.container.addEventListener("mouseleave",this.mouseLeave)}},{key:"mouseMove",value:function(t){var e=t.target,n=this.components.get("pieSlices").store,i=this.curActiveSliceIndex,s=this.curActiveSlice;if(n.includes(e)){var a=n.indexOf(e);this.hoverSlice(s,i,!1),this.curActiveSlice=e,this.curActiveSliceIndex=a,this.hoverSlice(e,a,!0,t)}else this.mouseLeave()}},{key:"mouseLeave",value:function(){this.hoverSlice(this.curActiveSlice,this.curActiveSliceIndex,!1)}}]),n}(ye),Te=function(t){function e(t,n){Ft(this,e);var i=It(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));i.type="heatmap",i.countLabel=n.countLabel||"";var s=["Sunday","Monday"],a=s.includes(n.startSubDomain)?n.startSubDomain:"Sunday";return i.startSubDomainIndex=s.indexOf(a),i.setup(),i}return Rt(e,t),Jt(e,[{key:"setMeasures",value:function(t){var e=this.measures;this.discreteDomains=0===t.discreteDomains?0:1,e.paddings.top=36,e.paddings.bottom=0,e.legendHeight=24,e.baseHeight=12*be+l(e);var n=this.data,i=this.discreteDomains?12:0;this.independentWidth=12*(gt(n.start,n.end)+i)+c(e)}},{key:"updateWidth",value:function(){var t=this.discreteDomains?12:0,e=this.state.noOfWeeks?this.state.noOfWeeks:52;this.baseWidth=12*(e+t)+c(this.measures)}},{key:"prepareData",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data;if(t.start&&t.end&&t.start>t.end)throw new Error("Start date cannot be greater than end date.");if(t.start||(t.start=new Date,t.start.setFullYear(t.start.getFullYear()-1)),t.end||(t.end=new Date),t.dataPoints=t.dataPoints||{},parseInt(Object.keys(t.dataPoints)[0])>1e5){var e={};Object.keys(t.dataPoints).forEach((function(n){var i=new Date(n*xe);e[pt(i)]=t.dataPoints[n]})),t.dataPoints=e}return t}},{key:"calc",value:function(){var t=this.state;t.start=ft(this.data.start),t.end=ft(this.data.end),t.firstWeekStart=ft(t.start),t.noOfWeeks=gt(t.start,t.end),t.distribution=_t(Object.values(this.data.dataPoints),5),t.domainConfigs=this.getDomains()}},{key:"setupComponents",value:function(){var t=this,e=this.state,n=this.discreteDomains?0:1,i=e.domainConfigs.map((function(i,s){return["heatDomain",{index:i.index,colWidth:12,rowHeight:12,squareSize:10,radius:t.rawChartArgs.radius||0,xTranslate:12*e.domainConfigs.filter((function(t,e){return e1&&void 0!==arguments[1]?arguments[1]:"",n=[t.getMonth(),t.getFullYear()],i=n[0],s=n[1],a=xt(t),r={index:i,cols:[]};wt(e=ft(e)||bt(i,s),1);for(var o=gt(a,e),l=[],c=void 0,u=0;u2&&void 0!==arguments[2]&&arguments[2],i=this.state,s=ft(t),a=[],r=0;r=i.start&&s<=i.end;n||s.getMonth()!==e||!l?o.yyyyMmDd=pt(s):o=this.getSubDomainConfig(s),a.push(o)}return a}},{key:"getSubDomainConfig",value:function(t){var e=pt(t),n=this.data.dataPoints[e];return{yyyyMmDd:e,dataValue:n||0,fill:this.colors[Nt(n,this.state.distribution)]}}}]),e}(ve),Me=function(t){function n(t,e){Ft(this,n);var i=It(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,t,e));return i.barOptions=e.barOptions||{},i.lineOptions=e.lineOptions||{},i.type=e.type||"line",i.init=1,i.setup(),i}return Rt(n,t),Jt(n,[{key:"setMeasures",value:function(){this.data.datasets.length<=1&&(this.config.showLegend=0,this.measures.paddings.bottom=30)}},{key:"configure",value:function(t){Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"configure",this).call(this,t),t.axisOptions=t.axisOptions||{},t.tooltipOptions=t.tooltipOptions||{},this.config.xAxisMode=t.axisOptions.xAxisMode||"span",this.config.yAxisMode=t.axisOptions.yAxisMode||"span",this.config.xIsSeries=t.axisOptions.xIsSeries||0,this.config.shortenYAxisNumbers=t.axisOptions.shortenYAxisNumbers||0,this.config.formatTooltipX=t.tooltipOptions.formatTooltipX,this.config.formatTooltipY=t.tooltipOptions.formatTooltipY,this.config.valuesOverPoints=t.valuesOverPoints}},{key:"prepareData",value:function(){return Dt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data,this.type)}},{key:"prepareFirstData",value:function(){return Et(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data)}},{key:"calc",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.calcXPositions(),t||this.calcYAxisParameters(this.getAllYValues(),"line"===this.type),this.makeDataByIndex()}},{key:"calcXPositions",value:function(){var t=this.state,e=this.data.labels;t.datasetLength=e.length,t.unitWidth=this.width/t.datasetLength,t.xOffset=t.unitWidth/2,t.xAxis={labels:e,positions:e.map((function(e,n){return u(t.xOffset+n*t.unitWidth)}))}}},{key:"calcYAxisParameters",value:function(t){var e=Pt(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"false"),n=this.height/Mt(e),i=Tt(e)*n,s=this.height-Lt(e)*i;this.state.yAxis={labels:e,positions:e.map((function(t){return s-t*n})),scaleMultiplier:n,zeroLine:s},this.calcDatasetPoints(),this.calcYExtremes(),this.calcYRegions()}},{key:"calcDatasetPoints",value:function(){var t=this.state,e=function(e){return e.map((function(e){return Ct(e,t.yAxis)}))};t.datasets=this.data.datasets.map((function(t,n){var i=t.values,s=t.cumulativeYs||[];return{name:t.name&&t.name.replace(/<|>|&/g,(function(t){return"&"==t?"&":"<"==t?"<":">"})),index:n,chartType:t.chartType,values:i,yPositions:e(i),cumulativeYs:s,cumulativeYPos:e(s)}}))}},{key:"calcYExtremes",value:function(){var t=this.state;this.barOptions.stacked?t.yExtremes=t.datasets[t.datasets.length-1].cumulativeYPos:(t.yExtremes=new Array(t.datasetLength).fill(9999),t.datasets.map((function(e){e.yPositions.map((function(e,n){er(i)?t.mapTooltipXPosition(a):t.tip.hideTip()}))}},{key:"mapTooltipXPosition",value:function(t){var e=this.state;if(e.yExtremes){var n=St(t,e.xAxis.positions,!0);if(n>=0){var i=this.dataByIndex[n];this.tip.setValues(i.xPos+this.tip.offset.x,i.yExtreme+this.tip.offset.y,{name:i.formattedLabel,value:""},i.values,n),this.tip.showTip()}}}},{key:"renderLegend",value:function(){var t=this,e=this.data;e.datasets.length>1&&(this.legendArea.textContent="",e.datasets.map((function(e,n){var i=J(100*n,"0",100,t.colors[n],e.name,t.config.truncateLegends);t.legendArea.appendChild(i)})))}},{key:"makeOverlay",value:function(){var t=this;this.init?this.init=0:(this.overlayGuides&&this.overlayGuides.forEach((function(t){var e=t.overlay;e.parentNode.removeChild(e)})),this.overlayGuides=this.dataUnitComponents.map((function(t){return{type:t.unitType,overlay:void 0,units:t.units}})),void 0===this.state.currentIndex&&(this.state.currentIndex=this.state.datasetLength-1),this.overlayGuides.map((function(e){var n=e.units[t.state.currentIndex];e.overlay=le[e.type](n),t.drawArea.appendChild(e.overlay)})))}},{key:"updateOverlayGuides",value:function(){this.overlayGuides&&this.overlayGuides.forEach((function(t){var e=t.overlay;e.parentNode.removeChild(e)}))}},{key:"bindOverlay",value:function(){var t=this;this.parent.addEventListener("data-select",(function(){t.updateOverlay()}))}},{key:"bindUnits",value:function(){var t=this;this.dataUnitComponents.map((function(e){e.units.map((function(e){e.addEventListener("click",(function(){var n=e.getAttribute("data-point-index");t.setCurrentDataPoint(n)}))}))})),this.tip.container.addEventListener("click",(function(){var e=t.tip.container.getAttribute("data-point-index");t.setCurrentDataPoint(e)}))}},{key:"updateOverlay",value:function(){var t=this;this.overlayGuides.map((function(e){var n=e.units[t.state.currentIndex];ce[e.type](n,e.overlay)}))}},{key:"onLeftArrow",value:function(){this.setCurrentDataPoint(this.state.currentIndex-1)}},{key:"onRightArrow",value:function(){this.setCurrentDataPoint(this.state.currentIndex+1)}},{key:"getDataPoint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.currentIndex,e=this.state;return{index:t,label:e.xAxis.labels[t],values:e.datasets.map((function(e){return e.values[t]}))}}},{key:"setCurrentDataPoint",value:function(t){var e=this.state;(t=parseInt(t))<0&&(t=0),t>=e.xAxis.labels.length&&(t=e.xAxis.labels.length-1),t!==e.currentIndex&&(e.currentIndex=t,a(this.parent,"data-select",this.getDataPoint()))}},{key:"addDataPoint",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.state.datasetLength;Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"addDataPoint",this).call(this,t,e,i),this.data.labels.splice(i,0,t),this.data.datasets.map((function(t,n){t.values.splice(i,0,e[n])})),this.update(this.data)}},{key:"removeDataPoint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.datasetLength-1;this.data.labels.length<=1||(Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"removeDataPoint",this).call(this,t),this.data.labels.splice(t,1),this.data.datasets.map((function(e){e.values.splice(t,1)})),this.update(this.data))}},{key:"updateDataset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.data.datasets[e].values=t,this.update(this.data)}},{key:"updateDatasets",value:function(t){this.data.datasets.map((function(e,n){t[n]&&(e.values=t[n])})),this.update(this.data)}}]),n}(ve),Ce=function(t){function n(t,e){Ft(this,n);var i=It(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,t,e));return i.type="donut",i.initTimeout=0,i.init=1,i.setup(),i}return Rt(n,t),Jt(n,[{key:"configure",value:function(t){Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"configure",this).call(this,t),this.mouseMove=this.mouseMove.bind(this),this.mouseLeave=this.mouseLeave.bind(this),this.hoverRadio=t.hoverRadio||.1,this.config.startAngle=t.startAngle||0,this.clockWise=t.clockWise||!1,this.strokeWidth=t.strokeWidth||30}},{key:"calc",value:function(){var t=this;Wt(n.prototype.__proto__||Object.getPrototypeOf(n.prototype),"calc",this).call(this);var e=this.state;this.radius=this.height>this.width?this.center.x-this.strokeWidth/2:this.center.y-this.strokeWidth/2;var i=this.radius,s=this.clockWise,a=e.slicesProperties||[];e.sliceStrings=[],e.slicesProperties=[];var r=180-this.config.startAngle;e.sliceTotals.map((function(n,o){var l=r,c=n/e.grandTotal*360,u=c>180?1:0,d=s?-c:c,h=r+=d,f=p(l,i),g=p(h,i),m=t.init&&a[o],v=void 0,y=void 0;t.init?(v=m?m.startPosition:f,y=m?m.endPosition:f):(v=f,y=g);var b=360===c?z(v,y,t.center,t.radius,t.clockWise,u):E(v,y,t.center,t.radius,t.clockWise,u);e.sliceStrings.push(b),e.slicesProperties.push({startPosition:f,endPosition:g,value:n,total:e.grandTotal,startAngle:l,endAngle:h,angle:d})})),this.init=0}},{key:"setupComponents",value:function(){var t=this.state,e=[["donutSlices",{},function(){return{sliceStrings:t.sliceStrings,colors:this.colors,strokeWidth:this.strokeWidth}}.bind(this)]];this.components=new Map(e.map((function(t){var e=$t.apply(void 0,Yt(t));return[t[0],e]})))}},{key:"calTranslateByAngle",value:function(t){var e=this.radius,n=this.hoverRadio,i=p(t.startAngle+t.angle/2,e);return"translate3d("+i.x*n+"px,"+i.y*n+"px,0)"}},{key:"hoverSlice",value:function(t,n,i,s){if(t){var a=this.colors[n];if(i){ot(t,this.calTranslateByAngle(this.state.slicesProperties[n])),t.style.stroke=k(a,50);var r=e(this.svg),o=s.pageX-r.left+10,l=s.pageY-r.top-10,c=(this.formatted_labels&&this.formatted_labels.length>0?this.formatted_labels[n]:this.state.labels[n])+": ",u=(100*this.state.sliceTotals[n]/this.state.grandTotal).toFixed(1);this.tip.setValues(o,l,{name:c,value:u+"%"}),this.tip.showTip()}else ot(t,"translate3d(0,0,0)"),this.tip.hideTip(),t.style.stroke=a}}},{key:"bindTooltip",value:function(){this.container.addEventListener("mousemove",this.mouseMove),this.container.addEventListener("mouseleave",this.mouseLeave)}},{key:"mouseMove",value:function(t){var e=t.target,n=this.components.get("donutSlices").store,i=this.curActiveSliceIndex,s=this.curActiveSlice;if(n.includes(e)){var a=n.indexOf(e);this.hoverSlice(s,i,!1),this.curActiveSlice=e,this.curActiveSliceIndex=a,this.hoverSlice(e,a,!0,t)}else this.mouseLeave()}},{key:"mouseLeave",value:function(){this.hoverSlice(this.curActiveSlice,this.curActiveSliceIndex,!1)}}]),n}(ye),Se={bar:Me,line:Me,percentage:Pe,heatmap:Te,pie:Le,donut:Ce},_e=function t(e,n){return Ft(this,t),jt(n.type,e,n)},Ne=Object.freeze({Chart:_e,PercentageChart:Pe,PieChart:Le,Heatmap:Te,AxisChart:Me}),De={NAME:"Frappe Charts",VERSION:"1.6.2"};return Object.assign({},De,Ne)}()}(Ee={exports:{}},Ee.exports),Ee.exports);function je(e){let n,i,s;return{c(){n=m("div")},m(t,a){p(t,n,a),e[18](n),i||(s=w(n,"data-select",e[17]),i=!0)},p:t,i:t,o:t,d(t){t&&f(n),e[18](null),i=!1,s()}}}function He(t,e,n){let i,{data:s={labels:[],datasets:[{values:[]}],yMarkers:{},yRegions:[]}}=e,{title:a=""}=e,{type:r="line"}=e,{height:o=300}=e,{animate:l=!0}=e,{axisOptions:c={}}=e,{barOptions:u={}}=e,{lineOptions:d={}}=e,{tooltipOptions:h={}}=e,{colors:p=[]}=e,{valuesOverPoints:f=0}=e,{isNavigable:g=!1}=e,{maxSlices:m=3}=e,v=null;function y(t){return function(...e){if(v)return t(...e)}}const b=y(((t,e,n)=>v.addDataPoint(t,e,n))),x=y((t=>v.removeDataPoint(t))),w=y((()=>v.export())),$=y((t=>v.update(t)));return S((()=>{v=new ze.Chart(i,{data:s,title:a,type:r,height:o,animate:l,colors:p,axisOptions:c,barOptions:u,lineOptions:d,tooltipOptions:h,valuesOverPoints:f,isNavigable:g,maxSlices:m})})),function(t){C().$$.on_destroy.push(t)}((()=>{v=null})),t.$$set=t=>{"data"in t&&n(1,s=t.data),"title"in t&&n(2,a=t.title),"type"in t&&n(3,r=t.type),"height"in t&&n(4,o=t.height),"animate"in t&&n(5,l=t.animate),"axisOptions"in t&&n(6,c=t.axisOptions),"barOptions"in t&&n(7,u=t.barOptions),"lineOptions"in t&&n(8,d=t.lineOptions),"tooltipOptions"in t&&n(9,h=t.tooltipOptions),"colors"in t&&n(10,p=t.colors),"valuesOverPoints"in t&&n(11,f=t.valuesOverPoints),"isNavigable"in t&&n(12,g=t.isNavigable),"maxSlices"in t&&n(13,m=t.maxSlices)},t.$$.update=()=>{2&t.$$.dirty&&$(s)},[i,s,a,r,o,l,c,u,d,h,p,f,g,m,b,x,w,function(e){N.call(this,t,e)},function(t){E[t?"unshift":"push"]((()=>{i=t,n(0,i)}))}]}var Fe=class extends at{constructor(t){super(),st(this,t,He,je,a,{data:1,title:2,type:3,height:4,animate:5,axisOptions:6,barOptions:7,lineOptions:8,tooltipOptions:9,colors:10,valuesOverPoints:11,isNavigable:12,maxSlices:13,addDataPoint:14,removeDataPoint:15,exportChart:16})}get addDataPoint(){return this.$$.ctx[14]}get removeDataPoint(){return this.$$.ctx[15]}get exportChart(){return this.$$.ctx[16]}};function Je(e){let n,i;return n=new Fe({props:{data:e[0],type:"line"}}),{c(){et(n.$$.fragment)},m(t,e){nt(n,t,e),i=!0},p:t,i(t){i||(Z(n.$$.fragment,t),i=!0)},o(t){Q(n.$$.fragment,t),i=!1},d(t){it(n,t)}}}function We(t){let e,n;return e=new Ht({props:{title:"Пример графика",$$slots:{default:[Je]},$$scope:{ctx:t}}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},p(t,[n]){const i={};2&n&&(i.$$scope={dirty:n,ctx:t}),e.$set(i)},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function Re(t){return[{labels:["Sun","Mon","Tues","Wed","Thurs","Fri","Sat"],datasets:[{values:[10,12,3,9,8,15,9]}]}]}class Ie extends at{constructor(t){super(),st(this,t,Re,We,a,{})}}function Be(t,e,n){const i=t.slice();return i[1]=e[n],i[3]=n,i}function Ye(t){let e,n,i,s=t[1].msg+"";return{c(){e=m("div"),n=y(s),$(e,"class",i=t[1].msg.toString().includes("[E]")?"text-red-500":"text-black")},m(t,i){p(t,e,i),h(e,n)},p(t,a){1&a&&s!==(s=t[1].msg+"")&&O(n,s),1&a&&i!==(i=t[1].msg.toString().includes("[E]")?"text-red-500":"text-black")&&$(e,"class",i)},d(t){t&&f(e)}}}function qe(t){let e,n=t[0],i=[];for(let e=0;e{"coreMessages"in t&&n(0,i=t.coreMessages)},[i]}class Ge extends at{constructor(t){super(),st(this,t,Ve,Ue,a,{coreMessages:0})}}function Xe(t,e,n){const i=t.slice();return i[10]=e[n],i[12]=n,i}function Ke(t){let e,n,i,s,a,r,o,l,c,u,d,g,x,k,A,P,L,T,M,C,S,_,N=t[10].name+"",D=t[10].ip+"",E=t[10].id+"",z=t[10].status?"online":"offline";function j(){return t[5](t[12])}return{c(){e=m("tr"),n=m("td"),i=y(N),s=b(),a=m("td"),r=m("a"),o=y(D),c=b(),u=m("td"),d=y(E),g=b(),x=m("td"),k=y(z),P=b(),L=m("td"),T=v("svg"),M=v("line"),C=v("line"),$(n,"class","tbl-bdy tbl-ipt w-full"),$(r,"href",l="http://"+t[10].ip),$(a,"class","tbl-bdy tbl-ipt w-full"),$(u,"class","tbl-bdy tbl-ipt w-full"),$(x,"class",A="tbl-bdy tbl-ipt w-full "+(t[10].status?"bg-green-50":"bg-red-50")),$(M,"x1","18"),$(M,"y1","6"),$(M,"x2","6"),$(M,"y2","18"),$(C,"x1","6"),$(C,"y1","6"),$(C,"x2","18"),$(C,"y2","18"),$(T,"class","h-6 w-6 text-red-400 cursor-pointer"),$(T,"viewBox","0 0 24 24"),$(T,"fill","none"),$(T,"stroke","currentColor"),$(T,"stroke-width","2"),$(T,"stroke-linecap","round"),$(T,"stroke-linejoin","round"),$(L,"class","tbl-bdy"),$(e,"class","tbl-txt-sz tbl-txt-p")},m(t,l){p(t,e,l),h(e,n),h(n,i),h(e,s),h(e,a),h(a,r),h(r,o),h(e,c),h(e,u),h(u,d),h(e,g),h(e,x),h(x,k),h(e,P),h(e,L),h(L,T),h(T,M),h(T,C),S||(_=w(T,"click",j),S=!0)},p(e,n){t=e,4&n&&N!==(N=t[10].name+"")&&O(i,N),4&n&&D!==(D=t[10].ip+"")&&O(o,D),4&n&&l!==(l="http://"+t[10].ip)&&$(r,"href",l),4&n&&E!==(E=t[10].id+"")&&O(d,E),4&n&&z!==(z=t[10].status?"online":"offline")&&O(k,z),4&n&&A!==(A="tbl-bdy tbl-ipt w-full "+(t[10].status?"bg-green-50":"bg-red-50"))&&$(x,"class",A)},d(t){t&&f(e),S=!1,_()}}}function Ze(t){let e,n,s,a,r,o,l,c,u,d,g,v,y;return{c(){e=m("tr"),n=m("td"),s=m("input"),a=b(),r=m("td"),o=m("input"),l=b(),c=m("td"),u=m("input"),d=b(),g=m("td"),$(s,"class","tbl-ipt w-full"),$(s,"type","text"),$(n,"class","tbl-bdy"),$(o,"class","tbl-ipt w-full"),$(o,"type","text"),$(r,"class","tbl-bdy"),$(u,"class","tbl-ipt w-full"),$(u,"type","text"),$(c,"class","tbl-bdy"),$(g,"class","tbl-bdy"),$(e,"class","tbl-txt-sz tbl-txt-p")},m(i,f){p(i,e,f),h(e,n),h(n,s),A(s,t[1].name),h(e,a),h(e,r),h(r,o),A(o,t[1].ip),h(e,l),h(e,c),h(c,u),A(u,t[1].id),h(e,d),h(e,g),v||(y=[w(s,"input",t[6]),w(o,"input",t[7]),w(u,"input",t[8])],v=!0)},p(t,e){2&e&&s.value!==t[1].name&&A(s,t[1].name),2&e&&o.value!==t[1].ip&&A(o,t[1].ip),2&e&&u.value!==t[1].id&&A(u,t[1].id)},d(t){t&&f(e),v=!1,i(y)}}}function Qe(t){let e,n,i,s,a,r,o,l,c,u,d=t[0]?"Сохранить":"Добавить устройство",v=t[2],x=[];for(let e=0;eНазвание устройства \n IP адрес \n Идентификатор \n Состояние \n ',i=b(),s=m("tbody");for(let t=0;t{})}=e,{deleteLineFromDevlist:o=(t=>{})}=e;return t.$$set=t=>{"deviceList"in t&&n(2,i=t.deviceList),"showInput"in t&&n(0,s=t.showInput),"newDevice"in t&&n(1,a=t.newDevice),"devListSave"in t&&n(3,r=t.devListSave),"deleteLineFromDevlist"in t&&n(4,o=t.deleteLineFromDevlist)},[s,a,i,r,o,t=>o(t),function(){a.name=this.value,n(1,a)},function(){a.ip=this.value,n(1,a)},function(){a.id=this.value,n(1,a)},()=>(n(0,s=!s),r())]}class nn extends at{constructor(t){super(),st(this,t,en,tn,a,{deviceList:2,showInput:0,newDevice:1,devListSave:3,deleteLineFromDevlist:4})}}function sn(t){let e,n,i,a;return{c(){e=m("textarea"),$(e,"rows","10"),$(e,"class","jsn-ipt w-full"),$(e,"id","text1"),e.value=n=t[3](JSON.stringify(t[1]))},m(n,r){p(n,e,r),i||(a=w(e,"input",(function(){s(t[0])&&t[0].apply(this,arguments)})),i=!0)},p(i,s){t=i,10&s&&n!==(n=t[3](JSON.stringify(t[1])))&&(e.value=n)},d(t){t&&f(e),i=!1,a()}}}function an(t){let e,n,i,s,a,r;return i=new Ht({props:{title:"Редактор JSON",$$slots:{default:[sn]},$$scope:{ctx:t}}}),{c(){e=m("button"),e.textContent="Toggle modal",n=b(),et(i.$$.fragment),$(e,"type","button")},m(o,l){p(o,e,l),p(o,n,l),nt(i,o,l),s=!0,a||(r=w(e,"click",t[4]),a=!0)},p(t,[e]){const n={};43&e&&(n.$$scope={dirty:e,ctx:t}),i.$set(n)},i(t){s||(Z(i.$$.fragment,t),s=!0)},o(t){Q(i.$$.fragment,t),s=!1},d(t){t&&f(e),t&&f(n),it(i,t),a=!1,r()}}}function rn(t,e,n){let{wigetsUpdate:i}=e,{layoutJson:s}=e,{showModal:a=(()=>{})}=e,{syntaxHighlight:r=(t=>{})}=e;return t.$$set=t=>{"wigetsUpdate"in t&&n(0,i=t.wigetsUpdate),"layoutJson"in t&&n(1,s=t.layoutJson),"showModal"in t&&n(2,a=t.showModal),"syntaxHighlight"in t&&n(3,r=t.syntaxHighlight)},[i,s,a,r,()=>a()]}class on extends at{constructor(t){super(),st(this,t,rn,an,a,{wigetsUpdate:0,layoutJson:1,showModal:2,syntaxHighlight:3})}}function ln(t,e,n){const i=t.slice();return i[83]=e[n],i}function cn(t){let e,n,i,s,a=t[83].name+"";return{c(){e=m("option"),n=y(a),i=b(),e.__value=s=t[83],e.value=e.__value},m(t,s){p(t,e,s),h(e,n),h(e,i)},p(t,i){4096&i[0]&&a!==(a=t[83].name+"")&&O(n,a),4096&i[0]&&s!==(s=t[83])&&(e.__value=s,e.value=e.__value)},d(t){t&&f(e)}}}function un(t){let e,n,i,s,a,r,o,l,c,u,d,h;return e=new Pt({props:{path:"/",$$slots:{default:[hn]},$$scope:{ctx:t}}}),i=new Pt({props:{path:"/config",$$slots:{default:[pn]},$$scope:{ctx:t}}}),a=new Pt({props:{path:"/connection",$$slots:{default:[fn]},$$scope:{ctx:t}}}),o=new Pt({props:{path:"/utilities",$$slots:{default:[gn]},$$scope:{ctx:t}}}),c=new Pt({props:{path:"/log",$$slots:{default:[mn]},$$scope:{ctx:t}}}),d=new Pt({props:{path:"/about",$$slots:{default:[vn]},$$scope:{ctx:t}}}),{c(){et(e.$$.fragment),n=b(),et(i.$$.fragment),s=b(),et(a.$$.fragment),r=b(),et(o.$$.fragment),l=b(),et(c.$$.fragment),u=b(),et(d.$$.fragment)},m(t,f){nt(e,t,f),p(t,n,f),nt(i,t,f),p(t,s,f),nt(a,t,f),p(t,r,f),nt(o,t,f),p(t,l,f),nt(c,t,f),p(t,u,f),nt(d,t,f),h=!0},p(t,n){const s={};136&n[0]|16777216&n[2]&&(s.$$scope={dirty:n,ctx:t}),e.$set(s);const r={};112&n[0]|16777216&n[2]&&(r.$$scope={dirty:n,ctx:t}),i.$set(r);const l={};768&n[0]|16777216&n[2]&&(l.$$scope={dirty:n,ctx:t}),a.$set(l);const u={};16777216&n[2]&&(u.$$scope={dirty:n,ctx:t}),o.$set(u);const h={};16384&n[0]|16777216&n[2]&&(h.$$scope={dirty:n,ctx:t}),c.$set(h);const p={};128&n[0]|16777216&n[2]&&(p.$$scope={dirty:n,ctx:t}),d.$set(p)},i(t){h||(Z(e.$$.fragment,t),Z(i.$$.fragment,t),Z(a.$$.fragment,t),Z(o.$$.fragment,t),Z(c.$$.fragment,t),Z(d.$$.fragment,t),h=!0)},o(t){Q(e.$$.fragment,t),Q(i.$$.fragment,t),Q(a.$$.fragment,t),Q(o.$$.fragment,t),Q(c.$$.fragment,t),Q(d.$$.fragment,t),h=!1},d(t){it(e,t),t&&f(n),it(i,t),t&&f(s),it(a,t),t&&f(r),it(o,t),t&&f(l),it(c,t),t&&f(u),it(d,t)}}}function dn(e){let n,i;return n=new Ct({props:{title:"Нет соединения"}}),{c(){et(n.$$.fragment)},m(t,e){nt(n,t,e),i=!0},p:t,i(t){i||(Z(n.$$.fragment,t),i=!0)},o(t){Q(n.$$.fragment,t),i=!1},d(t){it(n,t)}}}function hn(t){let e,n;return e=new ue({props:{layoutJson:t[7],pages:t[3],wsPush:t[30]}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},p(t,n){const i={};128&n[0]&&(i.layoutJson=t[7]),8&n[0]&&(i.pages=t[3]),e.$set(i)},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function pn(t){let e,n;return e=new Pe({props:{configJson:t[4],widgetsJson:t[5],itemsJson:t[6],saveConfig:t[31],deleteLineFromConfig:t[32]}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},p(t,n){const i={};16&n[0]&&(i.configJson=t[4]),32&n[0]&&(i.widgetsJson=t[5]),64&n[0]&&(i.itemsJson=t[6]),e.$set(i)},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function fn(t){let e,n;return e=new De({props:{settingsJson:t[8],ssidJson:t[9],ssidDropdownClick:t[33],saveSettings:t[34]}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},p(t,n){const i={};256&n[0]&&(i.settingsJson=t[8]),512&n[0]&&(i.ssidJson=t[9]),e.$set(i)},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function gn(t){let e,n;return e=new Ie({}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function mn(t){let e,n;return e=new Ge({props:{coreMessages:t[14]}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},p(t,n){const i={};16384&n[0]&&(i.coreMessages=t[14]),e.$set(i)},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function vn(t){let e,n;return e=new on({props:{wigetsUpdate:t[18],layoutJson:t[7],showModal:t[35],syntaxHighlight:t[36]}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},p(t,n){const i={};128&n[0]&&(i.layoutJson=t[7]),e.$set(i)},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function yn(t){let e,n;return e=new nn({props:{deviceList:t[12],showInput:xn,deleteLineFromDevlist:t[37],devListSave:t[38],newDevice:t[13]}}),{c(){et(e.$$.fragment)},m(t,i){nt(e,t,i),n=!0},p(t,n){const i={};4096&n[0]&&(i.deviceList=t[12]),8192&n[0]&&(i.newDevice=t[13]),e.$set(i)},i(t){n||(Z(e.$$.fragment,t),n=!0)},o(t){Q(e.$$.fragment,t),n=!1},d(t){it(e,t)}}}function bn(t){let e,n,s,a,r,o,l,c,u,d,y,x,k,O,A,L,T,M,C,S,_,N,D,E,z,j,H,F,J,W,I,B,Y,q,U,V,G,tt,st,at,rt,ot,lt,ct,ut,dt,ht,pt,ft,gt,mt,vt,yt,bt;n=new Dt({props:{show:t[2]}});let xt=t[12],wt=[];for(let e=0;e",C=b(),S=m("ul"),_=m("li"),N=m("a"),N.textContent="Управление",D=b(),E=m("li"),z=m("a"),z.textContent="Конфигуратор",j=b(),H=m("li"),F=m("a"),F.textContent="Подключение",J=b(),W=m("li"),I=m("a"),I.textContent="Утилиты",B=b(),Y=m("li"),q=m("a"),q.textContent="Лог",U=b(),V=m("li"),G=m("a"),G.textContent="Устройства",tt=b(),st=m("li"),at=m("a"),at.textContent="О проекте",rt=b(),ot=m("main"),lt=m("ul"),ct=m("div"),dt.c(),ht=b(),et(pt.$$.fragment),gt=b(),mt=m("footer"),mt.innerHTML='
    Developed by Dmitry Borisenko
    ',$(l,"class","border-indigo-500"),void 0===t[11]&&R((()=>t[26].call(l))),$(o,"class","px-15 py-2 z-50"),$(y,"stroke","none"),$(y,"d","M0 0h24v24H0z"),$(x,"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"),$(d,"class",k="h-8 w-8 "+(!0===t[10]?"text-green-500":"text-red-500")),$(d,"width","24"),$(d,"height","24"),$(d,"viewBox","0 0 24 24"),$(d,"stroke-width","2"),$(d,"stroke","currentColor"),$(d,"fill","none"),$(d,"stroke-linecap","round"),$(d,"stroke-linejoin","round"),$(u,"class","pl-2 pr-4 py-1"),$(r,"class","flex justify-end content-center"),$(a,"class","h-10 w-full bg-gray-100 overflow-auto shadow-md"),$(L,"id","menu__toggle"),$(L,"type","checkbox"),$(M,"class","menu__btn"),$(M,"for","menu__toggle"),$(N,"class","menu__item"),$(N,"href","/"),$(z,"class","menu__item"),$(z,"href","/config"),$(F,"class","menu__item"),$(F,"href","/connection"),$(I,"class","menu__item"),$(I,"href","/utilities"),$(q,"class","menu__item"),$(q,"href","/log"),$(G,"class","menu__item"),$(G,"href","/list"),$(at,"class","menu__item"),$(at,"href","/about"),$(S,"class","menu__box"),$(A,"class","flex"),$(ct,"class","bg-cover pt-0 px-4"),$(lt,"class","menu__main"),$(ot,"class",ft="flex-1 overflow-y-auto p-0 "+(!0!==t[0]||t[1]?"ml-0":"ml-36")),$(mt,"class","h-4 bg-gray-100 border-gray-200 shadow-lg"),$(e,"class","flex flex-col h-screen bg-gray-50")},m(i,f){p(i,e,f),nt(n,e,null),h(e,s),h(e,a),h(a,r),h(r,o),h(o,l);for(let t=0;t{kt[s]=null})),K(),dt=kt[ut],dt?dt.p(t,e):(dt=kt[ut]=$t[ut](t),dt.c()),Z(dt,1),dt.m(ct,ht));const a={};12288&e[0]|16777216&e[2]&&(a.$$scope={dirty:e,ctx:t}),pt.$set(a),(!vt||3&e[0]&&ft!==(ft="flex-1 overflow-y-auto p-0 "+(!0!==t[0]||t[1]?"ml-0":"ml-36")))&&$(ot,"class",ft)},i(t){vt||(Z(n.$$.fragment,t),Z(dt),Z(pt.$$.fragment,t),vt=!0)},o(t){Q(n.$$.fragment,t),Q(dt),Q(pt.$$.fragment,t),vt=!1},d(t){t&&f(e),it(n),g(wt,t),kt[ut].d(),it(pt),yt=!1,i(bt)}}}let xn=!1;function wn(t,e,n){let i;r(t,bt,(t=>n(57,i=t))),bt.mode.hash();let s,a,o=!1,l=!1,c=document.location.hostname,u=!1,d=[],h=[],p=!1,f=[],g=!1,m=[],v=!1,y=[],b=!1,x={},w=!1,$={},k=[],O=!1,A=[],P=!0,T={};A=[{name:"Устройство 1",id:"123456789",ip:"192.168.88.235",status:!1},{name:"Устройство 2",id:"123456789",ip:"192.168.88.236",status:!1}];var M=function(){this.parts=[]};let C;M.prototype.append=function(t){this.parts.push(t),this.blob=void 0},M.prototype.getBlob=function(){return this.blob||(this.blob=new Blob(this.parts,{type:"binary"})),this.blob},M.prototype.clear=function(){this.parts=[]};var _=new M,N=new M,D=new M,E=new M,z=new M;function j(){void 0!==a&&V(a,C)}function H(){let t=0;A.forEach((e=>{e.ws=t,e.status||(J(t),R(t)),t++})),n(12,A),n(10,O=s.status)}function F(t,e){A.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(12,A),n(10,O=s.status)}function J(t){let e=W(t);"error"===e?console.log("[e]","device list wrong"):(k[t]=new WebSocket("ws://"+e+":81"),k.binaryType="blob",console.log("[i]",e,"started connecting..."))}function W(t){let e="error";return A.forEach((n=>{t===n.ws&&(e=n.ip)})),e}function R(t){if(k[t]){let e=W(t);console.log("[i]",e,"web socket events added"),k[t].addEventListener("open",(function(n){console.log("[i]",e,"completed connecting"),F(t,!0),j()})),k[t].addEventListener("message",(function(t){if("string"==typeof t.data){let i=t.data;if(i.includes("status")&&tt(i)){let t=JSON.parse(i);!function(t){for(let e=0;e{let e=t.result;tt(e)&&(n(4,h=JSON.parse(e)),n(4,h),console.log("[i]","configJson parced!"))}}if("/st/widgets.json"===i&&(g=!0),"/end/widgets.json"===i){g=!1;e=N.getBlob();let t=new FileReader;t.readAsText(e),t.onload=()=>{let e=t.result;tt(e)&&(n(5,f=JSON.parse(e)),n(5,f),console.log("[i]","widgetsJson parced!"))}}if("/st/items.json"===i&&(v=!0),"/end/items.json"===i){v=!1;e=D.getBlob();let t=new FileReader;t.readAsText(e),t.onload=()=>{let e=t.result;tt(e)&&(n(6,m=JSON.parse(e)),n(6,m),console.log("[i]","itemsJson parced!"))}}if("/st/layout.json"===i&&(b=!0),"/end/layout.json"===i){b=!1;e=E.getBlob();let t=new FileReader;t.readAsText(e),t.onload=()=>{let e=t.result;tt(e)&&(n(7,y=JSON.parse(e)),n(7,y),X(),console.log("[i]","layoutJson parced!"))}}if("/st/settings.json"===i&&(w=!0),"/end/settings.json"===i){w=!1;e=z.getBlob();let t=new FileReader;t.readAsText(e),t.onload=()=>{let e=t.result;tt(e)&&(n(8,x=JSON.parse(e)),n(8,x),X(),console.log("[i]","settingsJson parced!"))}}}t.data instanceof Blob&&(p&&_.append(t.data),g&&N.append(t.data),v&&D.append(t.data),b&&E.append(t.data),w&&z.append(t.data))})),k[t].addEventListener("close",(n=>{console.log("[e]",e,"connection closed"),F(t,!1)})),k[t].addEventListener("error",(function(n){console.log("[e]",e,"connection error"),F(t,!1)}))}else console.log("[e]","socket not exist")}function I(){V(a,"/tuoyal"+JSON.stringify(function(){let t=[];for(let e=0;e{!function(t){let e=!1;return A.forEach((n=>{t===n.ws&&(e=n.status)})),e}(t.ws)?(J(t.ws),R(t.ws)):V(t.ws,"tst")})),P=!1}function V(t,e){k[t]&&1===k[t].readyState?(k[t].send(e),console.log("[i]",W(t),"msg send success",e)):console.log("[e]",W(t),"msg not send",e)}function G(){n(3,d=[]);Array.from(new Set(Array.from(y,(({page:t})=>t)))).forEach((function(t,e,i){n(3,d=[...d,JSON.parse(JSON.stringify({page:t}))])})),d.sort((function(t,e){return t.pagee.page?1:0}))}function X(){G()}function K(){n(10,O=s.status),a=s.ws,Y(),j(),console.log("[i]","user selected device:",s.name),s.ip===c&&console.log("[i]","user selected original device",s.name)}function Z(){void 0!==T.name&&void 0!==T.ip&&void 0!==T.id?(n(13,T.status=!1,T),A.push(T),n(12,A),n(13,T={}),H(),console.log("[i]","selected device:",s)):console.log("[e]","wrong data")}bt.subscribe((function(){Y(),C=i.path.toString(),console.log("[i]","user on page:",C),j()}));const Q=t=>{try{t=JSON.stringify(JSON.parse(t),null,4)}catch(e){return t}return t=(t=t.replace(/&/g,"&").replace(//g,">")).replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,(function(t){return t}))};function tt(t){try{JSON.parse(t)}catch(t){return console.log("[e]","json error"),!1}return!0}function et(){n(2,u=!u)}function nt(){let t=screen.width;console.log("width",t),n(1,l=t<900)}function it(t){for(let e=0;e{console.log("[i]","mounted"),H(),U(),n(10,O=s.status),K(),G()}));return[o,l,u,d,h,f,m,y,x,$,O,s,A,T,[],I,B,q,X,K,Z,Q,et,nt,it,st,function(){s=L(this),n(11,s),n(12,A)},()=>K(),function(){o=this.checked,n(0,o)},()=>nt(),(t,e,n)=>q(t,e,n),()=>I(),t=>deleteLineFromConfig(t),()=>st(),()=>B(),()=>et(),t=>Q(t),t=>it(t),()=>Z()]}return new class extends at{constructor(t){super(),st(this,t,wn,bn,a,{},null,[-1,-1,-1])}}({target:document.body,props:{name:"world"}})}(); + +(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); +var app = (function () { + 'use strict'; + + function noop() { } + function assign(tar, src) { + // @ts-ignore + for (const k in src) + tar[k] = src[k]; + return tar; + } + function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; + } + function run(fn) { + return fn(); + } + function blank_object() { + return Object.create(null); + } + function run_all(fns) { + fns.forEach(run); + } + function is_function(thing) { + return typeof thing === 'function'; + } + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + function is_empty(obj) { + return Object.keys(obj).length === 0; + } + function validate_store(store, name) { + if (store != null && typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } + } + function subscribe(store, ...callbacks) { + if (store == null) { + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; + } + function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); + } + function create_slot(definition, ctx, $$scope, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); + return definition[0](slot_ctx); + } + } + function get_slot_context(definition, ctx, $$scope, fn) { + return definition[1] && fn + ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) + : $$scope.ctx; + } + function get_slot_changes(definition, $$scope, dirty, fn) { + if (definition[2] && fn) { + const lets = definition[2](fn(dirty)); + if ($$scope.dirty === undefined) { + return lets; + } + if (typeof lets === 'object') { + const merged = []; + const len = Math.max($$scope.dirty.length, lets.length); + for (let i = 0; i < len; i += 1) { + merged[i] = $$scope.dirty[i] | lets[i]; + } + return merged; + } + return $$scope.dirty | lets; + } + return $$scope.dirty; + } + function update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) { + if (slot_changes) { + const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); + slot.p(slot_context, slot_changes); + } + } + function get_all_dirty_from_scope($$scope) { + if ($$scope.ctx.length > 32) { + const dirty = []; + const length = $$scope.ctx.length / 32; + for (let i = 0; i < length; i++) { + dirty[i] = -1; + } + return dirty; + } + return -1; + } + function append(target, node) { + target.appendChild(node); + } + function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); + } + function detach(node) { + node.parentNode.removeChild(node); + } + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } + } + function element(name) { + return document.createElement(name); + } + function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + function text(data) { + return document.createTextNode(data); + } + function space() { + return text(' '); + } + function empty() { + return text(''); + } + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); + } + function to_number(value) { + return value === '' ? null : +value; + } + function children(element) { + return Array.from(element.childNodes); + } + function set_input_value(input, value) { + input.value = value == null ? '' : value; + } + function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + if (option.__value === value) { + option.selected = true; + return; + } + } + select.selectedIndex = -1; // no option should be selected + } + function select_value(select) { + const selected_option = select.querySelector(':checked') || select.options[0]; + return selected_option && selected_option.__value; + } + function custom_event(type, detail, bubbles = false) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, bubbles, false, detail); + return e; + } + + let current_component; + function set_current_component(component) { + current_component = component; + } + function get_current_component() { + if (!current_component) + throw new Error('Function called outside component initialization'); + return current_component; + } + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + function setContext(key, context) { + get_current_component().$$.context.set(key, context); + } + function getContext(key) { + return get_current_component().$$.context.get(key); + } + // TODO figure out if we still want to support + // shorthand events, or if we want to implement + // a real bubbling mechanism + function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + // @ts-ignore + callbacks.slice().forEach(fn => fn.call(this, event)); + } + } + + const dirty_components = []; + const binding_callbacks = []; + const render_callbacks = []; + const flush_callbacks = []; + const resolved_promise = Promise.resolve(); + let update_scheduled = false; + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + function tick() { + schedule_update(); + return resolved_promise; + } + function add_render_callback(fn) { + render_callbacks.push(fn); + } + function add_flush_callback(fn) { + flush_callbacks.push(fn); + } + // flush() calls callbacks in this order: + // 1. All beforeUpdate callbacks, in order: parents before children + // 2. All bind:this callbacks, in reverse order: children before parents. + // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT + // for afterUpdates called during the initial onMount, which are called in + // reverse order: children before parents. + // Since callbacks might update component values, which could trigger another + // call to flush(), the following steps guard against this: + // 1. During beforeUpdate, any updated components will be added to the + // dirty_components array and will cause a reentrant call to flush(). Because + // the flush index is kept outside the function, the reentrant call will pick + // up where the earlier call left off and go through all dirty components. The + // current_component value is saved and restored so that the reentrant call will + // not interfere with the "parent" flush() call. + // 2. bind:this callbacks cannot trigger new flush() calls. + // 3. During afterUpdate, any updated components will NOT have their afterUpdate + // callback called a second time; the seen_callbacks set, outside the flush() + // function, guarantees this behavior. + const seen_callbacks = new Set(); + let flushidx = 0; // Do *not* move this inside the flush() function + function flush() { + const saved_component = current_component; + do { + // first, call beforeUpdate functions + // and update components + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + // ...so guard against infinite loops + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); + } + function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } + } + const outroing = new Set(); + let outros; + function group_outros() { + outros = { + r: 0, + c: [], + p: outros // parent group + }; + } + function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; + } + function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } + } + function transition_out(block, local, detach, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach) + block.d(1); + callback(); + } + }); + block.o(local); + } + } + + const globals = (typeof window !== 'undefined' + ? window + : typeof globalThis !== 'undefined' + ? globalThis + : global); + + function bind(component, name, callback) { + const index = component.$$.props[name]; + if (index !== undefined) { + component.$$.bound[index] = callback; + callback(component.$$.ctx[index]); + } + } + function create_component(block) { + block && block.c(); + } + function mount_component(component, target, anchor, customElement) { + const { fragment, on_mount, on_destroy, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + // onMount happens before the initial afterUpdate + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } + else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); + } + function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } + } + function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); + } + function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: null, + // state + props, + update: noop, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles && append_styles($$.root); + let ready = false; + $$.ctx = instance + ? instance(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) + : []; + $$.update(); + ready = true; + run_all($$.before_update); + // `false` as a special case of no DOM component + $$.fragment = create_fragment ? create_fragment($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + const nodes = children(options.target); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } + else { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + flush(); + } + set_current_component(parent_component); + } + /** + * Base class for Svelte components. Used when dev=false. + */ + class SvelteComponent { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + } + + function dispatch_dev(type, detail) { + document.dispatchEvent(custom_event(type, Object.assign({ version: '3.46.4' }, detail), true)); + } + function append_dev(target, node) { + dispatch_dev('SvelteDOMInsert', { target, node }); + append(target, node); + } + function insert_dev(target, node, anchor) { + dispatch_dev('SvelteDOMInsert', { target, node, anchor }); + insert(target, node, anchor); + } + function detach_dev(node) { + dispatch_dev('SvelteDOMRemove', { node }); + detach(node); + } + function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) { + const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; + if (has_prevent_default) + modifiers.push('preventDefault'); + if (has_stop_propagation) + modifiers.push('stopPropagation'); + dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); + const dispose = listen(node, event, handler, options); + return () => { + dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); + dispose(); + }; + } + function attr_dev(node, attribute, value) { + attr(node, attribute, value); + if (value == null) + dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); + else + dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); + } + function prop_dev(node, property, value) { + node[property] = value; + dispatch_dev('SvelteDOMSetProperty', { node, property, value }); + } + function set_data_dev(text, data) { + data = '' + data; + if (text.wholeText === data) + return; + dispatch_dev('SvelteDOMSetData', { node: text, data }); + text.data = data; + } + function validate_each_argument(arg) { + if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { + let msg = '{#each} only iterates over array-like objects.'; + if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { + msg += ' You can use a spread to convert this iterable into an array.'; + } + throw new Error(msg); + } + } + function validate_slots(name, slot, keys) { + for (const slot_key of Object.keys(slot)) { + if (!~keys.indexOf(slot_key)) { + console.warn(`<${name}> received an unexpected slot "${slot_key}".`); + } + } + } + /** + * Base class for Svelte components with some minor dev-enhancements. Used when dev=true. + */ + class SvelteComponentDev extends SvelteComponent { + constructor(options) { + if (!options || (!options.target && !options.$$inline)) { + throw new Error("'target' is a required option"); + } + super(); + } + $destroy() { + super.$destroy(); + this.$destroy = () => { + console.warn('Component was already destroyed'); // eslint-disable-line no-console + }; + } + $capture_state() { } + $inject_state() { } + } + + const subscriber_queue = []; + /** + * Create a `Writable` store that allows both updating and reading by subscription. + * @param {*=}value initial value + * @param {StartStopNotifier=}start start and stop notifications for subscriptions + */ + function writable(value, start = noop) { + let stop; + const subscribers = new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { // store is ready + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set) || noop; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; + } + + function d(e,n=!1){return e=e.slice(e.startsWith("/#")?2:0,e.endsWith("/*")?-2:void 0),e.startsWith("/")||(e="/"+e),e==="/"&&(e=""),n&&!e.endsWith("/")&&(e+="/"),e}function b(e,n){e=d(e,!0),n=d(n,!0);let a=[],r={},t=!0,o=e.split("/").map(i=>i.startsWith(":")?(a.push(i.slice(1)),"([^\\/]+)"):i).join("\\/"),c=n.match(new RegExp(`^${o}$`));return c||(t=!1,c=n.match(new RegExp(`^${o}`))),c?(a.forEach((i,w)=>r[i]=c[w+1]),{exact:t,params:r,part:c[0].slice(0,-1)}):null}function x(e,n,a){if(a==="")return e;if(a[0]==="/")return a;let r=c=>c.split("/").filter(i=>i!==""),t=r(e),o=n?r(n):[];return "/"+o.map((c,i)=>t[i]).join("/")+"/"+a}function h(e,n,a,r){let t=[n,"data-"+n].reduce((o,c)=>{let i=e.getAttribute(c);return a&&e.removeAttribute(c),i===null?o:i},!1);return !r&&t===""?!0:t||r||!1}function v(e){let n=e.split("&").map(a=>a.split("=")).reduce((a,r)=>{let t=r[0];if(!t)return a;let o=r.length>1?r[r.length-1]:!0;return typeof o=="string"&&o.includes(",")&&(o=o.split(",")),a[t]===void 0?a[t]=[o]:a[t].push(o),a},{});return Object.entries(n).reduce((a,r)=>(a[r[0]]=r[1].length>1?r[1]:r[1][0],a),{})}function S(e){throw new Error("[Tinro] "+e)}var k=1,y=2,M=3,j=4;function C(e,n,a,r){return e===k?n&&n():e===y?a&&a():r&&r()}function W(){return !window||window.location.pathname==="srcdoc"?M:k}var s={HISTORY:k,HASH:y,MEMORY:M,OFF:j,run:C,getDeafault:W};var O,R,l=z();function z(){let e=s.getDeafault(),n,a=o=>window.onhashchange=window.onpopstate=R=null,r=o=>n&&n(_(e));function t(o){o&&(e=o),a(),e!==s.OFF&&s.run(e,c=>window.onpopstate=r,c=>window.onhashchange=r)&&r();}return {mode:o=>t(o),get:o=>_(e),go(o,c){D(e,o,c),r();},start(o){n=o,t();},stop(){n=null,t(s.OFF);}}}function D(e,n,a){let r=t=>history[a?"replaceState":"pushState"]({},"",t);s.run(e,t=>r(n),t=>r(`#${n}`),t=>R=n);}function _(e){let n=O,a=O=s.run(e,t=>window.location.pathname+window.location.search,t=>String(window.location.hash.slice(1)||"/"),t=>R||"/"),r=a.match(/^([^?#]+)(?:\?([^#]+))?(?:\#(.+))?$/);return {url:a,from:n,path:r[1]||"",query:v(r[2]||""),hash:r[3]||""}}function $(e){let n=getContext("tinro");n&&(n.exact||n.fallback)&&S(`${e.fallback?"":``} can't be inside ${n.fallback?"":` with exact path`}`);let a=e.fallback?"fallbacks":"childs",r=writable({}),t={router:{},exact:!1,pattern:null,meta:{},parent:n,fallback:e.fallback,redirect:!1,firstmatch:!1,breadcrumb:null,matched:!1,childs:new Set,activeChilds:new Set,fallbacks:new Set,update(o){t.exact=!o.path.endsWith("/*"),t.pattern=d(`${t.parent&&t.parent.pattern||""}${o.path}`),t.redirect=o.redirect,t.firstmatch=o.firstmatch,t.breadcrumb=o.breadcrumb,t.match();},register:()=>{if(!!t.parent)return t.parent[a].add(t),()=>{t.parent[a].delete(t),t.router.un&&t.router.un();}},show:()=>{e.onShow(),!t.fallback&&t.parent&&t.parent.activeChilds.add(t);},hide:()=>{e.onHide(),!t.fallback&&t.parent&&t.parent.activeChilds.delete(t);},match:async()=>{t.matched=!1;let{path:o,url:c,from:i,query:w}=t.router,u=b(t.pattern,o);if(!t.fallback&&u&&t.redirect&&(!t.exact||t.exact&&u.exact)){await tick();let m=x(o,t.parent&&t.parent.pattern,t.redirect);return f.goto(m,!0)}if(t.meta=u&&{from:i,url:c,query:w,match:u.part,pattern:t.pattern,breadcrumbs:t.parent&&t.parent.meta&&t.parent.meta.breadcrumbs.slice()||[],params:u.params,subscribe:r.subscribe},t.breadcrumb&&t.meta&&t.meta.breadcrumbs.push({name:t.breadcrumb,path:u.part}),r.set(t.meta),u&&!t.fallback&&(!t.exact||t.exact&&u.exact)&&(!t.parent||!t.parent.firstmatch||!t.parent.matched)?(e.onMeta(t.meta),t.parent&&(t.parent.matched=!0),t.show()):t.hide(),await tick(),u&&!t.fallback&&(t.childs.size>0&&t.activeChilds.size==0||t.childs.size==0&&t.fallbacks.size>0)){let m=t;for(;m.fallbacks.size==0;)if(m=m.parent,!m)return;m&&m.fallbacks.forEach(p=>{if(p.redirect){let H=x("/",p.parent&&p.parent.pattern,p.redirect);f.goto(H,!0);}else p.show();});}}};return setContext("tinro",t),onMount(()=>t.register()),t.router.un=f.subscribe(o=>{t.router.path=o.path,t.router.url=o.url,t.router.query=o.query,t.router.from=o.from,t.pattern!==null&&t.match();}),t}function g(){return getContext("tinro").meta}var f=K();function K(){let{subscribe:e}=writable(l.get(),n=>{l.start(n);let a=T(l.go);return ()=>{l.stop(),a();}});return {subscribe:e,goto:l.go,params:I,meta:g,useHashNavigation:n=>l.mode(n?s.HASH:s.HISTORY),mode:{hash:()=>l.mode(s.HASH),history:()=>l.mode(s.HISTORY),memory:()=>l.mode(s.MEMORY)}}}function A(e){let n=h(e,"href"),a=h(e,"exact",!0),r=h(e,"active-class",!0,"active");return {destroy:f.subscribe(t=>{let o=b(n,t.path);o&&(o.exact&&a||!a)?e.classList.add(r):e.classList.remove(r);})}}function T(e){let n=a=>{let r=a.target.closest("a[href]"),t=r&&h(r,"target",!1,"_self"),o=r&&h(r,"tinro-ignore"),c=a.ctrlKey||a.metaKey||a.altKey||a.shiftKey;if(t=="_self"&&!o&&!c&&r){let i=r.getAttribute("href").replace(/^\/#/,"");/^\/\/|^[a-zA-Z]+:/.test(i)||(a.preventDefault(),e(i.startsWith("/")?i:r.href.replace(window.location.origin,"")));}};return addEventListener("click",n),()=>removeEventListener("click",n)}function I(){return getContext("tinro").meta.params} + + /* node_modules\tinro\cmp\Route.svelte generated by Svelte v3.46.4 */ + + const get_default_slot_changes = dirty => ({ + params: dirty & /*params*/ 2, + meta: dirty & /*meta*/ 4 + }); + + const get_default_slot_context = ctx => ({ + params: /*params*/ ctx[1], + meta: /*meta*/ ctx[2] + }); + + // (32:0) {#if showContent} + function create_if_block$9(ctx) { + let current; + const default_slot_template = /*#slots*/ ctx[9].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[8], get_default_slot_context); + + const block = { + c: function create() { + if (default_slot) default_slot.c(); + }, + m: function mount(target, anchor) { + if (default_slot) { + default_slot.m(target, anchor); + } + + current = true; + }, + p: function update(ctx, dirty) { + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope, params, meta*/ 262)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[8], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[8]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[8], dirty, get_default_slot_changes), + get_default_slot_context + ); + } + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$9.name, + type: "if", + source: "(32:0) {#if showContent}", + ctx + }); + + return block; + } + + function create_fragment$i(ctx) { + let if_block_anchor; + let current; + let if_block = /*showContent*/ ctx[0] && create_if_block$9(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*showContent*/ ctx[0]) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*showContent*/ 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$9(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$i.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$i($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Route', slots, ['default']); + let { path = '/*' } = $$props; + let { fallback = false } = $$props; + let { redirect = false } = $$props; + let { firstmatch = false } = $$props; + let { breadcrumb = null } = $$props; + let showContent = false; + let params = {}; /* DEPRECATED */ + let meta = {}; + + const route = $({ + fallback, + onShow() { + $$invalidate(0, showContent = true); + }, + onHide() { + $$invalidate(0, showContent = false); + }, + onMeta(newmeta) { + $$invalidate(2, meta = newmeta); + $$invalidate(1, params = meta.params); /* DEPRECATED */ + } + }); + + const writable_props = ['path', 'fallback', 'redirect', 'firstmatch', 'breadcrumb']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('path' in $$props) $$invalidate(3, path = $$props.path); + if ('fallback' in $$props) $$invalidate(4, fallback = $$props.fallback); + if ('redirect' in $$props) $$invalidate(5, redirect = $$props.redirect); + if ('firstmatch' in $$props) $$invalidate(6, firstmatch = $$props.firstmatch); + if ('breadcrumb' in $$props) $$invalidate(7, breadcrumb = $$props.breadcrumb); + if ('$$scope' in $$props) $$invalidate(8, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ + createRouteObject: $, + path, + fallback, + redirect, + firstmatch, + breadcrumb, + showContent, + params, + meta, + route + }); + + $$self.$inject_state = $$props => { + if ('path' in $$props) $$invalidate(3, path = $$props.path); + if ('fallback' in $$props) $$invalidate(4, fallback = $$props.fallback); + if ('redirect' in $$props) $$invalidate(5, redirect = $$props.redirect); + if ('firstmatch' in $$props) $$invalidate(6, firstmatch = $$props.firstmatch); + if ('breadcrumb' in $$props) $$invalidate(7, breadcrumb = $$props.breadcrumb); + if ('showContent' in $$props) $$invalidate(0, showContent = $$props.showContent); + if ('params' in $$props) $$invalidate(1, params = $$props.params); + if ('meta' in $$props) $$invalidate(2, meta = $$props.meta); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*path, redirect, firstmatch, breadcrumb*/ 232) { + route.update({ path, redirect, firstmatch, breadcrumb }); + } + }; + + return [ + showContent, + params, + meta, + path, + fallback, + redirect, + firstmatch, + breadcrumb, + $$scope, + slots + ]; + } + + class Route extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$i, create_fragment$i, safe_not_equal, { + path: 3, + fallback: 4, + redirect: 5, + firstmatch: 6, + breadcrumb: 7 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Route", + options, + id: create_fragment$i.name + }); + } + + get path() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set path(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get fallback() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set fallback(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get redirect() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set redirect(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get firstmatch() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set firstmatch(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get breadcrumb() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set breadcrumb(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\components\Alarm.svelte generated by Svelte v3.46.4 */ + + const file$h = "src\\components\\Alarm.svelte"; + + // (6:2) {#if title} + function create_if_block$8(ctx) { + let h1; + let t; + + const block = { + c: function create() { + h1 = element("h1"); + t = text(/*title*/ ctx[0]); + attr_dev(h1, "class", "alm-hdr"); + add_location(h1, file$h, 6, 4, 82); + }, + m: function mount(target, anchor) { + insert_dev(target, h1, anchor); + append_dev(h1, t); + }, + p: function update(ctx, dirty) { + if (dirty & /*title*/ 1) set_data_dev(t, /*title*/ ctx[0]); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(h1); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$8.name, + type: "if", + source: "(6:2) {#if title}", + ctx + }); + + return block; + } + + function create_fragment$h(ctx) { + let div; + let t; + let current; + let if_block = /*title*/ ctx[0] && create_if_block$8(ctx); + const default_slot_template = /*#slots*/ ctx[2].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[1], null); + + const block = { + c: function create() { + div = element("div"); + if (if_block) if_block.c(); + t = space(); + if (default_slot) default_slot.c(); + attr_dev(div, "class", "alm"); + add_location(div, file$h, 4, 0, 44); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block) if_block.m(div, null); + append_dev(div, t); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*title*/ ctx[0]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$8(ctx); + if_block.c(); + if_block.m(div, t); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 2)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[1], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[1]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[1], dirty, null), + null + ); + } + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block) if_block.d(); + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$h.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$h($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Alarm', slots, ['default']); + let { title } = $$props; + const writable_props = ['title']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('title' in $$props) $$invalidate(0, title = $$props.title); + if ('$$scope' in $$props) $$invalidate(1, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ title }); + + $$self.$inject_state = $$props => { + if ('title' in $$props) $$invalidate(0, title = $$props.title); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [title, $$scope, slots]; + } + + class Alarm extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$h, create_fragment$h, safe_not_equal, { title: 0 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Alarm", + options, + id: create_fragment$h.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*title*/ ctx[0] === undefined && !('title' in props)) { + console.warn(" was created without expected prop 'title'"); + } + } + + get title() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set title(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\components\Modal.svelte generated by Svelte v3.46.4 */ + + const file$g = "src\\components\\Modal.svelte"; + + // (8:2) {#if show} + function create_if_block$7(ctx) { + let div8; + let div7; + let div0; + let t0; + let span; + let t2; + let div6; + let div4; + let div3; + let div2; + let h3; + let t3; + let t4; + let div1; + let p; + let t5; + let t6; + let div5; + let button0; + let t8; + let button1; + let mounted; + let dispose; + + const block = { + c: function create() { + div8 = element("div"); + div7 = element("div"); + div0 = element("div"); + t0 = space(); + span = element("span"); + span.textContent = "​"; + t2 = space(); + div6 = element("div"); + div4 = element("div"); + div3 = element("div"); + div2 = element("div"); + h3 = element("h3"); + t3 = text(/*header*/ ctx[1]); + t4 = space(); + div1 = element("div"); + p = element("p"); + t5 = text(/*text*/ ctx[2]); + t6 = space(); + div5 = element("div"); + button0 = element("button"); + button0.textContent = "Deactivate"; + t8 = space(); + button1 = element("button"); + button1.textContent = "Cancel"; + attr_dev(div0, "class", "fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"); + attr_dev(div0, "aria-hidden", "true"); + add_location(div0, file$g, 11, 8, 427); + attr_dev(span, "class", "hidden sm:inline-block sm:align-middle sm:h-screen"); + attr_dev(span, "aria-hidden", "true"); + add_location(span, file$g, 13, 8, 620); + attr_dev(h3, "class", "text-lg leading-6 font-medium text-gray-900"); + attr_dev(h3, "id", "modal-title"); + add_location(h3, file$g, 18, 16, 1101); + attr_dev(p, "class", "text-sm text-gray-500"); + add_location(p, file$g, 20, 18, 1243); + attr_dev(div1, "class", "mt-2"); + add_location(div1, file$g, 19, 16, 1205); + attr_dev(div2, "class", "mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left"); + add_location(div2, file$g, 17, 14, 1024); + attr_dev(div3, "class", "sm:flex sm:items-start"); + add_location(div3, file$g, 16, 12, 972); + attr_dev(div4, "class", "bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4"); + add_location(div4, file$g, 15, 10, 906); + attr_dev(button0, "type", "button"); + attr_dev(button0, "class", "w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm"); + add_location(button0, file$g, 26, 12, 1466); + attr_dev(button1, "type", "button"); + attr_dev(button1, "class", "mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"); + add_location(button1, file$g, 27, 12, 1783); + attr_dev(div5, "class", "bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse"); + add_location(div5, file$g, 25, 10, 1382); + attr_dev(div6, "class", "inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"); + add_location(div6, file$g, 14, 8, 728); + attr_dev(div7, "class", "flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"); + add_location(div7, file$g, 10, 6, 317); + attr_dev(div8, "class", "fixed z-10 inset-0 overflow-y-auto"); + attr_dev(div8, "aria-labelledby", "modal-title"); + attr_dev(div8, "role", "dialog"); + attr_dev(div8, "aria-modal", "true"); + add_location(div8, file$g, 9, 4, 199); + }, + m: function mount(target, anchor) { + insert_dev(target, div8, anchor); + append_dev(div8, div7); + append_dev(div7, div0); + append_dev(div7, t0); + append_dev(div7, span); + append_dev(div7, t2); + append_dev(div7, div6); + append_dev(div6, div4); + append_dev(div4, div3); + append_dev(div3, div2); + append_dev(div2, h3); + append_dev(h3, t3); + append_dev(div2, t4); + append_dev(div2, div1); + append_dev(div1, p); + append_dev(p, t5); + append_dev(div6, t6); + append_dev(div6, div5); + append_dev(div5, button0); + append_dev(div5, t8); + append_dev(div5, button1); + + if (!mounted) { + dispose = listen_dev(button1, "click", /*click_handler*/ ctx[3], false, false, false); + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*header*/ 2) set_data_dev(t3, /*header*/ ctx[1]); + if (dirty & /*text*/ 4) set_data_dev(t5, /*text*/ ctx[2]); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div8); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$7.name, + type: "if", + source: "(8:2) {#if show}", + ctx + }); + + return block; + } + + function create_fragment$g(ctx) { + let div; + let if_block = /*show*/ ctx[0] && create_if_block$7(ctx); + + const block = { + c: function create() { + div = element("div"); + if (if_block) if_block.c(); + attr_dev(div, "class", "modal"); + add_location(div, file$g, 6, 0, 105); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block) if_block.m(div, null); + }, + p: function update(ctx, [dirty]) { + if (/*show*/ ctx[0]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$7(ctx); + if_block.c(); + if_block.m(div, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block) if_block.d(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$g.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$g($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Modal', slots, []); + let { show } = $$props; + let { header = "header" } = $$props; + let { text = "text" } = $$props; + const writable_props = ['show', 'header', 'text']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + const click_handler = () => $$invalidate(0, show = false); + + $$self.$$set = $$props => { + if ('show' in $$props) $$invalidate(0, show = $$props.show); + if ('header' in $$props) $$invalidate(1, header = $$props.header); + if ('text' in $$props) $$invalidate(2, text = $$props.text); + }; + + $$self.$capture_state = () => ({ show, header, text }); + + $$self.$inject_state = $$props => { + if ('show' in $$props) $$invalidate(0, show = $$props.show); + if ('header' in $$props) $$invalidate(1, header = $$props.header); + if ('text' in $$props) $$invalidate(2, text = $$props.text); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [show, header, text, click_handler]; + } + + class Modal extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$g, create_fragment$g, safe_not_equal, { show: 0, header: 1, text: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Modal", + options, + id: create_fragment$g.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*show*/ ctx[0] === undefined && !('show' in props)) { + console.warn(" was created without expected prop 'show'"); + } + } + + get show() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set show(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get header() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set header(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get text() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set text(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\components\Card.svelte generated by Svelte v3.46.4 */ + + const file$f = "src\\components\\Card.svelte"; + + // (6:2) {#if title} + function create_if_block$6(ctx) { + let h1; + let t; + + const block = { + c: function create() { + h1 = element("h1"); + t = text(/*title*/ ctx[0]); + attr_dev(h1, "class", "crd-hdr"); + add_location(h1, file$f, 6, 4, 82); + }, + m: function mount(target, anchor) { + insert_dev(target, h1, anchor); + append_dev(h1, t); + }, + p: function update(ctx, dirty) { + if (dirty & /*title*/ 1) set_data_dev(t, /*title*/ ctx[0]); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(h1); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$6.name, + type: "if", + source: "(6:2) {#if title}", + ctx + }); + + return block; + } + + function create_fragment$f(ctx) { + let div; + let t; + let current; + let if_block = /*title*/ ctx[0] && create_if_block$6(ctx); + const default_slot_template = /*#slots*/ ctx[2].default; + const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[1], null); + + const block = { + c: function create() { + div = element("div"); + if (if_block) if_block.c(); + t = space(); + if (default_slot) default_slot.c(); + attr_dev(div, "class", "crd"); + add_location(div, file$f, 4, 0, 44); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block) if_block.m(div, null); + append_dev(div, t); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*title*/ ctx[0]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$6(ctx); + if_block.c(); + if_block.m(div, t); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + if (default_slot) { + if (default_slot.p && (!current || dirty & /*$$scope*/ 2)) { + update_slot_base( + default_slot, + default_slot_template, + ctx, + /*$$scope*/ ctx[1], + !current + ? get_all_dirty_from_scope(/*$$scope*/ ctx[1]) + : get_slot_changes(default_slot_template, /*$$scope*/ ctx[1], dirty, null), + null + ); + } + } + }, + i: function intro(local) { + if (current) return; + transition_in(default_slot, local); + current = true; + }, + o: function outro(local) { + transition_out(default_slot, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block) if_block.d(); + if (default_slot) default_slot.d(detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$f.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$f($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Card', slots, ['default']); + let { title } = $$props; + const writable_props = ['title']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('title' in $$props) $$invalidate(0, title = $$props.title); + if ('$$scope' in $$props) $$invalidate(1, $$scope = $$props.$$scope); + }; + + $$self.$capture_state = () => ({ title }); + + $$self.$inject_state = $$props => { + if ('title' in $$props) $$invalidate(0, title = $$props.title); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [title, $$scope, slots]; + } + + class Card extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$f, create_fragment$f, safe_not_equal, { title: 0 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Card", + options, + id: create_fragment$f.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*title*/ ctx[0] === undefined && !('title' in props)) { + console.warn(" was created without expected prop 'title'"); + } + } + + get title() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set title(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\widgets\Input.svelte generated by Svelte v3.46.4 */ + + const file$e = "src\\widgets\\Input.svelte"; + + // (14:4) {#if widget.type == "number"} + function create_if_block_3$2(ctx) { + let input; + let input_class_value; + let mounted; + let dispose; + + const block = { + c: function create() { + input = element("input"); + + attr_dev(input, "class", input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500"); + + attr_dev(input, "step", "0.1"); + attr_dev(input, "type", "number"); + add_location(input, file$e, 14, 6, 402); + }, + m: function mount(target, anchor) { + insert_dev(target, input, anchor); + set_input_value(input, /*widget*/ ctx[0].status); + + if (!mounted) { + dispose = [ + listen_dev(input, "change", /*change_handler*/ ctx[3], false, false, false), + listen_dev(input, "input", /*input_input_handler*/ ctx[4]) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*widget*/ 1 && input_class_value !== (input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500")) { + attr_dev(input, "class", input_class_value); + } + + if (dirty & /*widget*/ 1 && to_number(input.value) !== /*widget*/ ctx[0].status) { + set_input_value(input, /*widget*/ ctx[0].status); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(input); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_3$2.name, + type: "if", + source: "(14:4) {#if widget.type == \\\"number\\\"}", + ctx + }); + + return block; + } + + // (17:4) {#if widget.type == "text"} + function create_if_block_2$2(ctx) { + let input; + let input_class_value; + let mounted; + let dispose; + + const block = { + c: function create() { + input = element("input"); + + attr_dev(input, "class", input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500"); + + attr_dev(input, "type", "text"); + add_location(input, file$e, 17, 6, 723); + }, + m: function mount(target, anchor) { + insert_dev(target, input, anchor); + set_input_value(input, /*widget*/ ctx[0].status); + + if (!mounted) { + dispose = [ + listen_dev(input, "change", /*change_handler_1*/ ctx[5], false, false, false), + listen_dev(input, "input", /*input_input_handler_1*/ ctx[6]) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*widget*/ 1 && input_class_value !== (input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500")) { + attr_dev(input, "class", input_class_value); + } + + if (dirty & /*widget*/ 1 && input.value !== /*widget*/ ctx[0].status) { + set_input_value(input, /*widget*/ ctx[0].status); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(input); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_2$2.name, + type: "if", + source: "(17:4) {#if widget.type == \\\"text\\\"}", + ctx + }); + + return block; + } + + // (20:4) {#if widget.type == "date"} + function create_if_block_1$2(ctx) { + let input; + let input_class_value; + let mounted; + let dispose; + + const block = { + c: function create() { + input = element("input"); + + attr_dev(input, "class", input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500"); + + attr_dev(input, "type", "date"); + add_location(input, file$e, 20, 6, 1031); + }, + m: function mount(target, anchor) { + insert_dev(target, input, anchor); + set_input_value(input, /*widget*/ ctx[0].status); + + if (!mounted) { + dispose = [ + listen_dev(input, "change", /*change_handler_2*/ ctx[7], false, false, false), + listen_dev(input, "input", /*input_input_handler_2*/ ctx[8]) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*widget*/ 1 && input_class_value !== (input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500")) { + attr_dev(input, "class", input_class_value); + } + + if (dirty & /*widget*/ 1) { + set_input_value(input, /*widget*/ ctx[0].status); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(input); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1$2.name, + type: "if", + source: "(20:4) {#if widget.type == \\\"date\\\"}", + ctx + }); + + return block; + } + + // (23:4) {#if widget.type == "time"} + function create_if_block$5(ctx) { + let input; + let input_class_value; + let mounted; + let dispose; + + const block = { + c: function create() { + input = element("input"); + + attr_dev(input, "class", input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500"); + + attr_dev(input, "type", "time"); + add_location(input, file$e, 23, 6, 1339); + }, + m: function mount(target, anchor) { + insert_dev(target, input, anchor); + set_input_value(input, /*widget*/ ctx[0].status); + + if (!mounted) { + dispose = [ + listen_dev(input, "change", /*change_handler_3*/ ctx[9], false, false, false), + listen_dev(input, "input", /*input_input_handler_3*/ ctx[10]) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*widget*/ 1 && input_class_value !== (input_class_value = /*widget*/ ctx[0]["send"] == true + ? "ipt-rnd text-right border-red-500" + : "ipt-rnd text-right focus:border-indigo-500")) { + attr_dev(input, "class", input_class_value); + } + + if (dirty & /*widget*/ 1) { + set_input_value(input, /*widget*/ ctx[0].status); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(input); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$5.name, + type: "if", + source: "(23:4) {#if widget.type == \\\"time\\\"}", + ctx + }); + + return block; + } + + function create_fragment$e(ctx) { + let div2; + let div0; + let label; + let t0_value = (!/*widget*/ ctx[0].descr ? "" : /*widget*/ ctx[0].descr) + ""; + let t0; + let t1; + let div1; + let t2; + let t3; + let t4; + let if_block0 = /*widget*/ ctx[0].type == "number" && create_if_block_3$2(ctx); + let if_block1 = /*widget*/ ctx[0].type == "text" && create_if_block_2$2(ctx); + let if_block2 = /*widget*/ ctx[0].type == "date" && create_if_block_1$2(ctx); + let if_block3 = /*widget*/ ctx[0].type == "time" && create_if_block$5(ctx); + + const block = { + c: function create() { + div2 = element("div"); + div0 = element("div"); + label = element("label"); + t0 = text(t0_value); + t1 = space(); + div1 = element("div"); + if (if_block0) if_block0.c(); + t2 = space(); + if (if_block1) if_block1.c(); + t3 = space(); + if (if_block2) if_block2.c(); + t4 = space(); + if (if_block3) if_block3.c(); + attr_dev(label, "class", "wgt-dscr-stl"); + add_location(label, file$e, 10, 4, 255); + attr_dev(div0, "class", "wgt-dscr-w"); + add_location(div0, file$e, 8, 2, 163); + attr_dev(div1, "class", "wgt-w"); + add_location(div1, file$e, 12, 2, 340); + attr_dev(div2, "class", "crd-itm-psn"); + add_location(div2, file$e, 7, 0, 134); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div2, anchor); + append_dev(div2, div0); + append_dev(div0, label); + append_dev(label, t0); + append_dev(div2, t1); + append_dev(div2, div1); + if (if_block0) if_block0.m(div1, null); + append_dev(div1, t2); + if (if_block1) if_block1.m(div1, null); + append_dev(div1, t3); + if (if_block2) if_block2.m(div1, null); + append_dev(div1, t4); + if (if_block3) if_block3.m(div1, null); + }, + p: function update(ctx, [dirty]) { + if (dirty & /*widget*/ 1 && t0_value !== (t0_value = (!/*widget*/ ctx[0].descr ? "" : /*widget*/ ctx[0].descr) + "")) set_data_dev(t0, t0_value); + + if (/*widget*/ ctx[0].type == "number") { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_3$2(ctx); + if_block0.c(); + if_block0.m(div1, t2); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (/*widget*/ ctx[0].type == "text") { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block_2$2(ctx); + if_block1.c(); + if_block1.m(div1, t3); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + + if (/*widget*/ ctx[0].type == "date") { + if (if_block2) { + if_block2.p(ctx, dirty); + } else { + if_block2 = create_if_block_1$2(ctx); + if_block2.c(); + if_block2.m(div1, t4); + } + } else if (if_block2) { + if_block2.d(1); + if_block2 = null; + } + + if (/*widget*/ ctx[0].type == "time") { + if (if_block3) { + if_block3.p(ctx, dirty); + } else { + if_block3 = create_if_block$5(ctx); + if_block3.c(); + if_block3.m(div1, null); + } + } else if (if_block3) { + if_block3.d(1); + if_block3 = null; + } + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(div2); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + if (if_block2) if_block2.d(); + if (if_block3) if_block3.d(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$e.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$e($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Input', slots, []); + let { widget } = $$props; + + let { wsPush = (ws, topic, status) => { + + } } = $$props; + + let { value } = $$props; + value = value; + const writable_props = ['widget', 'wsPush', 'value']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + const change_handler = () => ($$invalidate(0, widget["send"] = true, widget), wsPush(widget.ws, widget.topic, widget.status)); + + function input_input_handler() { + widget.status = to_number(this.value); + $$invalidate(0, widget); + } + + const change_handler_1 = () => ($$invalidate(0, widget["send"] = true, widget), wsPush(widget.ws, widget.topic, widget.status)); + + function input_input_handler_1() { + widget.status = this.value; + $$invalidate(0, widget); + } + + const change_handler_2 = () => ($$invalidate(0, widget["send"] = true, widget), wsPush(widget.ws, widget.topic, widget.status)); + + function input_input_handler_2() { + widget.status = this.value; + $$invalidate(0, widget); + } + + const change_handler_3 = () => ($$invalidate(0, widget["send"] = true, widget), wsPush(widget.ws, widget.topic, widget.status)); + + function input_input_handler_3() { + widget.status = this.value; + $$invalidate(0, widget); + } + + $$self.$$set = $$props => { + if ('widget' in $$props) $$invalidate(0, widget = $$props.widget); + if ('wsPush' in $$props) $$invalidate(1, wsPush = $$props.wsPush); + if ('value' in $$props) $$invalidate(2, value = $$props.value); + }; + + $$self.$capture_state = () => ({ widget, wsPush, value }); + + $$self.$inject_state = $$props => { + if ('widget' in $$props) $$invalidate(0, widget = $$props.widget); + if ('wsPush' in $$props) $$invalidate(1, wsPush = $$props.wsPush); + if ('value' in $$props) $$invalidate(2, value = $$props.value); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + widget, + wsPush, + value, + change_handler, + input_input_handler, + change_handler_1, + input_input_handler_1, + change_handler_2, + input_input_handler_2, + change_handler_3, + input_input_handler_3 + ]; + } + + class Input extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$e, create_fragment$e, safe_not_equal, { widget: 0, wsPush: 1, value: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Input", + options, + id: create_fragment$e.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*widget*/ ctx[0] === undefined && !('widget' in props)) { + console.warn(" was created without expected prop 'widget'"); + } + + if (/*value*/ ctx[2] === undefined && !('value' in props)) { + console.warn(" was created without expected prop 'value'"); + } + } + + get widget() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set widget(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get wsPush() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set wsPush(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get value() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set value(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\widgets\Toggle.svelte generated by Svelte v3.46.4 */ + + const file$d = "src\\widgets\\Toggle.svelte"; + + function create_fragment$d(ctx) { + let div5; + let div0; + let label0; + let t0_value = (!/*widget*/ ctx[0].descr ? "" : /*widget*/ ctx[0].descr) + ""; + let t0; + let t1; + let div4; + let label1; + let div3; + let input; + let input_id_value; + let t2; + let div1; + let t3; + let div2; + let div2_class_value; + let label1_for_value; + let mounted; + let dispose; + + const block = { + c: function create() { + div5 = element("div"); + div0 = element("div"); + label0 = element("label"); + t0 = text(t0_value); + t1 = space(); + div4 = element("div"); + label1 = element("label"); + div3 = element("div"); + input = element("input"); + t2 = space(); + div1 = element("div"); + t3 = space(); + div2 = element("div"); + attr_dev(label0, "class", "wgt-dscr-stl"); + add_location(label0, file$d, 10, 4, 255); + attr_dev(div0, "class", "wgt-dscr-w"); + add_location(div0, file$d, 8, 2, 163); + attr_dev(input, "id", input_id_value = /*widget*/ ctx[0].topic); + attr_dev(input, "type", "checkbox"); + attr_dev(input, "class", "sr-only"); + add_location(input, file$d, 15, 8, 467); + attr_dev(div1, "class", "block bg-gray-600 w-10 h-6 rounded-full"); + add_location(div1, file$d, 16, 8, 655); + + attr_dev(div2, "class", div2_class_value = "dot " + (/*widget*/ ctx[0]['send'] == true + ? 'bg-red-400' + : 'bg-white') + " absolute left-1 top-1 w-4 h-4 rounded-full transition"); + + add_location(div2, file$d, 17, 8, 720); + attr_dev(div3, "class", "relative"); + add_location(div3, file$d, 14, 6, 435); + attr_dev(label1, "for", label1_for_value = /*widget*/ ctx[0].topic); + attr_dev(label1, "class", "items-center cursor-pointer"); + add_location(label1, file$d, 13, 4, 365); + attr_dev(div4, "class", "wgt-w"); + add_location(div4, file$d, 12, 2, 340); + attr_dev(div5, "class", "crd-itm-psn"); + add_location(div5, file$d, 7, 0, 134); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div5, anchor); + append_dev(div5, div0); + append_dev(div0, label0); + append_dev(label0, t0); + append_dev(div5, t1); + append_dev(div5, div4); + append_dev(div4, label1); + append_dev(label1, div3); + append_dev(div3, input); + set_input_value(input, /*widget*/ ctx[0].status); + append_dev(div3, t2); + append_dev(div3, div1); + append_dev(div3, t3); + append_dev(div3, div2); + + if (!mounted) { + dispose = [ + listen_dev(input, "change", /*change_handler*/ ctx[3], false, false, false), + listen_dev(input, "change", /*input_change_handler*/ ctx[4]) + ]; + + mounted = true; + } + }, + p: function update(ctx, [dirty]) { + if (dirty & /*widget*/ 1 && t0_value !== (t0_value = (!/*widget*/ ctx[0].descr ? "" : /*widget*/ ctx[0].descr) + "")) set_data_dev(t0, t0_value); + + if (dirty & /*widget*/ 1 && input_id_value !== (input_id_value = /*widget*/ ctx[0].topic)) { + attr_dev(input, "id", input_id_value); + } + + if (dirty & /*widget*/ 1) { + set_input_value(input, /*widget*/ ctx[0].status); + } + + if (dirty & /*widget*/ 1 && div2_class_value !== (div2_class_value = "dot " + (/*widget*/ ctx[0]['send'] == true + ? 'bg-red-400' + : 'bg-white') + " absolute left-1 top-1 w-4 h-4 rounded-full transition")) { + attr_dev(div2, "class", div2_class_value); + } + + if (dirty & /*widget*/ 1 && label1_for_value !== (label1_for_value = /*widget*/ ctx[0].topic)) { + attr_dev(label1, "for", label1_for_value); + } + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(div5); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$d.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$d($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Toggle', slots, []); + let { widget } = $$props; + let { value } = $$props; + value = value; + + let { wsPush = (ws, topic, status) => { + + } } = $$props; + + const writable_props = ['widget', 'value', 'wsPush']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + const change_handler = () => ($$invalidate(0, widget["send"] = true, widget), wsPush(widget.ws, widget.topic, widget.status)); + + function input_change_handler() { + widget.status = this.value; + $$invalidate(0, widget); + } + + $$self.$$set = $$props => { + if ('widget' in $$props) $$invalidate(0, widget = $$props.widget); + if ('value' in $$props) $$invalidate(2, value = $$props.value); + if ('wsPush' in $$props) $$invalidate(1, wsPush = $$props.wsPush); + }; + + $$self.$capture_state = () => ({ widget, value, wsPush }); + + $$self.$inject_state = $$props => { + if ('widget' in $$props) $$invalidate(0, widget = $$props.widget); + if ('value' in $$props) $$invalidate(2, value = $$props.value); + if ('wsPush' in $$props) $$invalidate(1, wsPush = $$props.wsPush); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [widget, wsPush, value, change_handler, input_change_handler]; + } + + class Toggle extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$d, create_fragment$d, safe_not_equal, { widget: 0, value: 2, wsPush: 1 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Toggle", + options, + id: create_fragment$d.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*widget*/ ctx[0] === undefined && !('widget' in props)) { + console.warn(" was created without expected prop 'widget'"); + } + + if (/*value*/ ctx[2] === undefined && !('value' in props)) { + console.warn(" was created without expected prop 'value'"); + } + } + + get widget() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set widget(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get value() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set value(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get wsPush() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set wsPush(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\widgets\Anydata.svelte generated by Svelte v3.46.4 */ + + const file$c = "src\\widgets\\Anydata.svelte"; + + function create_fragment$c(ctx) { + let div2; + let div0; + let label0; + let t0_value = (!/*widget*/ ctx[0].descr ? "" : /*widget*/ ctx[0].descr) + ""; + let t0; + let t1; + let div1; + let label1; + + let t2_value = (!/*widget*/ ctx[0].status + ? "" + : /*widget*/ ctx[0].status) + ""; + + let t2; + let t3; + let label2; + let t4; + let t5_value = (!/*widget*/ ctx[0].after ? "" : /*widget*/ ctx[0].after) + ""; + let t5; + + const block = { + c: function create() { + div2 = element("div"); + div0 = element("div"); + label0 = element("label"); + t0 = text(t0_value); + t1 = space(); + div1 = element("div"); + label1 = element("label"); + t2 = text(t2_value); + t3 = space(); + label2 = element("label"); + t4 = text(" "); + t5 = text(t5_value); + attr_dev(label0, "class", "wgt-dscr-stl"); + add_location(label0, file$c, 9, 4, 205); + attr_dev(div0, "class", "wgt-dscr-w"); + add_location(div0, file$c, 7, 2, 113); + attr_dev(label1, "class", "wgt-adt-stl"); + add_location(label1, file$c, 13, 4, 377); + attr_dev(label2, "class", "wgt-adt-stl"); + add_location(label2, file$c, 15, 4, 517); + attr_dev(div1, "class", "wgt-w"); + add_location(div1, file$c, 11, 2, 290); + attr_dev(div2, "class", "crd-itm-psn"); + add_location(div2, file$c, 6, 0, 84); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div2, anchor); + append_dev(div2, div0); + append_dev(div0, label0); + append_dev(label0, t0); + append_dev(div2, t1); + append_dev(div2, div1); + append_dev(div1, label1); + append_dev(label1, t2); + append_dev(div1, t3); + append_dev(div1, label2); + append_dev(label2, t4); + append_dev(label2, t5); + }, + p: function update(ctx, [dirty]) { + if (dirty & /*widget*/ 1 && t0_value !== (t0_value = (!/*widget*/ ctx[0].descr ? "" : /*widget*/ ctx[0].descr) + "")) set_data_dev(t0, t0_value); + + if (dirty & /*widget*/ 1 && t2_value !== (t2_value = (!/*widget*/ ctx[0].status + ? "" + : /*widget*/ ctx[0].status) + "")) set_data_dev(t2, t2_value); + + if (dirty & /*widget*/ 1 && t5_value !== (t5_value = (!/*widget*/ ctx[0].after ? "" : /*widget*/ ctx[0].after) + "")) set_data_dev(t5, t5_value); + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(div2); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$c.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$c($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Anydata', slots, []); + let { widget } = $$props; + let { value } = $$props; + value = value; + const writable_props = ['widget', 'value']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('widget' in $$props) $$invalidate(0, widget = $$props.widget); + if ('value' in $$props) $$invalidate(1, value = $$props.value); + }; + + $$self.$capture_state = () => ({ widget, value }); + + $$self.$inject_state = $$props => { + if ('widget' in $$props) $$invalidate(0, widget = $$props.widget); + if ('value' in $$props) $$invalidate(1, value = $$props.value); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [widget, value]; + } + + class Anydata extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$c, create_fragment$c, safe_not_equal, { widget: 0, value: 1 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Anydata", + options, + id: create_fragment$c.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*widget*/ ctx[0] === undefined && !('widget' in props)) { + console.warn(" was created without expected prop 'widget'"); + } + + if (/*value*/ ctx[1] === undefined && !('value' in props)) { + console.warn(" was created without expected prop 'value'"); + } + } + + get widget() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set widget(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get value() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set value(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\pages\Dashboard.svelte generated by Svelte v3.46.4 */ + const file$b = "src\\pages\\Dashboard.svelte"; + + function get_each_context$5(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[8] = list[i]; + child_ctx[10] = i; + return child_ctx; + } + + function get_each_context_1$1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[11] = list[i]; + child_ctx[12] = list; + child_ctx[10] = i; + return child_ctx; + } + + // (14:2) {#if layoutJson === []} + function create_if_block_4(ctx) { + let card; + let current; + + card = new Card({ + props: { + title: "Ваша панель управления пуста, вначале добавьте новые элементы в конфигураторе!" + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(card.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(card, target, anchor); + current = true; + }, + i: function intro(local) { + if (current) return; + transition_in(card.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(card.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(card, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_4.name, + type: "if", + source: "(14:2) {#if layoutJson === []}", + ctx + }); + + return block; + } + + // (20:8) {#if widget.page === pagesName.page} + function create_if_block$4(ctx) { + let t0; + let t1; + let if_block2_anchor; + let current; + let if_block0 = /*widget*/ ctx[11].widget === "input" && create_if_block_3$1(ctx); + let if_block1 = /*widget*/ ctx[11].widget === "toggle" && create_if_block_2$1(ctx); + let if_block2 = /*widget*/ ctx[11].widget === "anydata" && create_if_block_1$1(ctx); + + const block = { + c: function create() { + if (if_block0) if_block0.c(); + t0 = space(); + if (if_block1) if_block1.c(); + t1 = space(); + if (if_block2) if_block2.c(); + if_block2_anchor = empty(); + }, + m: function mount(target, anchor) { + if (if_block0) if_block0.m(target, anchor); + insert_dev(target, t0, anchor); + if (if_block1) if_block1.m(target, anchor); + insert_dev(target, t1, anchor); + if (if_block2) if_block2.m(target, anchor); + insert_dev(target, if_block2_anchor, anchor); + current = true; + }, + p: function update(ctx, dirty) { + if (/*widget*/ ctx[11].widget === "input") { + if (if_block0) { + if_block0.p(ctx, dirty); + + if (dirty & /*layoutJson*/ 1) { + transition_in(if_block0, 1); + } + } else { + if_block0 = create_if_block_3$1(ctx); + if_block0.c(); + transition_in(if_block0, 1); + if_block0.m(t0.parentNode, t0); + } + } else if (if_block0) { + group_outros(); + + transition_out(if_block0, 1, 1, () => { + if_block0 = null; + }); + + check_outros(); + } + + if (/*widget*/ ctx[11].widget === "toggle") { + if (if_block1) { + if_block1.p(ctx, dirty); + + if (dirty & /*layoutJson*/ 1) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_2$1(ctx); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(t1.parentNode, t1); + } + } else if (if_block1) { + group_outros(); + + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + + check_outros(); + } + + if (/*widget*/ ctx[11].widget === "anydata") { + if (if_block2) { + if_block2.p(ctx, dirty); + + if (dirty & /*layoutJson*/ 1) { + transition_in(if_block2, 1); + } + } else { + if_block2 = create_if_block_1$1(ctx); + if_block2.c(); + transition_in(if_block2, 1); + if_block2.m(if_block2_anchor.parentNode, if_block2_anchor); + } + } else if (if_block2) { + group_outros(); + + transition_out(if_block2, 1, 1, () => { + if_block2 = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block0); + transition_in(if_block1); + transition_in(if_block2); + current = true; + }, + o: function outro(local) { + transition_out(if_block0); + transition_out(if_block1); + transition_out(if_block2); + current = false; + }, + d: function destroy(detaching) { + if (if_block0) if_block0.d(detaching); + if (detaching) detach_dev(t0); + if (if_block1) if_block1.d(detaching); + if (detaching) detach_dev(t1); + if (if_block2) if_block2.d(detaching); + if (detaching) detach_dev(if_block2_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$4.name, + type: "if", + source: "(20:8) {#if widget.page === pagesName.page}", + ctx + }); + + return block; + } + + // (21:10) {#if widget.widget === "input"} + function create_if_block_3$1(ctx) { + let input; + let updating_value; + let current; + + function input_value_binding(value) { + /*input_value_binding*/ ctx[4](value, /*widget*/ ctx[11]); + } + + let input_props = { + widget: /*widget*/ ctx[11], + wsPush: /*func*/ ctx[3] + }; + + if (/*widget*/ ctx[11].status !== void 0) { + input_props.value = /*widget*/ ctx[11].status; + } + + input = new Input({ props: input_props, $$inline: true }); + binding_callbacks.push(() => bind(input, 'value', input_value_binding)); + + const block = { + c: function create() { + create_component(input.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(input, target, anchor); + current = true; + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + const input_changes = {}; + if (dirty & /*layoutJson*/ 1) input_changes.widget = /*widget*/ ctx[11]; + if (dirty & /*wsPush*/ 4) input_changes.wsPush = /*func*/ ctx[3]; + + if (!updating_value && dirty & /*layoutJson*/ 1) { + updating_value = true; + input_changes.value = /*widget*/ ctx[11].status; + add_flush_callback(() => updating_value = false); + } + + input.$set(input_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(input.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(input.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(input, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_3$1.name, + type: "if", + source: "(21:10) {#if widget.widget === \\\"input\\\"}", + ctx + }); + + return block; + } + + // (24:10) {#if widget.widget === "toggle"} + function create_if_block_2$1(ctx) { + let toggle; + let updating_value; + let current; + + function toggle_value_binding(value) { + /*toggle_value_binding*/ ctx[6](value, /*widget*/ ctx[11]); + } + + let toggle_props = { + widget: /*widget*/ ctx[11], + wsPush: /*func_1*/ ctx[5] + }; + + if (/*widget*/ ctx[11].status !== void 0) { + toggle_props.value = /*widget*/ ctx[11].status; + } + + toggle = new Toggle({ props: toggle_props, $$inline: true }); + binding_callbacks.push(() => bind(toggle, 'value', toggle_value_binding)); + + const block = { + c: function create() { + create_component(toggle.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(toggle, target, anchor); + current = true; + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + const toggle_changes = {}; + if (dirty & /*layoutJson*/ 1) toggle_changes.widget = /*widget*/ ctx[11]; + if (dirty & /*wsPush*/ 4) toggle_changes.wsPush = /*func_1*/ ctx[5]; + + if (!updating_value && dirty & /*layoutJson*/ 1) { + updating_value = true; + toggle_changes.value = /*widget*/ ctx[11].status; + add_flush_callback(() => updating_value = false); + } + + toggle.$set(toggle_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(toggle.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(toggle.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(toggle, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_2$1.name, + type: "if", + source: "(24:10) {#if widget.widget === \\\"toggle\\\"}", + ctx + }); + + return block; + } + + // (27:10) {#if widget.widget === "anydata"} + function create_if_block_1$1(ctx) { + let anydata; + let updating_value; + let current; + + function anydata_value_binding(value) { + /*anydata_value_binding*/ ctx[7](value, /*widget*/ ctx[11]); + } + + let anydata_props = { widget: /*widget*/ ctx[11] }; + + if (/*widget*/ ctx[11].status !== void 0) { + anydata_props.value = /*widget*/ ctx[11].status; + } + + anydata = new Anydata({ props: anydata_props, $$inline: true }); + binding_callbacks.push(() => bind(anydata, 'value', anydata_value_binding)); + + const block = { + c: function create() { + create_component(anydata.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(anydata, target, anchor); + current = true; + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + const anydata_changes = {}; + if (dirty & /*layoutJson*/ 1) anydata_changes.widget = /*widget*/ ctx[11]; + + if (!updating_value && dirty & /*layoutJson*/ 1) { + updating_value = true; + anydata_changes.value = /*widget*/ ctx[11].status; + add_flush_callback(() => updating_value = false); + } + + anydata.$set(anydata_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(anydata.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(anydata.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(anydata, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1$1.name, + type: "if", + source: "(27:10) {#if widget.widget === \\\"anydata\\\"}", + ctx + }); + + return block; + } + + // (19:6) {#each layoutJson as widget, i} + function create_each_block_1$1(ctx) { + let if_block_anchor; + let current; + let if_block = /*widget*/ ctx[11].page === /*pagesName*/ ctx[8].page && create_if_block$4(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + }, + p: function update(ctx, dirty) { + if (/*widget*/ ctx[11].page === /*pagesName*/ ctx[8].page) { + if (if_block) { + if_block.p(ctx, dirty); + + if (dirty & /*layoutJson, pages*/ 3) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$4(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block_1$1.name, + type: "each", + source: "(19:6) {#each layoutJson as widget, i}", + ctx + }); + + return block; + } + + // (18:4) + function create_default_slot$7(ctx) { + let t; + let current; + let each_value_1 = /*layoutJson*/ ctx[0]; + validate_each_argument(each_value_1); + let each_blocks = []; + + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1$1(get_each_context_1$1(ctx, each_value_1, i)); + } + + const out = i => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + + const block = { + c: function create() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t = space(); + }, + m: function mount(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + insert_dev(target, t, anchor); + current = true; + }, + p: function update(ctx, dirty) { + if (dirty & /*layoutJson, wsPush, pages*/ 7) { + each_value_1 = /*layoutJson*/ ctx[0]; + validate_each_argument(each_value_1); + let i; + + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1$1(ctx, each_value_1, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_1$1(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(t.parentNode, t); + } + } + + group_outros(); + + for (i = each_value_1.length; i < each_blocks.length; i += 1) { + out(i); + } + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + + for (let i = 0; i < each_value_1.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o: function outro(local) { + each_blocks = each_blocks.filter(Boolean); + + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + + current = false; + }, + d: function destroy(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$7.name, + type: "slot", + source: "(18:4) ", + ctx + }); + + return block; + } + + // (17:2) {#each pages as pagesName, i} + function create_each_block$5(ctx) { + let card; + let current; + + card = new Card({ + props: { + title: /*pagesName*/ ctx[8].page, + $$slots: { default: [create_default_slot$7] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(card.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(card, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const card_changes = {}; + if (dirty & /*pages*/ 2) card_changes.title = /*pagesName*/ ctx[8].page; + + if (dirty & /*$$scope, layoutJson, wsPush, pages*/ 8199) { + card_changes.$$scope = { dirty, ctx }; + } + + card.$set(card_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(card.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(card.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(card, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block$5.name, + type: "each", + source: "(17:2) {#each pages as pagesName, i}", + ctx + }); + + return block; + } + + function create_fragment$b(ctx) { + let div; + let t; + let current; + let if_block = /*layoutJson*/ ctx[0] === [] && create_if_block_4(ctx); + let each_value = /*pages*/ ctx[1]; + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$5(get_each_context$5(ctx, each_value, i)); + } + + const out = i => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + + const block = { + c: function create() { + div = element("div"); + if (if_block) if_block.c(); + t = space(); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + attr_dev(div, "class", "grd-3col1"); + add_location(div, file$b, 12, 0, 323); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + if (if_block) if_block.m(div, null); + append_dev(div, t); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(div, null); + } + + current = true; + }, + p: function update(ctx, [dirty]) { + if (/*layoutJson*/ ctx[0] === []) { + if (if_block) { + if (dirty & /*layoutJson*/ 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_4(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div, t); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + + if (dirty & /*pages, layoutJson, wsPush*/ 7) { + each_value = /*pages*/ ctx[1]; + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$5(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block$5(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(div, null); + } + } + + group_outros(); + + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o: function outro(local) { + transition_out(if_block); + each_blocks = each_blocks.filter(Boolean); + + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + if (if_block) if_block.d(); + destroy_each(each_blocks, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$b.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$b($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Dashboard', slots, []); + let { layoutJson } = $$props; + let { pages } = $$props; + + let { wsPush = (ws, topic, status) => { + + } } = $$props; + + const writable_props = ['layoutJson', 'pages', 'wsPush']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + const func = (ws, topic, status) => wsPush(ws, topic, status); + + function input_value_binding(value, widget) { + if ($$self.$$.not_equal(widget.status, value)) { + widget.status = value; + $$invalidate(0, layoutJson); + } + } + + const func_1 = (ws, topic, status) => wsPush(ws, topic, status); + + function toggle_value_binding(value, widget) { + if ($$self.$$.not_equal(widget.status, value)) { + widget.status = value; + $$invalidate(0, layoutJson); + } + } + + function anydata_value_binding(value, widget) { + if ($$self.$$.not_equal(widget.status, value)) { + widget.status = value; + $$invalidate(0, layoutJson); + } + } + + $$self.$$set = $$props => { + if ('layoutJson' in $$props) $$invalidate(0, layoutJson = $$props.layoutJson); + if ('pages' in $$props) $$invalidate(1, pages = $$props.pages); + if ('wsPush' in $$props) $$invalidate(2, wsPush = $$props.wsPush); + }; + + $$self.$capture_state = () => ({ + Card, + Input, + Toggle, + Anydata, + layoutJson, + pages, + wsPush + }); + + $$self.$inject_state = $$props => { + if ('layoutJson' in $$props) $$invalidate(0, layoutJson = $$props.layoutJson); + if ('pages' in $$props) $$invalidate(1, pages = $$props.pages); + if ('wsPush' in $$props) $$invalidate(2, wsPush = $$props.wsPush); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + layoutJson, + pages, + wsPush, + func, + input_value_binding, + func_1, + toggle_value_binding, + anydata_value_binding + ]; + } + + class Dashboard extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$b, create_fragment$b, safe_not_equal, { layoutJson: 0, pages: 1, wsPush: 2 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Dashboard", + options, + id: create_fragment$b.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*layoutJson*/ ctx[0] === undefined && !('layoutJson' in props)) { + console.warn(" was created without expected prop 'layoutJson'"); + } + + if (/*pages*/ ctx[1] === undefined && !('pages' in props)) { + console.warn(" was created without expected prop 'pages'"); + } + } + + get layoutJson() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set layoutJson(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get pages() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set pages(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get wsPush() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set wsPush(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\svg\Cross.svelte generated by Svelte v3.46.4 */ + + const file$a = "src\\svg\\Cross.svelte"; + + function create_fragment$a(ctx) { + let svg; + let line0; + let line1; + let mounted; + let dispose; + + const block = { + c: function create() { + svg = svg_element("svg"); + line0 = svg_element("line"); + line1 = svg_element("line"); + attr_dev(line0, "x1", "18"); + attr_dev(line0, "y1", "6"); + attr_dev(line0, "x2", "6"); + attr_dev(line0, "y2", "18"); + add_location(line0, file$a, 5, 188, 261); + attr_dev(line1, "x1", "6"); + attr_dev(line1, "y1", "6"); + attr_dev(line1, "x2", "18"); + attr_dev(line1, "y2", "18"); + add_location(line1, file$a, 5, 227, 300); + attr_dev(svg, "class", "h-6 w-6 text-red-400 cursor-pointer"); + attr_dev(svg, "viewBox", "0 0 24 24"); + attr_dev(svg, "fill", "none"); + attr_dev(svg, "stroke", "currentColor"); + attr_dev(svg, "stroke-width", "2"); + attr_dev(svg, "stroke-linecap", "round"); + attr_dev(svg, "stroke-linejoin", "round"); + add_location(svg, file$a, 5, 0, 73); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, svg, anchor); + append_dev(svg, line0); + append_dev(svg, line1); + + if (!mounted) { + dispose = listen_dev( + svg, + "click", + function () { + if (is_function(/*click*/ ctx[1](/*i*/ ctx[0]))) /*click*/ ctx[1](/*i*/ ctx[0]).apply(this, arguments); + }, + false, + false, + false + ); + + mounted = true; + } + }, + p: function update(new_ctx, [dirty]) { + ctx = new_ctx; + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(svg); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$a.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$a($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Cross', slots, []); + let { i } = $$props; + + let { click = i => { + + } } = $$props; + + const writable_props = ['i', 'click']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('i' in $$props) $$invalidate(0, i = $$props.i); + if ('click' in $$props) $$invalidate(1, click = $$props.click); + }; + + $$self.$capture_state = () => ({ i, click }); + + $$self.$inject_state = $$props => { + if ('i' in $$props) $$invalidate(0, i = $$props.i); + if ('click' in $$props) $$invalidate(1, click = $$props.click); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [i, click]; + } + + class Cross extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$a, create_fragment$a, safe_not_equal, { i: 0, click: 1 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Cross", + options, + id: create_fragment$a.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*i*/ ctx[0] === undefined && !('i' in props)) { + console.warn(" was created without expected prop 'i'"); + } + } + + get i() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set i(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get click() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set click(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\svg\Open.svelte generated by Svelte v3.46.4 */ + + const file$9 = "src\\svg\\Open.svelte"; + + function create_fragment$9(ctx) { + let svg; + let path; + let circle0; + let circle1; + let circle2; + let mounted; + let dispose; + + const block = { + c: function create() { + svg = svg_element("svg"); + path = svg_element("path"); + circle0 = svg_element("circle"); + circle1 = svg_element("circle"); + circle2 = svg_element("circle"); + attr_dev(path, "stroke", "none"); + attr_dev(path, "d", "M0 0h24v24H0z"); + add_location(path, file$9, 4, 212, 267); + attr_dev(circle0, "cx", "5"); + attr_dev(circle0, "cy", "12"); + attr_dev(circle0, "r", "1"); + add_location(circle0, file$9, 4, 253, 308); + attr_dev(circle1, "cx", "12"); + attr_dev(circle1, "cy", "12"); + attr_dev(circle1, "r", "1"); + add_location(circle1, file$9, 4, 285, 340); + attr_dev(circle2, "cx", "19"); + attr_dev(circle2, "cy", "12"); + attr_dev(circle2, "r", "1"); + add_location(circle2, file$9, 4, 318, 373); + attr_dev(svg, "class", "h-6 w-6 text-green-400 cursor-pointer"); + attr_dev(svg, "width", "24"); + attr_dev(svg, "height", "24"); + attr_dev(svg, "viewBox", "0 0 24 24"); + attr_dev(svg, "stroke-width", "2"); + attr_dev(svg, "stroke", "currentColor"); + attr_dev(svg, "fill", "none"); + attr_dev(svg, "stroke-linecap", "round"); + attr_dev(svg, "stroke-linejoin", "round"); + add_location(svg, file$9, 4, 0, 55); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, svg, anchor); + append_dev(svg, path); + append_dev(svg, circle0); + append_dev(svg, circle1); + append_dev(svg, circle2); + + if (!mounted) { + dispose = listen_dev( + svg, + "click", + function () { + if (is_function(/*click*/ ctx[0]())) /*click*/ ctx[0]().apply(this, arguments); + }, + false, + false, + false + ); + + mounted = true; + } + }, + p: function update(new_ctx, [dirty]) { + ctx = new_ctx; + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(svg); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$9.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$9($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Open', slots, []); + + let { click = () => { + + } } = $$props; + + const writable_props = ['click']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('click' in $$props) $$invalidate(0, click = $$props.click); + }; + + $$self.$capture_state = () => ({ click }); + + $$self.$inject_state = $$props => { + if ('click' in $$props) $$invalidate(0, click = $$props.click); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [click]; + } + + class Open extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$9, create_fragment$9, safe_not_equal, { click: 0 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Open", + options, + id: create_fragment$9.name + }); + } + + get click() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set click(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\pages\Config.svelte generated by Svelte v3.46.4 */ + + const { Object: Object_1$2, console: console_1$3 } = globals; + const file$8 = "src\\pages\\Config.svelte"; + + function get_each_context$4(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[19] = list[i]; + child_ctx[20] = list; + child_ctx[21] = i; + return child_ctx; + } + + function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[22] = list[i][0]; + child_ctx[23] = list[i][1]; + child_ctx[24] = list; + child_ctx[25] = i; + return child_ctx; + } + + function get_each_context_2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[26] = list[i]; + return child_ctx; + } + + function get_each_context_3(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[29] = list[i]; + return child_ctx; + } + + // (50:10) {#if item.header} + function create_if_block_3(ctx) { + let optgroup; + let optgroup_label_value; + + const block = { + c: function create() { + optgroup = element("optgroup"); + attr_dev(optgroup, "label", optgroup_label_value = /*item*/ ctx[29].header); + add_location(optgroup, file$8, 50, 12, 1426); + }, + m: function mount(target, anchor) { + insert_dev(target, optgroup, anchor); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*itemsJson*/ 4 && optgroup_label_value !== (optgroup_label_value = /*item*/ ctx[29].header)) { + attr_dev(optgroup, "label", optgroup_label_value); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(optgroup); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_3.name, + type: "if", + source: "(50:10) {#if item.header}", + ctx + }); + + return block; + } + + // (53:10) {#if !item.header} + function create_if_block_2(ctx) { + let option; + let t0_value = /*item*/ ctx[29].name + ""; + let t0; + let t1; + let option_value_value; + + const block = { + c: function create() { + option = element("option"); + t0 = text(t0_value); + t1 = space(); + option.__value = option_value_value = /*item*/ ctx[29].num; + option.value = option.__value; + add_location(option, file$8, 53, 12, 1519); + }, + m: function mount(target, anchor) { + insert_dev(target, option, anchor); + append_dev(option, t0); + append_dev(option, t1); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*itemsJson*/ 4 && t0_value !== (t0_value = /*item*/ ctx[29].name + "")) set_data_dev(t0, t0_value); + + if (dirty[0] & /*itemsJson*/ 4 && option_value_value !== (option_value_value = /*item*/ ctx[29].num)) { + prop_dev(option, "__value", option_value_value); + option.value = option.__value; + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(option); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_2.name, + type: "if", + source: "(53:10) {#if !item.header}", + ctx + }); + + return block; + } + + // (49:8) {#each itemsJson as item} + function create_each_block_3(ctx) { + let if_block0_anchor; + let if_block1_anchor; + let if_block0 = /*item*/ ctx[29].header && create_if_block_3(ctx); + let if_block1 = !/*item*/ ctx[29].header && create_if_block_2(ctx); + + const block = { + c: function create() { + if (if_block0) if_block0.c(); + if_block0_anchor = empty(); + if (if_block1) if_block1.c(); + if_block1_anchor = empty(); + }, + m: function mount(target, anchor) { + if (if_block0) if_block0.m(target, anchor); + insert_dev(target, if_block0_anchor, anchor); + if (if_block1) if_block1.m(target, anchor); + insert_dev(target, if_block1_anchor, anchor); + }, + p: function update(ctx, dirty) { + if (/*item*/ ctx[29].header) { + if (if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0 = create_if_block_3(ctx); + if_block0.c(); + if_block0.m(if_block0_anchor.parentNode, if_block0_anchor); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if (!/*item*/ ctx[29].header) { + if (if_block1) { + if_block1.p(ctx, dirty); + } else { + if_block1 = create_if_block_2(ctx); + if_block1.c(); + if_block1.m(if_block1_anchor.parentNode, if_block1_anchor); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + }, + d: function destroy(detaching) { + if (if_block0) if_block0.d(detaching); + if (detaching) detach_dev(if_block0_anchor); + if (if_block1) if_block1.d(detaching); + if (detaching) detach_dev(if_block1_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block_3.name, + type: "each", + source: "(49:8) {#each itemsJson as item}", + ctx + }); + + return block; + } + + // (81:16) {#each widgetsJson as select} + function create_each_block_2(ctx) { + let option; + let t0_value = /*select*/ ctx[26].label + ""; + let t0; + let t1; + let option_value_value; + + const block = { + c: function create() { + option = element("option"); + t0 = text(t0_value); + t1 = space(); + option.__value = option_value_value = /*select*/ ctx[26].name; + option.value = option.__value; + add_location(option, file$8, 81, 18, 2614); + }, + m: function mount(target, anchor) { + insert_dev(target, option, anchor); + append_dev(option, t0); + append_dev(option, t1); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*widgetsJson*/ 2 && t0_value !== (t0_value = /*select*/ ctx[26].label + "")) set_data_dev(t0, t0_value); + + if (dirty[0] & /*widgetsJson*/ 2 && option_value_value !== (option_value_value = /*select*/ ctx[26].name)) { + prop_dev(option, "__value", option_value_value); + option.value = option.__value; + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(option); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block_2.name, + type: "each", + source: "(81:16) {#each widgetsJson as select}", + ctx + }); + + return block; + } + + // (92:10) {#if !hideAllSubParams} + function create_if_block$3(ctx) { + let t; + let each_value_1 = Object.entries(/*element*/ ctx[19]); + validate_each_argument(each_value_1); + let each_blocks = []; + + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + + const block = { + c: function create() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t = space(); + }, + m: function mount(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + insert_dev(target, t, anchor); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*configJson*/ 1) { + each_value_1 = Object.entries(/*element*/ ctx[19]); + validate_each_argument(each_value_1); + let i; + + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx, each_value_1, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(t.parentNode, t); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value_1.length; + } + }, + d: function destroy(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) detach_dev(t); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$3.name, + type: "if", + source: "(92:10) {#if !hideAllSubParams}", + ctx + }); + + return block; + } + + // (94:14) {#if key != "type" && key != "subtype" && key != "id" && key != "widget" && key != "page" && key != "descr"} + function create_if_block_1(ctx) { + let tr; + let td0; + let t0; + let td1; + let t1; + let td2; + let t2; + let td3; + let p; + let t3_value = /*key*/ ctx[22] + ""; + let t3; + let t4; + let td4; + let input; + let mounted; + let dispose; + + function input_input_handler() { + /*input_input_handler*/ ctx[16].call(input, /*key*/ ctx[22], /*each_value*/ ctx[20], /*i*/ ctx[21]); + } + + const block = { + c: function create() { + tr = element("tr"); + td0 = element("td"); + t0 = space(); + td1 = element("td"); + t1 = space(); + td2 = element("td"); + t2 = space(); + td3 = element("td"); + p = element("p"); + t3 = text(t3_value); + t4 = space(); + td4 = element("td"); + input = element("input"); + add_location(td0, file$8, 95, 18, 3494); + add_location(td1, file$8, 96, 18, 3520); + add_location(td2, file$8, 97, 18, 3546); + attr_dev(p, "class", "txt-ita"); + add_location(p, file$8, 99, 20, 3628); + attr_dev(td3, "class", "tbl-bdy-sm text-right"); + add_location(td3, file$8, 98, 18, 3572); + attr_dev(input, "class", "ipt-sm w-full"); + attr_dev(input, "type", "text"); + add_location(input, file$8, 102, 20, 3758); + attr_dev(td4, "class", "tbl-bdy-sm text-center"); + add_location(td4, file$8, 101, 18, 3701); + attr_dev(tr, "class", "txt-sz txt-pad"); + add_location(tr, file$8, 94, 16, 3447); + }, + m: function mount(target, anchor) { + insert_dev(target, tr, anchor); + append_dev(tr, td0); + append_dev(tr, t0); + append_dev(tr, td1); + append_dev(tr, t1); + append_dev(tr, td2); + append_dev(tr, t2); + append_dev(tr, td3); + append_dev(td3, p); + append_dev(p, t3); + append_dev(tr, t4); + append_dev(tr, td4); + append_dev(td4, input); + set_input_value(input, /*element*/ ctx[19][/*key*/ ctx[22]]); + + if (!mounted) { + dispose = listen_dev(input, "input", input_input_handler); + mounted = true; + } + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + if (dirty[0] & /*configJson*/ 1 && t3_value !== (t3_value = /*key*/ ctx[22] + "")) set_data_dev(t3, t3_value); + + if (dirty[0] & /*configJson, widgetsJson*/ 3 && input.value !== /*element*/ ctx[19][/*key*/ ctx[22]]) { + set_input_value(input, /*element*/ ctx[19][/*key*/ ctx[22]]); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(tr); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block_1.name, + type: "if", + source: "(94:14) {#if key != \\\"type\\\" && key != \\\"subtype\\\" && key != \\\"id\\\" && key != \\\"widget\\\" && key != \\\"page\\\" && key != \\\"descr\\\"}", + ctx + }); + + return block; + } + + // (93:12) {#each Object.entries(element) as [key, param]} + function create_each_block_1(ctx) { + let if_block_anchor; + let if_block = /*key*/ ctx[22] != "type" && /*key*/ ctx[22] != "subtype" && /*key*/ ctx[22] != "id" && /*key*/ ctx[22] != "widget" && /*key*/ ctx[22] != "page" && /*key*/ ctx[22] != "descr" && create_if_block_1(ctx); + + const block = { + c: function create() { + if (if_block) if_block.c(); + if_block_anchor = empty(); + }, + m: function mount(target, anchor) { + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + }, + p: function update(ctx, dirty) { + if (/*key*/ ctx[22] != "type" && /*key*/ ctx[22] != "subtype" && /*key*/ ctx[22] != "id" && /*key*/ ctx[22] != "widget" && /*key*/ ctx[22] != "page" && /*key*/ ctx[22] != "descr") { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block_1(ctx); + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + d: function destroy(detaching) { + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block_1.name, + type: "each", + source: "(93:12) {#each Object.entries(element) as [key, param]}", + ctx + }); + + return block; + } + + // (75:8) {#each configJson as element, i} + function create_each_block$4(ctx) { + let tr; + let td0; + let t0_value = /*element*/ ctx[19].subtype + ""; + let t0; + let t1; + let td1; + let input0; + let t2; + let td2; + let select; + let t3; + let td3; + let input1; + let t4; + let td4; + let input2; + let t5; + let td5; + let openicon; + let t6; + let td6; + let crossicon; + let t7; + let if_block_anchor; + let current; + let mounted; + let dispose; + + function input0_input_handler() { + /*input0_input_handler*/ ctx[10].call(input0, /*each_value*/ ctx[20], /*i*/ ctx[21]); + } + + let each_value_2 = /*widgetsJson*/ ctx[1]; + validate_each_argument(each_value_2); + let each_blocks = []; + + for (let i = 0; i < each_value_2.length; i += 1) { + each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); + } + + function select_change_handler() { + /*select_change_handler*/ ctx[11].call(select, /*each_value*/ ctx[20], /*i*/ ctx[21]); + } + + function input1_input_handler() { + /*input1_input_handler*/ ctx[12].call(input1, /*each_value*/ ctx[20], /*i*/ ctx[21]); + } + + function input2_input_handler() { + /*input2_input_handler*/ ctx[13].call(input2, /*each_value*/ ctx[20], /*i*/ ctx[21]); + } + + openicon = new Open({ + props: { click: /*func*/ ctx[14] }, + $$inline: true + }); + + crossicon = new Cross({ + props: { + i: /*i*/ ctx[21], + click: /*func_1*/ ctx[15] + }, + $$inline: true + }); + + let if_block = !/*hideAllSubParams*/ ctx[5] && create_if_block$3(ctx); + + const block = { + c: function create() { + tr = element("tr"); + td0 = element("td"); + t0 = text(t0_value); + t1 = space(); + td1 = element("td"); + input0 = element("input"); + t2 = space(); + td2 = element("td"); + select = element("select"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t3 = space(); + td3 = element("td"); + input1 = element("input"); + t4 = space(); + td4 = element("td"); + input2 = element("input"); + t5 = space(); + td5 = element("td"); + create_component(openicon.$$.fragment); + t6 = space(); + td6 = element("td"); + create_component(crossicon.$$.fragment); + t7 = space(); + if (if_block) if_block.c(); + if_block_anchor = empty(); + attr_dev(td0, "class", "tbl-bdy-lg"); + add_location(td0, file$8, 76, 12, 2282); + attr_dev(input0, "class", "ipt-lg w-full"); + attr_dev(input0, "type", "text"); + add_location(input0, file$8, 77, 35, 2364); + attr_dev(td1, "class", "tbl-bdy-lg"); + add_location(td1, file$8, 77, 12, 2341); + attr_dev(select, "class", "ipt-lg w-full"); + if (/*element*/ ctx[19].widget === void 0) add_render_callback(select_change_handler); + add_location(select, file$8, 79, 15, 2489); + attr_dev(td2, "class", "tbl-bdy-lg"); + add_location(td2, file$8, 78, 12, 2450); + attr_dev(input1, "class", "ipt-lg w-full"); + attr_dev(input1, "type", "text"); + add_location(input1, file$8, 86, 35, 2799); + attr_dev(td3, "class", "tbl-bdy-lg"); + add_location(td3, file$8, 86, 12, 2776); + attr_dev(input2, "class", "ipt-lg w-full"); + attr_dev(input2, "type", "text"); + add_location(input2, file$8, 87, 35, 2910); + attr_dev(td4, "class", "tbl-bdy-lg"); + add_location(td4, file$8, 87, 12, 2887); + attr_dev(td5, "class", "tbl-bdy-lg"); + add_location(td5, file$8, 88, 12, 2999); + attr_dev(td6, "class", "tbl-bdy-lg"); + add_location(td6, file$8, 89, 12, 3106); + attr_dev(tr, "class", "txt-sz txt-pad align-middle"); + add_location(tr, file$8, 75, 10, 2228); + }, + m: function mount(target, anchor) { + insert_dev(target, tr, anchor); + append_dev(tr, td0); + append_dev(td0, t0); + append_dev(tr, t1); + append_dev(tr, td1); + append_dev(td1, input0); + set_input_value(input0, /*element*/ ctx[19].id); + append_dev(tr, t2); + append_dev(tr, td2); + append_dev(td2, select); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(select, null); + } + + select_option(select, /*element*/ ctx[19].widget); + append_dev(tr, t3); + append_dev(tr, td3); + append_dev(td3, input1); + set_input_value(input1, /*element*/ ctx[19].page); + append_dev(tr, t4); + append_dev(tr, td4); + append_dev(td4, input2); + set_input_value(input2, /*element*/ ctx[19].descr); + append_dev(tr, t5); + append_dev(tr, td5); + mount_component(openicon, td5, null); + append_dev(tr, t6); + append_dev(tr, td6); + mount_component(crossicon, td6, null); + insert_dev(target, t7, anchor); + if (if_block) if_block.m(target, anchor); + insert_dev(target, if_block_anchor, anchor); + current = true; + + if (!mounted) { + dispose = [ + listen_dev(input0, "input", input0_input_handler), + listen_dev(select, "change", select_change_handler), + listen_dev(input1, "input", input1_input_handler), + listen_dev(input2, "input", input2_input_handler) + ]; + + mounted = true; + } + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + if ((!current || dirty[0] & /*configJson*/ 1) && t0_value !== (t0_value = /*element*/ ctx[19].subtype + "")) set_data_dev(t0, t0_value); + + if (dirty[0] & /*configJson, widgetsJson*/ 3 && input0.value !== /*element*/ ctx[19].id) { + set_input_value(input0, /*element*/ ctx[19].id); + } + + if (dirty[0] & /*widgetsJson*/ 2) { + each_value_2 = /*widgetsJson*/ ctx[1]; + validate_each_argument(each_value_2); + let i; + + for (i = 0; i < each_value_2.length; i += 1) { + const child_ctx = get_each_context_2(ctx, each_value_2, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block_2(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(select, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value_2.length; + } + + if (dirty[0] & /*configJson, widgetsJson*/ 3) { + select_option(select, /*element*/ ctx[19].widget); + } + + if (dirty[0] & /*configJson, widgetsJson*/ 3 && input1.value !== /*element*/ ctx[19].page) { + set_input_value(input1, /*element*/ ctx[19].page); + } + + if (dirty[0] & /*configJson, widgetsJson*/ 3 && input2.value !== /*element*/ ctx[19].descr) { + set_input_value(input2, /*element*/ ctx[19].descr); + } + + const openicon_changes = {}; + if (dirty[0] & /*hideAllSubParams*/ 32) openicon_changes.click = /*func*/ ctx[14]; + openicon.$set(openicon_changes); + + if (!/*hideAllSubParams*/ ctx[5]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$3(ctx); + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + i: function intro(local) { + if (current) return; + transition_in(openicon.$$.fragment, local); + transition_in(crossicon.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(openicon.$$.fragment, local); + transition_out(crossicon.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(tr); + destroy_each(each_blocks, detaching); + destroy_component(openicon); + destroy_component(crossicon); + if (detaching) detach_dev(t7); + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(if_block_anchor); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block$4.name, + type: "each", + source: "(75:8) {#each configJson as element, i}", + ctx + }); + + return block; + } + + // (46:2) + function create_default_slot$6(ctx) { + let div; + let select0; + let t0; + let select1; + let option; + let t2; + let table; + let thead; + let tr; + let th0; + let t4; + let th1; + let t6; + let th2; + let t8; + let th3; + let t10; + let th4; + let t12; + let th5; + let t13; + let th6; + let t14; + let tbody; + let t15; + let button; + let current; + let mounted; + let dispose; + let each_value_3 = /*itemsJson*/ ctx[2]; + validate_each_argument(each_value_3); + let each_blocks_1 = []; + + for (let i = 0; i < each_value_3.length; i += 1) { + each_blocks_1[i] = create_each_block_3(get_each_context_3(ctx, each_value_3, i)); + } + + let each_value = /*configJson*/ ctx[0]; + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$4(get_each_context$4(ctx, each_value, i)); + } + + const out = i => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + + const block = { + c: function create() { + div = element("div"); + select0 = element("select"); + + for (let i = 0; i < each_blocks_1.length; i += 1) { + each_blocks_1[i].c(); + } + + t0 = space(); + select1 = element("select"); + option = element("option"); + option.textContent = `${"Выберите пресет"}`; + t2 = space(); + table = element("table"); + thead = element("thead"); + tr = element("tr"); + th0 = element("th"); + th0.textContent = "Тип"; + t4 = space(); + th1 = element("th"); + th1.textContent = "Id"; + t6 = space(); + th2 = element("th"); + th2.textContent = "Виджет"; + t8 = space(); + th3 = element("th"); + th3.textContent = "Вкладка"; + t10 = space(); + th4 = element("th"); + th4.textContent = "Название"; + t12 = space(); + th5 = element("th"); + t13 = space(); + th6 = element("th"); + t14 = space(); + tbody = element("tbody"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t15 = space(); + button = element("button"); + button.textContent = `${"Сохранить"}`; + attr_dev(select0, "class", "slct-lg"); + if (/*itemsJsonBind*/ ctx[4] === void 0) add_render_callback(() => /*select0_change_handler*/ ctx[8].call(select0)); + add_location(select0, file$8, 47, 6, 1254); + option.__value = "Выберите пресет"; + option.value = option.__value; + add_location(option, file$8, 59, 30, 1677); + attr_dev(select1, "class", "slct-lg"); + add_location(select1, file$8, 59, 6, 1653); + attr_dev(div, "class", "grd-2col2"); + add_location(div, file$8, 46, 4, 1223); + attr_dev(th0, "class", "tbl-hd"); + add_location(th0, file$8, 64, 10, 1843); + attr_dev(th1, "class", "tbl-hd"); + add_location(th1, file$8, 65, 10, 1882); + attr_dev(th2, "class", "tbl-hd"); + add_location(th2, file$8, 66, 10, 1920); + attr_dev(th3, "class", "tbl-hd"); + add_location(th3, file$8, 67, 10, 1962); + attr_dev(th4, "class", "tbl-hd"); + add_location(th4, file$8, 68, 10, 2005); + attr_dev(th5, "class", "tbl-hd w-7"); + add_location(th5, file$8, 69, 10, 2049); + attr_dev(th6, "class", "tbl-hd w-7"); + add_location(th6, file$8, 70, 10, 2086); + attr_dev(tr, "class", "txt-sz txt-pad"); + add_location(tr, file$8, 63, 8, 1804); + attr_dev(thead, "class", "bg-gray-100"); + add_location(thead, file$8, 62, 6, 1767); + attr_dev(tbody, "class", "bg-white"); + add_location(tbody, file$8, 73, 6, 2150); + attr_dev(table, "class", "tbl"); + add_location(table, file$8, 61, 4, 1740); + attr_dev(button, "class", "btn-lg"); + add_location(button, file$8, 112, 4, 4014); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + append_dev(div, select0); + + for (let i = 0; i < each_blocks_1.length; i += 1) { + each_blocks_1[i].m(select0, null); + } + + select_option(select0, /*itemsJsonBind*/ ctx[4]); + append_dev(div, t0); + append_dev(div, select1); + append_dev(select1, option); + insert_dev(target, t2, anchor); + insert_dev(target, table, anchor); + append_dev(table, thead); + append_dev(thead, tr); + append_dev(tr, th0); + append_dev(tr, t4); + append_dev(tr, th1); + append_dev(tr, t6); + append_dev(tr, th2); + append_dev(tr, t8); + append_dev(tr, th3); + append_dev(tr, t10); + append_dev(tr, th4); + append_dev(tr, t12); + append_dev(tr, th5); + append_dev(tr, t13); + append_dev(tr, th6); + append_dev(table, t14); + append_dev(table, tbody); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(tbody, null); + } + + insert_dev(target, t15, anchor); + insert_dev(target, button, anchor); + current = true; + + if (!mounted) { + dispose = [ + listen_dev(select0, "change", /*select0_change_handler*/ ctx[8]), + listen_dev(select0, "change", /*change_handler*/ ctx[9], false, false, false), + listen_dev(button, "click", /*click_handler*/ ctx[17], false, false, false) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*itemsJson*/ 4) { + each_value_3 = /*itemsJson*/ ctx[2]; + validate_each_argument(each_value_3); + let i; + + for (i = 0; i < each_value_3.length; i += 1) { + const child_ctx = get_each_context_3(ctx, each_value_3, i); + + if (each_blocks_1[i]) { + each_blocks_1[i].p(child_ctx, dirty); + } else { + each_blocks_1[i] = create_each_block_3(child_ctx); + each_blocks_1[i].c(); + each_blocks_1[i].m(select0, null); + } + } + + for (; i < each_blocks_1.length; i += 1) { + each_blocks_1[i].d(1); + } + + each_blocks_1.length = each_value_3.length; + } + + if (dirty[0] & /*itemsJsonBind, itemsJson*/ 20) { + select_option(select0, /*itemsJsonBind*/ ctx[4]); + } + + if (dirty[0] & /*configJson, hideAllSubParams, deleteLineFromConfig, widgetsJson*/ 163) { + each_value = /*configJson*/ ctx[0]; + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$4(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block$4(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(tbody, null); + } + } + + group_outros(); + + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o: function outro(local) { + each_blocks = each_blocks.filter(Boolean); + + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + destroy_each(each_blocks_1, detaching); + if (detaching) detach_dev(t2); + if (detaching) detach_dev(table); + destroy_each(each_blocks, detaching); + if (detaching) detach_dev(t15); + if (detaching) detach_dev(button); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$6.name, + type: "slot", + source: "(46:2) ", + ctx + }); + + return block; + } + + function create_fragment$8(ctx) { + let div; + let card; + let current; + + card = new Card({ + props: { + $$slots: { default: [create_default_slot$6] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + div = element("div"); + create_component(card.$$.fragment); + attr_dev(div, "class", "grd-1col1"); + add_location(div, file$8, 44, 0, 1184); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + mount_component(card, div, null); + current = true; + }, + p: function update(ctx, dirty) { + const card_changes = {}; + + if (dirty[0] & /*saveConfig, configJson, hideAllSubParams, widgetsJson, itemsJsonBind, itemsJson*/ 63 | dirty[1] & /*$$scope*/ 2) { + card_changes.$$scope = { dirty, ctx }; + } + + card.$set(card_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(card.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(card.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + destroy_component(card); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$8.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$8($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Config', slots, []); + let { configJson } = $$props; + let { widgetsJson } = $$props; + let { itemsJson } = $$props; + let itemsJsonBind = 0; + let debug = true; + + let { saveConfig = () => { + + } } = $$props; + + let hideAllSubParams = true; + + function elementsDropdownChange() { + for (let i = 0; i < itemsJson.length; i++) { + let item = Object.assign({}, itemsJson[i]); + + if (itemsJsonBind === item.num) { + delete item.num; + delete item.name; + configJson.push(item); + $$invalidate(0, configJson); + $$invalidate(4, itemsJsonBind = 0); + if (debug) console.log("[i]", "item added"); + break; + } + } + } + + function deleteLineFromConfig(num) { + for (let i = 0; i < configJson.length; i++) { + if (num === i) { + configJson.splice(i, 1); + $$invalidate(0, configJson); + if (debug) console.log("[i]", "item " + num + " deleted from config"); + break; + } + } + } + + const writable_props = ['configJson', 'widgetsJson', 'itemsJson', 'saveConfig']; + + Object_1$2.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$3.warn(` was created with unknown prop '${key}'`); + }); + + function select0_change_handler() { + itemsJsonBind = select_value(this); + $$invalidate(4, itemsJsonBind); + $$invalidate(2, itemsJson); + } + + const change_handler = () => elementsDropdownChange(); + + function input0_input_handler(each_value, i) { + each_value[i].id = this.value; + $$invalidate(0, configJson); + $$invalidate(1, widgetsJson); + } + + function select_change_handler(each_value, i) { + each_value[i].widget = select_value(this); + $$invalidate(0, configJson); + $$invalidate(1, widgetsJson); + } + + function input1_input_handler(each_value, i) { + each_value[i].page = this.value; + $$invalidate(0, configJson); + $$invalidate(1, widgetsJson); + } + + function input2_input_handler(each_value, i) { + each_value[i].descr = this.value; + $$invalidate(0, configJson); + $$invalidate(1, widgetsJson); + } + + const func = () => $$invalidate(5, hideAllSubParams = !hideAllSubParams); + const func_1 = i => deleteLineFromConfig(i); + + function input_input_handler(key, each_value, i) { + each_value[i][key] = this.value; + $$invalidate(0, configJson); + $$invalidate(1, widgetsJson); + } + + const click_handler = () => saveConfig(); + + $$self.$$set = $$props => { + if ('configJson' in $$props) $$invalidate(0, configJson = $$props.configJson); + if ('widgetsJson' in $$props) $$invalidate(1, widgetsJson = $$props.widgetsJson); + if ('itemsJson' in $$props) $$invalidate(2, itemsJson = $$props.itemsJson); + if ('saveConfig' in $$props) $$invalidate(3, saveConfig = $$props.saveConfig); + }; + + $$self.$capture_state = () => ({ + Card, + CrossIcon: Cross, + OpenIcon: Open, + configJson, + widgetsJson, + itemsJson, + itemsJsonBind, + debug, + saveConfig, + hideAllSubParams, + elementsDropdownChange, + deleteLineFromConfig + }); + + $$self.$inject_state = $$props => { + if ('configJson' in $$props) $$invalidate(0, configJson = $$props.configJson); + if ('widgetsJson' in $$props) $$invalidate(1, widgetsJson = $$props.widgetsJson); + if ('itemsJson' in $$props) $$invalidate(2, itemsJson = $$props.itemsJson); + if ('itemsJsonBind' in $$props) $$invalidate(4, itemsJsonBind = $$props.itemsJsonBind); + if ('debug' in $$props) debug = $$props.debug; + if ('saveConfig' in $$props) $$invalidate(3, saveConfig = $$props.saveConfig); + if ('hideAllSubParams' in $$props) $$invalidate(5, hideAllSubParams = $$props.hideAllSubParams); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + configJson, + widgetsJson, + itemsJson, + saveConfig, + itemsJsonBind, + hideAllSubParams, + elementsDropdownChange, + deleteLineFromConfig, + select0_change_handler, + change_handler, + input0_input_handler, + select_change_handler, + input1_input_handler, + input2_input_handler, + func, + func_1, + input_input_handler, + click_handler + ]; + } + + class Config extends SvelteComponentDev { + constructor(options) { + super(options); + + init( + this, + options, + instance$8, + create_fragment$8, + safe_not_equal, + { + configJson: 0, + widgetsJson: 1, + itemsJson: 2, + saveConfig: 3 + }, + null, + [-1, -1] + ); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Config", + options, + id: create_fragment$8.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*configJson*/ ctx[0] === undefined && !('configJson' in props)) { + console_1$3.warn(" was created without expected prop 'configJson'"); + } + + if (/*widgetsJson*/ ctx[1] === undefined && !('widgetsJson' in props)) { + console_1$3.warn(" was created without expected prop 'widgetsJson'"); + } + + if (/*itemsJson*/ ctx[2] === undefined && !('itemsJson' in props)) { + console_1$3.warn(" was created without expected prop 'itemsJson'"); + } + } + + get configJson() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set configJson(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get widgetsJson() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set widgetsJson(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get itemsJson() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set itemsJson(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get saveConfig() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set saveConfig(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\pages\Connection.svelte generated by Svelte v3.46.4 */ + + const { Object: Object_1$1 } = globals; + const file$7 = "src\\pages\\Connection.svelte"; + + function get_each_context$3(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[17] = list[i][0]; + child_ctx[18] = list[i][1]; + return child_ctx; + } + + // (43:10) {#each Object.entries(ssidJson) as [num, ssid]} + function create_each_block$3(ctx) { + let option; + let t0_value = /*ssid*/ ctx[18] + ""; + let t0; + let t1; + let option_value_value; + + const block = { + c: function create() { + option = element("option"); + t0 = text(t0_value); + t1 = space(); + option.__value = option_value_value = /*ssid*/ ctx[18]; + option.value = option.__value; + add_location(option, file$7, 43, 12, 1599); + }, + m: function mount(target, anchor) { + insert_dev(target, option, anchor); + append_dev(option, t0); + append_dev(option, t1); + }, + p: function update(ctx, dirty) { + if (dirty & /*ssidJson*/ 2 && t0_value !== (t0_value = /*ssid*/ ctx[18] + "")) set_data_dev(t0, t0_value); + + if (dirty & /*ssidJson*/ 2 && option_value_value !== (option_value_value = /*ssid*/ ctx[18])) { + prop_dev(option, "__value", option_value_value); + option.value = option.__value; + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(option); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block$3.name, + type: "each", + source: "(43:10) {#each Object.entries(ssidJson) as [num, ssid]}", + ctx + }); + + return block; + } + + // (59:4) {#if settingsJson.pass_status === 1} + function create_if_block$2(ctx) { + let div; + let alarm; + let current; + + alarm = new Alarm({ + props: { title: "Введен неправильный пароль" }, + $$inline: true + }); + + const block = { + c: function create() { + div = element("div"); + create_component(alarm.$$.fragment); + attr_dev(div, "class", "grd-1col1"); + add_location(div, file$7, 59, 6, 2071); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + mount_component(alarm, div, null); + current = true; + }, + i: function intro(local) { + if (current) return; + transition_in(alarm.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(alarm.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + destroy_component(alarm); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$2.name, + type: "if", + source: "(59:4) {#if settingsJson.pass_status === 1}", + ctx + }); + + return block; + } + + // (12:2) + function create_default_slot_1$3(ctx) { + let div2; + let div0; + let p0; + let t1; + let div1; + let input0; + let t2; + let div5; + let div3; + let p1; + let t4; + let div4; + let input1; + let t5; + let div8; + let div6; + let p2; + let t7; + let div7; + let input2; + let t8; + let div11; + let div9; + let p3; + let t10; + let div10; + let select; + let t11; + let div14; + let div12; + let p4; + let t13; + let div13; + let input3; + let t14; + let t15; + let button; + let current; + let mounted; + let dispose; + let each_value = Object.entries(/*ssidJson*/ ctx[1]); + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$3(get_each_context$3(ctx, each_value, i)); + } + + let if_block = /*settingsJson*/ ctx[0].pass_status === 1 && create_if_block$2(ctx); + + const block = { + c: function create() { + div2 = element("div"); + div0 = element("div"); + p0 = element("p"); + p0.textContent = "Название устройства"; + t1 = space(); + div1 = element("div"); + input0 = element("input"); + t2 = space(); + div5 = element("div"); + div3 = element("div"); + p1 = element("p"); + p1.textContent = "Точка доступа"; + t4 = space(); + div4 = element("div"); + input1 = element("input"); + t5 = space(); + div8 = element("div"); + div6 = element("div"); + p2 = element("p"); + p2.textContent = "Пароль точки доступа"; + t7 = space(); + div7 = element("div"); + input2 = element("input"); + t8 = space(); + div11 = element("div"); + div9 = element("div"); + p3 = element("p"); + p3.textContent = "Название wifi сети"; + t10 = space(); + div10 = element("div"); + select = element("select"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t11 = space(); + div14 = element("div"); + div12 = element("div"); + p4 = element("p"); + p4.textContent = "Пароль"; + t13 = space(); + div13 = element("div"); + input3 = element("input"); + t14 = space(); + if (if_block) if_block.c(); + t15 = space(); + button = element("button"); + button.textContent = `${"Сохранить и перезагрузить"}`; + attr_dev(p0, "class", "wgt-dscr-stl"); + add_location(p0, file$7, 14, 8, 401); + attr_dev(div0, "class", "wgt-dscr-w"); + add_location(div0, file$7, 13, 6, 367); + attr_dev(input0, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input0, "type", "text"); + add_location(input0, file$7, 17, 8, 499); + attr_dev(div1, "class", "wgt-w"); + add_location(div1, file$7, 16, 6, 470); + attr_dev(div2, "class", "crd-itm-psn"); + add_location(div2, file$7, 12, 4, 334); + attr_dev(p1, "class", "wgt-dscr-stl"); + add_location(p1, file$7, 22, 8, 700); + attr_dev(div3, "class", "wgt-dscr-w"); + add_location(div3, file$7, 21, 6, 666); + attr_dev(input1, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input1, "type", "text"); + add_location(input1, file$7, 25, 8, 792); + attr_dev(div4, "class", "wgt-w"); + add_location(div4, file$7, 24, 6, 763); + attr_dev(div5, "class", "crd-itm-psn"); + add_location(div5, file$7, 20, 4, 633); + attr_dev(p2, "class", "wgt-dscr-stl"); + add_location(p2, file$7, 30, 8, 995); + attr_dev(div6, "class", "wgt-dscr-w"); + add_location(div6, file$7, 29, 6, 961); + attr_dev(input2, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input2, "type", "text"); + add_location(input2, file$7, 33, 8, 1094); + attr_dev(div7, "class", "wgt-w"); + add_location(div7, file$7, 32, 6, 1065); + attr_dev(div8, "class", "crd-itm-psn"); + add_location(div8, file$7, 28, 4, 928); + attr_dev(p3, "class", "wgt-dscr-stl"); + add_location(p3, file$7, 38, 8, 1297); + attr_dev(div9, "class", "wgt-dscr-w"); + add_location(div9, file$7, 37, 6, 1263); + attr_dev(select, "class", "ipt-rnd text-left focus:border-indigo-500"); + if (/*settingsJson*/ ctx[0].routerssid === void 0) add_render_callback(() => /*select_change_handler*/ ctx[7].call(select)); + add_location(select, file$7, 41, 8, 1394); + attr_dev(div10, "class", "wgt-w"); + add_location(div10, file$7, 40, 6, 1365); + attr_dev(div11, "class", "crd-itm-psn"); + add_location(div11, file$7, 36, 4, 1230); + attr_dev(p4, "class", "wgt-dscr-stl"); + add_location(p4, file$7, 52, 8, 1802); + attr_dev(div12, "class", "wgt-dscr-w"); + add_location(div12, file$7, 51, 6, 1768); + attr_dev(input3, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input3, "type", "text"); + add_location(input3, file$7, 55, 8, 1887); + attr_dev(div13, "class", "wgt-w"); + add_location(div13, file$7, 54, 6, 1858); + attr_dev(div14, "class", "crd-itm-psn"); + add_location(div14, file$7, 50, 4, 1735); + attr_dev(button, "class", "btn-lg"); + add_location(button, file$7, 63, 4, 2179); + }, + m: function mount(target, anchor) { + insert_dev(target, div2, anchor); + append_dev(div2, div0); + append_dev(div0, p0); + append_dev(div2, t1); + append_dev(div2, div1); + append_dev(div1, input0); + set_input_value(input0, /*settingsJson*/ ctx[0].name); + insert_dev(target, t2, anchor); + insert_dev(target, div5, anchor); + append_dev(div5, div3); + append_dev(div3, p1); + append_dev(div5, t4); + append_dev(div5, div4); + append_dev(div4, input1); + set_input_value(input1, /*settingsJson*/ ctx[0].apssid); + insert_dev(target, t5, anchor); + insert_dev(target, div8, anchor); + append_dev(div8, div6); + append_dev(div6, p2); + append_dev(div8, t7); + append_dev(div8, div7); + append_dev(div7, input2); + set_input_value(input2, /*settingsJson*/ ctx[0].appass); + insert_dev(target, t8, anchor); + insert_dev(target, div11, anchor); + append_dev(div11, div9); + append_dev(div9, p3); + append_dev(div11, t10); + append_dev(div11, div10); + append_dev(div10, select); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(select, null); + } + + select_option(select, /*settingsJson*/ ctx[0].routerssid); + insert_dev(target, t11, anchor); + insert_dev(target, div14, anchor); + append_dev(div14, div12); + append_dev(div12, p4); + append_dev(div14, t13); + append_dev(div14, div13); + append_dev(div13, input3); + set_input_value(input3, /*settingsJson*/ ctx[0].routerpass); + insert_dev(target, t14, anchor); + if (if_block) if_block.m(target, anchor); + insert_dev(target, t15, anchor); + insert_dev(target, button, anchor); + current = true; + + if (!mounted) { + dispose = [ + listen_dev(input0, "input", /*input0_input_handler*/ ctx[4]), + listen_dev(input1, "input", /*input1_input_handler*/ ctx[5]), + listen_dev(input2, "input", /*input2_input_handler*/ ctx[6]), + listen_dev(select, "change", /*select_change_handler*/ ctx[7]), + listen_dev(select, "click", /*click_handler*/ ctx[8], false, false, false), + listen_dev(input3, "input", /*input3_input_handler*/ ctx[9]), + listen_dev(button, "click", /*click_handler_1*/ ctx[10], false, false, false) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input0.value !== /*settingsJson*/ ctx[0].name) { + set_input_value(input0, /*settingsJson*/ ctx[0].name); + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input1.value !== /*settingsJson*/ ctx[0].apssid) { + set_input_value(input1, /*settingsJson*/ ctx[0].apssid); + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input2.value !== /*settingsJson*/ ctx[0].appass) { + set_input_value(input2, /*settingsJson*/ ctx[0].appass); + } + + if (dirty & /*Object, ssidJson*/ 2) { + each_value = Object.entries(/*ssidJson*/ ctx[1]); + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$3(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block$3(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(select, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value.length; + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3) { + select_option(select, /*settingsJson*/ ctx[0].routerssid); + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input3.value !== /*settingsJson*/ ctx[0].routerpass) { + set_input_value(input3, /*settingsJson*/ ctx[0].routerpass); + } + + if (/*settingsJson*/ ctx[0].pass_status === 1) { + if (if_block) { + if (dirty & /*settingsJson*/ 1) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block$2(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(t15.parentNode, t15); + } + } else if (if_block) { + group_outros(); + + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + + check_outros(); + } + }, + i: function intro(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o: function outro(local) { + transition_out(if_block); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div2); + if (detaching) detach_dev(t2); + if (detaching) detach_dev(div5); + if (detaching) detach_dev(t5); + if (detaching) detach_dev(div8); + if (detaching) detach_dev(t8); + if (detaching) detach_dev(div11); + destroy_each(each_blocks, detaching); + if (detaching) detach_dev(t11); + if (detaching) detach_dev(div14); + if (detaching) detach_dev(t14); + if (if_block) if_block.d(detaching); + if (detaching) detach_dev(t15); + if (detaching) detach_dev(button); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_1$3.name, + type: "slot", + source: "(12:2) ", + ctx + }); + + return block; + } + + // (66:2) + function create_default_slot$5(ctx) { + let div2; + let div0; + let p0; + let t1; + let div1; + let input0; + let t2; + let div5; + let div3; + let p1; + let t4; + let div4; + let input1; + let t5; + let div8; + let div6; + let p2; + let t7; + let div7; + let input2; + let t8; + let div11; + let div9; + let p3; + let t10; + let div10; + let input3; + let t11; + let div14; + let div12; + let p4; + let t13; + let div13; + let input4; + let t14; + let button; + let mounted; + let dispose; + + const block = { + c: function create() { + div2 = element("div"); + div0 = element("div"); + p0 = element("p"); + p0.textContent = "Название сервера"; + t1 = space(); + div1 = element("div"); + input0 = element("input"); + t2 = space(); + div5 = element("div"); + div3 = element("div"); + p1 = element("p"); + p1.textContent = "Порт"; + t4 = space(); + div4 = element("div"); + input1 = element("input"); + t5 = space(); + div8 = element("div"); + div6 = element("div"); + p2 = element("p"); + p2.textContent = "Префикс"; + t7 = space(); + div7 = element("div"); + input2 = element("input"); + t8 = space(); + div11 = element("div"); + div9 = element("div"); + p3 = element("p"); + p3.textContent = "Имя пользователя"; + t10 = space(); + div10 = element("div"); + input3 = element("input"); + t11 = space(); + div14 = element("div"); + div12 = element("div"); + p4 = element("p"); + p4.textContent = "Пароль"; + t13 = space(); + div13 = element("div"); + input4 = element("input"); + t14 = space(); + button = element("button"); + button.textContent = `${"Сохранить и проверить подключение"}`; + attr_dev(p0, "class", "wgt-dscr-stl"); + add_location(p0, file$7, 68, 8, 2401); + attr_dev(div0, "class", "wgt-dscr-w"); + add_location(div0, file$7, 67, 6, 2367); + attr_dev(input0, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input0, "type", "text"); + add_location(input0, file$7, 71, 8, 2496); + attr_dev(div1, "class", "wgt-w"); + add_location(div1, file$7, 70, 6, 2467); + attr_dev(div2, "class", "crd-itm-psn"); + add_location(div2, file$7, 66, 4, 2334); + attr_dev(p1, "class", "wgt-dscr-stl"); + add_location(p1, file$7, 76, 8, 2703); + attr_dev(div3, "class", "wgt-dscr-w"); + add_location(div3, file$7, 75, 6, 2669); + attr_dev(input1, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input1, "type", "text"); + add_location(input1, file$7, 79, 8, 2786); + attr_dev(div4, "class", "wgt-w"); + add_location(div4, file$7, 78, 6, 2757); + attr_dev(div5, "class", "crd-itm-psn"); + add_location(div5, file$7, 74, 4, 2636); + attr_dev(p2, "class", "wgt-dscr-stl"); + add_location(p2, file$7, 84, 8, 2991); + attr_dev(div6, "class", "wgt-dscr-w"); + add_location(div6, file$7, 83, 6, 2957); + attr_dev(input2, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input2, "type", "text"); + add_location(input2, file$7, 87, 8, 3077); + attr_dev(div7, "class", "wgt-w"); + add_location(div7, file$7, 86, 6, 3048); + attr_dev(div8, "class", "crd-itm-psn"); + add_location(div8, file$7, 82, 4, 2924); + attr_dev(p3, "class", "wgt-dscr-stl"); + add_location(p3, file$7, 92, 8, 3284); + attr_dev(div9, "class", "wgt-dscr-w"); + add_location(div9, file$7, 91, 6, 3250); + attr_dev(input3, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input3, "type", "text"); + add_location(input3, file$7, 95, 8, 3379); + attr_dev(div10, "class", "wgt-w"); + add_location(div10, file$7, 94, 6, 3350); + attr_dev(div11, "class", "crd-itm-psn"); + add_location(div11, file$7, 90, 4, 3217); + attr_dev(p4, "class", "wgt-dscr-stl"); + add_location(p4, file$7, 100, 8, 3584); + attr_dev(div12, "class", "wgt-dscr-w"); + add_location(div12, file$7, 99, 6, 3550); + attr_dev(input4, "class", "ipt-rnd text-left focus:border-indigo-500"); + attr_dev(input4, "type", "text"); + add_location(input4, file$7, 103, 8, 3669); + attr_dev(div13, "class", "wgt-w"); + add_location(div13, file$7, 102, 6, 3640); + attr_dev(div14, "class", "crd-itm-psn"); + add_location(div14, file$7, 98, 4, 3517); + attr_dev(button, "class", "btn-lg"); + add_location(button, file$7, 106, 4, 3807); + }, + m: function mount(target, anchor) { + insert_dev(target, div2, anchor); + append_dev(div2, div0); + append_dev(div0, p0); + append_dev(div2, t1); + append_dev(div2, div1); + append_dev(div1, input0); + set_input_value(input0, /*settingsJson*/ ctx[0].mqttServer); + insert_dev(target, t2, anchor); + insert_dev(target, div5, anchor); + append_dev(div5, div3); + append_dev(div3, p1); + append_dev(div5, t4); + append_dev(div5, div4); + append_dev(div4, input1); + set_input_value(input1, /*settingsJson*/ ctx[0].mqttPort); + insert_dev(target, t5, anchor); + insert_dev(target, div8, anchor); + append_dev(div8, div6); + append_dev(div6, p2); + append_dev(div8, t7); + append_dev(div8, div7); + append_dev(div7, input2); + set_input_value(input2, /*settingsJson*/ ctx[0].mqttPrefix); + insert_dev(target, t8, anchor); + insert_dev(target, div11, anchor); + append_dev(div11, div9); + append_dev(div9, p3); + append_dev(div11, t10); + append_dev(div11, div10); + append_dev(div10, input3); + set_input_value(input3, /*settingsJson*/ ctx[0].mqttUser); + insert_dev(target, t11, anchor); + insert_dev(target, div14, anchor); + append_dev(div14, div12); + append_dev(div12, p4); + append_dev(div14, t13); + append_dev(div14, div13); + append_dev(div13, input4); + set_input_value(input4, /*settingsJson*/ ctx[0].mqttPass); + insert_dev(target, t14, anchor); + insert_dev(target, button, anchor); + + if (!mounted) { + dispose = [ + listen_dev(input0, "input", /*input0_input_handler_1*/ ctx[11]), + listen_dev(input1, "input", /*input1_input_handler_1*/ ctx[12]), + listen_dev(input2, "input", /*input2_input_handler_1*/ ctx[13]), + listen_dev(input3, "input", /*input3_input_handler_1*/ ctx[14]), + listen_dev(input4, "input", /*input4_input_handler*/ ctx[15]), + listen_dev(button, "click", /*click_handler_2*/ ctx[16], false, false, false) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input0.value !== /*settingsJson*/ ctx[0].mqttServer) { + set_input_value(input0, /*settingsJson*/ ctx[0].mqttServer); + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input1.value !== /*settingsJson*/ ctx[0].mqttPort) { + set_input_value(input1, /*settingsJson*/ ctx[0].mqttPort); + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input2.value !== /*settingsJson*/ ctx[0].mqttPrefix) { + set_input_value(input2, /*settingsJson*/ ctx[0].mqttPrefix); + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input3.value !== /*settingsJson*/ ctx[0].mqttUser) { + set_input_value(input3, /*settingsJson*/ ctx[0].mqttUser); + } + + if (dirty & /*settingsJson, Object, ssidJson*/ 3 && input4.value !== /*settingsJson*/ ctx[0].mqttPass) { + set_input_value(input4, /*settingsJson*/ ctx[0].mqttPass); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div2); + if (detaching) detach_dev(t2); + if (detaching) detach_dev(div5); + if (detaching) detach_dev(t5); + if (detaching) detach_dev(div8); + if (detaching) detach_dev(t8); + if (detaching) detach_dev(div11); + if (detaching) detach_dev(t11); + if (detaching) detach_dev(div14); + if (detaching) detach_dev(t14); + if (detaching) detach_dev(button); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$5.name, + type: "slot", + source: "(66:2) ", + ctx + }); + + return block; + } + + function create_fragment$7(ctx) { + let div; + let card0; + let t; + let card1; + let current; + + card0 = new Card({ + props: { + title: "Подключение к WiFi роутеру", + $$slots: { default: [create_default_slot_1$3] }, + $$scope: { ctx } + }, + $$inline: true + }); + + card1 = new Card({ + props: { + title: "Подключение к MQTT брокеру", + $$slots: { default: [create_default_slot$5] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + div = element("div"); + create_component(card0.$$.fragment); + t = space(); + create_component(card1.$$.fragment); + attr_dev(div, "class", "grd-2col1"); + add_location(div, file$7, 10, 0, 260); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + mount_component(card0, div, null); + append_dev(div, t); + mount_component(card1, div, null); + current = true; + }, + p: function update(ctx, [dirty]) { + const card0_changes = {}; + + if (dirty & /*$$scope, saveSettings, settingsJson, ssidDropdownClick, ssidJson*/ 2097167) { + card0_changes.$$scope = { dirty, ctx }; + } + + card0.$set(card0_changes); + const card1_changes = {}; + + if (dirty & /*$$scope, saveSettings, settingsJson*/ 2097161) { + card1_changes.$$scope = { dirty, ctx }; + } + + card1.$set(card1_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(card0.$$.fragment, local); + transition_in(card1.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(card0.$$.fragment, local); + transition_out(card1.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + destroy_component(card0); + destroy_component(card1); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$7.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$7($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Connection', slots, []); + let { settingsJson } = $$props; + let { ssidJson } = $$props; + + let { ssidDropdownClick = () => { + + } } = $$props; + + let { saveSettings = () => { + + } } = $$props; + + const writable_props = ['settingsJson', 'ssidJson', 'ssidDropdownClick', 'saveSettings']; + + Object_1$1.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + function input0_input_handler() { + settingsJson.name = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + function input1_input_handler() { + settingsJson.apssid = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + function input2_input_handler() { + settingsJson.appass = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + function select_change_handler() { + settingsJson.routerssid = select_value(this); + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + const click_handler = () => ssidDropdownClick(); + + function input3_input_handler() { + settingsJson.routerpass = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + const click_handler_1 = () => saveSettings(); + + function input0_input_handler_1() { + settingsJson.mqttServer = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + function input1_input_handler_1() { + settingsJson.mqttPort = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + function input2_input_handler_1() { + settingsJson.mqttPrefix = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + function input3_input_handler_1() { + settingsJson.mqttUser = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + function input4_input_handler() { + settingsJson.mqttPass = this.value; + $$invalidate(0, settingsJson); + $$invalidate(1, ssidJson); + } + + const click_handler_2 = () => saveSettings(); + + $$self.$$set = $$props => { + if ('settingsJson' in $$props) $$invalidate(0, settingsJson = $$props.settingsJson); + if ('ssidJson' in $$props) $$invalidate(1, ssidJson = $$props.ssidJson); + if ('ssidDropdownClick' in $$props) $$invalidate(2, ssidDropdownClick = $$props.ssidDropdownClick); + if ('saveSettings' in $$props) $$invalidate(3, saveSettings = $$props.saveSettings); + }; + + $$self.$capture_state = () => ({ + Card, + Alarm, + settingsJson, + ssidJson, + ssidDropdownClick, + saveSettings + }); + + $$self.$inject_state = $$props => { + if ('settingsJson' in $$props) $$invalidate(0, settingsJson = $$props.settingsJson); + if ('ssidJson' in $$props) $$invalidate(1, ssidJson = $$props.ssidJson); + if ('ssidDropdownClick' in $$props) $$invalidate(2, ssidDropdownClick = $$props.ssidDropdownClick); + if ('saveSettings' in $$props) $$invalidate(3, saveSettings = $$props.saveSettings); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + settingsJson, + ssidJson, + ssidDropdownClick, + saveSettings, + input0_input_handler, + input1_input_handler, + input2_input_handler, + select_change_handler, + click_handler, + input3_input_handler, + click_handler_1, + input0_input_handler_1, + input1_input_handler_1, + input2_input_handler_1, + input3_input_handler_1, + input4_input_handler, + click_handler_2 + ]; + } + + class Connection extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$7, create_fragment$7, safe_not_equal, { + settingsJson: 0, + ssidJson: 1, + ssidDropdownClick: 2, + saveSettings: 3 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Connection", + options, + id: create_fragment$7.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*settingsJson*/ ctx[0] === undefined && !('settingsJson' in props)) { + console.warn(" was created without expected prop 'settingsJson'"); + } + + if (/*ssidJson*/ ctx[1] === undefined && !('ssidJson' in props)) { + console.warn(" was created without expected prop 'ssidJson'"); + } + } + + get settingsJson() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set settingsJson(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get ssidJson() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set ssidJson(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get ssidDropdownClick() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set ssidDropdownClick(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get saveSettings() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set saveSettings(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function createCommonjsModule(fn) { + var module = { exports: {} }; + return fn(module, module.exports), module.exports; + } + + var frappeCharts_min_umd = createCommonjsModule(function (module, exports) { + !function(t,e){module.exports=e();}(commonjsGlobal,function(){function t(t,e){return "string"==typeof t?(e||document).querySelector(t):t||null}function e(t){var e=t.getBoundingClientRect();return {top:e.top+(document.documentElement.scrollTop||document.body.scrollTop),left:e.left+(document.documentElement.scrollLeft||document.body.scrollLeft)}}function i(t){return null===t.offsetParent}function n(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)}function a(t){var e=window.getComputedStyle(t),i=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight);return t.clientWidth-i}function s(t,e,i){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0);for(var a in i)n[a]=i[a];return t.dispatchEvent(n)}function r(t){return t.titleHeight+t.margins.top+t.paddings.top}function o(t){return t.margins.left+t.paddings.left}function l(t){return t.margins.top+t.margins.bottom+t.paddings.top+t.paddings.bottom+t.titleHeight+t.legendHeight}function u(t){return t.margins.left+t.margins.right+t.paddings.left+t.paddings.right}function h(t){return parseFloat(t.toFixed(2))}function c(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];i||(i=n?t[0]:t[t.length-1]);var a=new Array(Math.abs(e)).fill(i);return t=n?a.concat(t):t.concat(a)}function d(t,e){return (t+"").length*e}function p(t,e){return {x:Math.sin(t*Zt)*e,y:Math.cos(t*Zt)*e}}function f(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return !Number.isNaN(t)&&(void 0!==t&&(!!Number.isFinite(t)&&!(e&&t<0)))}function v(t){return Number(Math.round(t+"e4")+"e-4")}function g(t){var e=void 0,i=void 0,n=void 0;if(t instanceof Date)return new Date(t.getTime());if("object"!==(void 0===t?"undefined":Ft(t))||null===t)return t;e=Array.isArray(t)?[]:{};for(n in t)i=t[n],e[n]=g(i);return e}function m(t,e){var i=void 0,n=void 0;return t<=e?(i=e-t,n=t):(i=t-e,n=e),[i,n]}function y(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length-t.length;return i>0?t=c(t,i):e=c(e,i),[t,e]}function b(t,e){if(t)return t.length>e?t.slice(0,e-3)+"...":t}function x(t){var e=void 0;if("number"==typeof t)e=t;else if("string"==typeof t&&(e=Number(t),Number.isNaN(e)))return t;var i=Math.floor(Math.log10(Math.abs(e)));if(i<=2)return e;var n=Math.floor(i/3),a=Math.pow(10,i-3*n)*+(e/Math.pow(10,i)).toFixed(1);return Math.round(100*a)/100+" "+["","K","M","B","T"][n]}function k(t,e){for(var i=[],n=0;n255?255:t<0?0:t}function A(t,e){var i=ie(t),n=!1;"#"==i[0]&&(i=i.slice(1),n=!0);var a=parseInt(i,16),s=w((a>>16)+e),r=w((a>>8&255)+e),o=w((255&a)+e);return (n?"#":"")+(o|r<<8|s<<16).toString(16)}function P(t){var e=/(^\s*)(rgb|hsl)(a?)[(]\s*([\d.]+\s*%?)\s*,\s*([\d.]+\s*%?)\s*,\s*([\d.]+\s*%?)\s*(?:,\s*([\d.]+)\s*)?[)]$/i;return /(^\s*)(#)((?:[A-Fa-f0-9]{3}){1,2})$/i.test(t)||e.test(t)}function T(t,e){return "string"==typeof t?(e||document).querySelector(t):t||null}function L(t,e){var i=document.createElementNS("http://www.w3.org/2000/svg",t);for(var n in e){var a=e[n];if("inside"===n)T(a).appendChild(i);else if("around"===n){var s=T(a);s.parentNode.insertBefore(i,s),i.appendChild(s);}else "styles"===n?"object"===(void 0===a?"undefined":Ft(a))&&Object.keys(a).map(function(t){i.style[t]=a[t];}):("className"===n&&(n="class"),"innerHTML"===n?i.textContent=a:i.setAttribute(n,a));}return i}function O(t,e){return L("linearGradient",{inside:t,id:e,x1:0,x2:0,y1:0,y2:1})}function M(t,e,i,n){return L("stop",{inside:t,style:"stop-color: "+i,offset:e,"stop-opacity":n})}function C(t,e,i,n){return L("svg",{className:e,inside:t,width:i,height:n})}function D(t){return L("defs",{inside:t})}function N(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n={className:t,transform:e};return i&&(n.inside=i),L("g",n)}function S(t){return L("path",{className:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",d:t,styles:{stroke:arguments.length>2&&void 0!==arguments[2]?arguments[2]:"none",fill:arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none","stroke-width":arguments.length>4&&void 0!==arguments[4]?arguments[4]:2}})}function E(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=i.x+t.x,o=i.y+t.y,l=i.x+e.x,u=i.y+e.y;return "M"+i.x+" "+i.y+"\n\t\tL"+r+" "+o+"\n\t\tA "+n+" "+n+" 0 "+s+" "+(a?1:0)+"\n\t\t"+l+" "+u+" z"}function _(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=i.x+t.x,o=i.y+t.y,l=i.x+e.x,u=2*i.y,h=i.y+e.y;return "M"+i.x+" "+i.y+"\n\t\tL"+r+" "+o+"\n\t\tA "+n+" "+n+" 0 "+s+" "+(a?1:0)+"\n\t\t"+l+" "+u+" z\n\t\tL"+r+" "+u+"\n\t\tA "+n+" "+n+" 0 "+s+" "+(a?1:0)+"\n\t\t"+l+" "+h+" z"}function z(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=i.x+t.x,o=i.y+t.y,l=i.x+e.x,u=i.y+e.y;return "M"+r+" "+o+"\n\t\tA "+n+" "+n+" 0 "+s+" "+(a?1:0)+"\n\t\t"+l+" "+u}function W(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=i.x+t.x,o=i.y+t.y,l=i.x+e.x,u=2*n+o,h=i.y+t.y;return "M"+r+" "+o+"\n\t\tA "+n+" "+n+" 0 "+s+" "+(a?1:0)+"\n\t\t"+l+" "+u+"\n\t\tM"+r+" "+u+"\n\t\tA "+n+" "+n+" 0 "+s+" "+(a?1:0)+"\n\t\t"+l+" "+h}function j(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n="path-fill-gradient-"+e+"-"+(i?"lighter":"default"),a=O(t,n),s=[1,.6,.2];return i&&(s=[.4,.2,0]),M(a,"0%",e,s[0]),M(a,"50%",e,s[1]),M(a,"100%",e,s[2]),n}function F(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Jt,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"none";return L("rect",{className:"percentage-bar",x:t,y:e,width:i,height:n,fill:s,styles:{stroke:A(s,-25),"stroke-dasharray":"0, "+(n+i)+", "+i+", "+n,"stroke-width":a}})}function H(t,e,i,n,a){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"none",r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},o={className:t,x:e,y:i,width:n,height:n,rx:a,fill:s};return Object.keys(r).map(function(t){o[t]=r[t];}),L("rect",o)}function I(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",a=arguments[4];a=arguments.length>5&&void 0!==arguments[5]&&arguments[5]?b(a,se):a;var s={className:"legend-bar",x:0,y:0,width:i,height:"2px",fill:n},r=L("text",{className:"legend-dataset-text",x:0,y:0,dy:2*re+"px","font-size":1.2*re+"px","text-anchor":"start",fill:le,innerHTML:a}),o=L("g",{transform:"translate("+t+", "+e+")"});return o.appendChild(L("rect",s)),o.appendChild(r),o}function R(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",a=arguments[4];a=arguments.length>5&&void 0!==arguments[5]&&arguments[5]?b(a,se):a;var s={className:"legend-dot",cx:0,cy:0,r:i,fill:n},r=L("text",{className:"legend-dataset-text",x:0,y:0,dx:re+"px",dy:re/3+"px","font-size":1.2*re+"px","text-anchor":"start",fill:le,innerHTML:a}),o=L("g",{transform:"translate("+t+", "+e+")"});return o.appendChild(L("circle",s)),o.appendChild(r),o}function Y(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=a.fontSize||re;return L("text",{className:t,x:e,y:i,dy:(void 0!==a.dy?a.dy:s/2)+"px","font-size":s+"px",fill:a.fill||le,"text-anchor":a.textAnchor||"start",innerHTML:n})}function B(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};a.stroke||(a.stroke=oe);var s=L("line",{className:"line-vertical "+a.className,x1:0,x2:0,y1:i,y2:n,styles:{stroke:a.stroke}}),r=L("text",{x:0,y:i>n?i+ae:i-ae-re,dy:re+"px","font-size":re+"px","text-anchor":"middle",innerHTML:e+""}),o=L("g",{transform:"translate("+t+", 0)"});return o.appendChild(s),o.appendChild(r),o}function V(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};a.stroke||(a.stroke=oe),a.lineType||(a.lineType=""),a.shortenNumbers&&(e=x(e));var s=L("line",{className:"line-horizontal "+a.className+("dashed"===a.lineType?"dashed":""),x1:i,x2:n,y1:0,y2:0,styles:{stroke:a.stroke}}),r=L("text",{x:i3&&void 0!==arguments[3]?arguments[3]:{};f(t)||(t=0),n.pos||(n.pos="left"),n.offset||(n.offset=0),n.mode||(n.mode="span"),n.stroke||(n.stroke=oe),n.className||(n.className="");var a=-1*ne,s="span"===n.mode?i+ne:0;return "tick"===n.mode&&"right"===n.pos&&(a=i+ne,s=i),a+=n.offset,s+=n.offset,V(t,e,a,s,{stroke:n.stroke,className:n.className,lineType:n.lineType,shortenNumbers:n.shortenNumbers})}function G(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};f(t)||(t=0),n.pos||(n.pos="bottom"),n.offset||(n.offset=0),n.mode||(n.mode="span"),n.stroke||(n.stroke=oe),n.className||(n.className="");var a=i+ne,s="span"===n.mode?-1*ne:i;return "tick"===n.mode&&"top"===n.pos&&(a=-1*ne,s=0),B(t,e,a,s,{stroke:n.stroke,className:n.className,lineType:n.lineType})}function q(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n.labelPos||(n.labelPos="right");var a=L("text",{className:"chart-label",x:"left"===n.labelPos?ae:i-d(e,5)-ae,y:0,dy:re/-2+"px","font-size":re+"px","text-anchor":"start",innerHTML:e+""}),s=V(t,"",0,i,{stroke:n.stroke||oe,className:n.className||"",lineType:n.lineType});return s.appendChild(a),s}function X(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=t-e,r=L("rect",{className:"bar mini",styles:{fill:"rgba(228, 234, 239, 0.49)",stroke:oe,"stroke-dasharray":i+", "+s},x:0,y:0,width:i,height:s});a.labelPos||(a.labelPos="right");var o=L("text",{className:"chart-label",x:"left"===a.labelPos?ae:i-d(n+"",4.5)-ae,y:0,dy:re/-2+"px","font-size":re+"px","text-anchor":"start",innerHTML:n+""}),l=L("g",{transform:"translate(0, "+e+")"});return l.appendChild(r),l.appendChild(o),l}function J(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},l=m(e,o.zeroLine),u=Vt(l,2),h=u[0],c=u[1];c-=r,0===h&&(h=o.minHeight,c-=o.minHeight),f(t)||(t=0),f(c)||(c=0),f(h,!0)||(h=0),f(i,!0)||(i=0);var d=L("rect",{className:"bar mini",style:"fill: "+n,"data-point-index":s,x:t,y:c,width:i,height:h});if((a+="")||a.length){d.setAttribute("y",0),d.setAttribute("x",0);var p=L("text",{className:"data-point-value",x:i/2,y:0,dy:re/2*-1+"px","font-size":re+"px","text-anchor":"middle",innerHTML:a}),v=L("g",{"data-point-index":s,transform:"translate("+t+", "+c+")"});return v.appendChild(d),v.appendChild(p),v}return d}function K(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=L("circle",{style:"fill: "+n,"data-point-index":s,cx:t,cy:e,r:i});if((a+="")||a.length){r.setAttribute("cy",0),r.setAttribute("cx",0);var o=L("text",{className:"data-point-value",x:0,y:0,dy:re/2*-1-i+"px","font-size":re+"px","text-anchor":"middle",innerHTML:a}),l=L("g",{"data-point-index":s,transform:"translate("+t+", "+e+")"});return l.appendChild(r),l.appendChild(o),l}return r}function $(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=e.map(function(e,i){return t[i]+","+e}).join("L");n.spline&&(s=k(t,e));var r=S("M"+s,"line-graph-path",i);if(n.heatline){var o=j(a.svgDefs,i);r.style.stroke="url(#"+o+")";}var l={path:r};if(n.regionFill){var u=j(a.svgDefs,i,!0),h="M"+t[0]+","+a.zeroLine+"L"+s+"L"+t.slice(-1)[0]+","+a.zeroLine;l.region=S(h,"region-fill","none","url(#"+u+")");}return l}function Q(t,e,i,n){var a="string"==typeof e?e:e.join(", ");return [t,{transform:i.join(", ")},n,ve,"translate",{transform:a}]}function Z(t,e,i){return Q(t,[i,0],[e,0],pe)}function tt(t,e,i){return Q(t,[0,i],[0,e],pe)}function et(t,e,i,n){var a=e-i,s=t.childNodes[0];return [[s,{height:a,"stroke-dasharray":s.getAttribute("width")+", "+a},pe,ve],Q(t,[0,n],[0,i],pe)]}function it(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=m(i,(arguments.length>5&&void 0!==arguments[5]?arguments[5]:{}).zeroLine),r=Vt(s,2),o=r[0],l=r[1];return l-=a,"rect"!==t.nodeName?[[t.childNodes[0],{width:n,height:o},ce,ve],Q(t,t.getAttribute("transform").split("(")[1].slice(0,-1),[e,l],pe)]:[[t,{width:n,height:o,x:e,y:l},ce,ve]]}function nt(t,e,i){return "circle"!==t.nodeName?[Q(t,t.getAttribute("transform").split("(")[1].slice(0,-1),[e,i],pe)]:[[t,{cx:e,cy:i},ce,ve]]}function at(t,e,i,n,a){var s=[],r=i.map(function(t,i){return e[i]+","+t}).join("L");a&&(r=k(e,i));var o=[t.path,{d:"M"+r},de,ve];if(s.push(o),t.region){var l=e[0]+","+n+"L",u="L"+e.slice(-1)[0]+", "+n,h=[t.region,{d:"M"+l+r+u},de,ve];s.push(h);}return s}function st(t,e){return [t,{d:e},ce,ve]}function rt(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"linear",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},r=t.cloneNode(!0),o=t.cloneNode(!0);for(var l in e){var u=void 0;u="transform"===l?document.createElementNS("http://www.w3.org/2000/svg","animateTransform"):document.createElementNS("http://www.w3.org/2000/svg","animate");var h=s[l]||t.getAttribute(l),c=e[l],d={attributeName:l,from:h,to:c,begin:"0s",dur:i/1e3+"s",values:h+";"+c,keySplines:ge[n],keyTimes:"0;1",calcMode:"spline",fill:"freeze"};a&&(d.type=a);for(var p in d)u.setAttribute(p,d[p]);r.appendChild(u),a?o.setAttribute(l,"translate("+c+")"):o.setAttribute(l,c);}return [r,o]}function ot(t,e){t.style.transform=e,t.style.webkitTransform=e,t.style.msTransform=e,t.style.mozTransform=e,t.style.oTransform=e;}function lt(t,e){var i=[],n=[];e.map(function(t){var e=t[0],a=e.parentNode,s=void 0,r=void 0;t[0]=e;var o=rt.apply(void 0,Ut(t)),l=Vt(o,2);s=l[0],r=l[1],i.push(r),n.push([s,a]),a&&a.replaceChild(s,e);});var a=t.cloneNode(!0);return n.map(function(t,n){t[1]&&(t[1].replaceChild(i[n],t[0]),e[n][0]=i[n]);}),a}function ut(t,e,i){if(0!==i.length){var n=lt(e,i);e.parentNode==t&&(t.removeChild(e),t.appendChild(n)),setTimeout(function(){n.parentNode==t&&(t.removeChild(n),t.appendChild(e));},fe);}}function ht(t,e){var i=document.createElement("a");i.style="display: none";var n=new Blob(e,{type:"image/svg+xml; charset=utf-8"}),a=window.URL.createObjectURL(n);i.href=a,i.download=t,document.body.appendChild(i),i.click(),setTimeout(function(){document.body.removeChild(i),window.URL.revokeObjectURL(a);},300);}function ct(e){var i=e.cloneNode(!0);i.classList.add("chart-container"),i.setAttribute("xmlns","http://www.w3.org/2000/svg"),i.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink");var n=t.create("style",{innerHTML:me});i.insertBefore(n,i.firstChild);var a=t.create("div");return a.appendChild(i),a.innerHTML}function dt(t){var e=new Date(t);return e.setMinutes(e.getMinutes()-e.getTimezoneOffset()),e}function pt(t){var e=t.getDate(),i=t.getMonth()+1;return [t.getFullYear(),(i>9?"":"0")+i,(e>9?"":"0")+e].join("-")}function ft(t){return new Date(t.getTime())}function vt(t,e){var i=xt(t);return Math.ceil(gt(i,e)/xe)}function gt(t,e){var i=we*ke;return (dt(e)-dt(t))/i}function mt(t,e){return t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear()}function yt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=Ae[t];return e?i.slice(0,3):i}function bt(t,e){return new Date(e,t+1,0)}function xt(t){var e=ft(t),i=e.getDay();return 0!==i&&kt(e,-1*i),e}function kt(t,e){t.setDate(t.getDate()+e);}function wt(t,e,i){var n=Object.keys(Le).filter(function(e){return t.includes(e)}),a=Le[n[0]];return Object.assign(a,{constants:e,getData:i}),new Te(a)}function At(t){if(0===t)return [0,0];if(isNaN(t))return {mantissa:-6755399441055744,exponent:972};var e=t>0?1:-1;if(!isFinite(t))return {mantissa:4503599627370496*e,exponent:972};t=Math.abs(t);var i=Math.floor(Math.log10(t));return [e*(t/Math.pow(10,i)),i]}function Pt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=Math.ceil(t),n=Math.floor(e),a=i-n,s=a,r=1;a>5&&(a%2!=0&&(a=++i-n),s=a/2,r=2),a<=2&&(r=a/(s=4)),0===a&&(s=5,r=1);for(var o=[],l=0;l<=s;l++)o.push(n+r*l);return o}function Tt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=At(t),n=Vt(i,2),a=n[0],s=n[1],r=e?e/Math.pow(10,s):0,o=Pt(a=a.toFixed(6),r);return o=o.map(function(t){return t*Math.pow(10,s)})}function Lt(t){function e(t,e){for(var i=Tt(t),n=i[1]-i[0],a=0,s=1;a1&&void 0!==arguments[1]&&arguments[1],n=Math.max.apply(Math,Ut(t)),a=Math.min.apply(Math,Ut(t)),s=[];if(n>=0&&a>=0)At(n)[1],s=i?Tt(n,a):Tt(n);else if(n>0&&a<0){var r=Math.abs(a);n>=r?(At(n)[1],s=e(n,r)):(At(r)[1],s=e(r,n).reverse().map(function(t){return -1*t}));}else if(n<=0&&a<=0){var o=Math.abs(a),l=Math.abs(n);At(o)[1],s=(s=i?Tt(o,l):Tt(o)).reverse().map(function(t){return -1*t});}return s}function Ot(t){var e=Mt(t);return t.indexOf(0)>=0?t.indexOf(0):t[0]>0?-1*t[0]/e:-1*t[t.length-1]/e+(t.length-1)}function Mt(t){return t[1]-t[0]}function Ct(t){return t[t.length-1]-t[0]}function Dt(t,e){return h(e.zeroLine-t*e.scaleMultiplier)}function Nt(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.reduce(function(e,i){return Math.abs(i-t)i?n.slice(0,i):c(n,i-n.length,0),t.values=n;}else t.values=a;t.chartType||(t.chartType=e);}),t.yRegions&&t.yRegions.map(function(t){if(t.end1&&void 0!==arguments[1]?arguments[1]:[],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=t/e.length;n<=0&&(n=1);var a=n/Kt,s=void 0;if(i){var r=Math.max.apply(Math,Ut(e.map(function(t){return t.length})));s=Math.ceil(r/a);}return e.map(function(t,e){return (t+="").length>a&&(i?e%s!=0&&(t=""):t=a-3>0?t.slice(0,a-3)+" ...":t.slice(0,a)+".."),t})}function jt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"line",e=arguments[1],i=arguments[2];return "axis-mixed"===t?(i.type="line",new De(e,i)):Se[t]?new Se[t](e,i):void console.error("Undefined chart type: "+t)}!function(t,e){void 0===e&&(e={});var i=e.insertAt;if(t&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===i&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t));}}('.chart-container{position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.chart-container .axis,.chart-container .chart-label{fill:#555b51}.chart-container .axis line,.chart-container .chart-label line{stroke:#dadada}.chart-container .dataset-units circle{stroke:#fff;stroke-width:2}.chart-container .dataset-units path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container .dataset-path{stroke-width:2px}.chart-container .path-group path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container line.dashed{stroke-dasharray:5,3}.chart-container .axis-line .specific-value{text-anchor:start}.chart-container .axis-line .y-line{text-anchor:end}.chart-container .axis-line .x-line{text-anchor:middle}.chart-container .legend-dataset-text{fill:#6c7680;font-weight:600}.graph-svg-tip{position:absolute;z-index:99999;padding:10px;font-size:12px;color:#959da5;text-align:center;background:rgba(0,0,0,.8);border-radius:3px}.graph-svg-tip ol,.graph-svg-tip ul{padding-left:0;display:-webkit-box;display:-ms-flexbox;display:flex}.graph-svg-tip ul.data-point-list li{min-width:90px;-webkit-box-flex:1;-ms-flex:1;flex:1;font-weight:600}.graph-svg-tip strong{color:#dfe2e5;font-weight:600}.graph-svg-tip .svg-pointer{position:absolute;height:5px;margin:0 0 0 -5px;content:" ";border:5px solid transparent;border-top-color:rgba(0,0,0,.8)}.graph-svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.graph-svg-tip.comparison .title{display:block;padding:10px;margin:0;font-weight:600;line-height:1;pointer-events:none}.graph-svg-tip.comparison ul{margin:0;white-space:nowrap;list-style:none}.graph-svg-tip.comparison li{display:inline-block;padding:5px 10px}');var Ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ht=(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),It=function(){function t(t,e){for(var i=0;i\n\t\t\t\t
      \n\t\t\t\t
      '}),this.hideTip(),this.title=this.container.querySelector(".title"),this.dataPointList=this.container.querySelector(".data-point-list"),this.parent.addEventListener("mouseleave",function(){e.hideTip();});}},{key:"fill",value:function(){var e=this,i=void 0;this.index&&this.container.setAttribute("data-point-index",this.index),i=this.titleValueFirst?""+this.titleValue+""+this.titleName:this.titleName+""+this.titleValue+"",this.title.innerHTML=i,this.dataPointList.innerHTML="",this.listValues.map(function(i,n){var a=e.colors[n]||"black",s=0===i.formatted||i.formatted?i.formatted:i.value,r=t.create("li",{styles:{"border-top":"3px solid "+a},innerHTML:''+(0===s||s?s:"")+"\n\t\t\t\t\t"+(i.title?i.title:"")});e.dataPointList.appendChild(r);});}},{key:"calcPosition",value:function(){var t=this.container.offsetWidth;this.top=this.y-this.container.offsetHeight-5,this.left=this.x-t/2;var e=this.parent.offsetWidth-t,i=this.container.querySelector(".svg-pointer");if(this.left<0)i.style.left="calc(50% - "+-1*this.left+"px)",this.left=0;else if(this.left>e){var n="calc(50% + "+(this.left-e)+"px)";i.style.left=n,this.left=e;}else i.style.left="50%";}},{key:"setValues",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;this.titleName=i.name,this.titleValue=i.value,this.listValues=n,this.x=t,this.y=e,this.titleValueFirst=i.valueFirst||0,this.index=a,this.refresh();}},{key:"hideTip",value:function(){this.container.style.top="0px",this.container.style.left="0px",this.container.style.opacity="0";}},{key:"showTip",value:function(){this.container.style.top=this.top+"px",this.container.style.left=this.left+"px",this.container.style.opacity="1";}}]),e}(),ee={"light-blue":"#7cd6fd",blue:"#5e64ff",violet:"#743ee2",red:"#ff5858",orange:"#ffa00a",yellow:"#feef72",green:"#28a745","light-green":"#98d85b",purple:"#b554ff",magenta:"#ffa3ef",black:"#36114C",grey:"#bdd3e6","light-grey":"#f0f4f7","dark-grey":"#b8c2cc"},ie=function(t){return /rgb[a]{0,1}\([\d, ]+\)/gim.test(t)?/\D+(\d*)\D+(\d*)\D+(\d*)/gim.exec(t).map(function(t,e){return 0!==e?Number(t).toString(16):"#"}).reduce(function(t,e){return ""+t+e}):ee[t]||t},ne=6,ae=4,se=15,re=10,oe="#dadada",le="#555b51",ue={bar:function(t){var e=void 0;"rect"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var i=t.cloneNode();return i.style.fill="#000000",i.style.opacity="0.4",e&&i.setAttribute("transform",e),i},dot:function(t){var e=void 0;"circle"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var i=t.cloneNode(),n=t.getAttribute("r"),a=t.getAttribute("fill");return i.setAttribute("r",parseInt(n)+4),i.setAttribute("fill",a),i.style.opacity="0.6",e&&i.setAttribute("transform",e),i},heat_square:function(t){var e=void 0;"circle"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var i=t.cloneNode(),n=t.getAttribute("r"),a=t.getAttribute("fill");return i.setAttribute("r",parseInt(n)+4),i.setAttribute("fill",a),i.style.opacity="0.6",e&&i.setAttribute("transform",e),i}},he={bar:function(t,e){var i=void 0;"rect"!==t.nodeName&&(i=t.getAttribute("transform"),t=t.childNodes[0]);var n=["x","y","width","height"];Object.values(t.attributes).filter(function(t){return n.includes(t.name)&&t.specified}).map(function(t){e.setAttribute(t.name,t.nodeValue);}),i&&e.setAttribute("transform",i);},dot:function(t,e){var i=void 0;"circle"!==t.nodeName&&(i=t.getAttribute("transform"),t=t.childNodes[0]);var n=["cx","cy"];Object.values(t.attributes).filter(function(t){return n.includes(t.name)&&t.specified}).map(function(t){e.setAttribute(t.name,t.nodeValue);}),i&&e.setAttribute("transform",i);},heat_square:function(t,e){var i=void 0;"circle"!==t.nodeName&&(i=t.getAttribute("transform"),t=t.childNodes[0]);var n=["cx","cy"];Object.values(t.attributes).filter(function(t){return n.includes(t.name)&&t.specified}).map(function(t){e.setAttribute(t.name,t.nodeValue);}),i&&e.setAttribute("transform",i);}},ce=350,de=350,pe=ce,fe=250,ve="easein",ge={ease:"0.25 0.1 0.25 1",linear:"0 0 1 1",easein:"0.1 0.8 0.2 1",easeout:"0 0 0.58 1",easeinout:"0.42 0 0.58 1"},me=".chart-container{position:relative;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell','Fira Sans','Droid Sans','Helvetica Neue',sans-serif}.chart-container .axis,.chart-container .chart-label{fill:#555b51}.chart-container .axis line,.chart-container .chart-label line{stroke:#dadada}.chart-container .dataset-units circle{stroke:#fff;stroke-width:2}.chart-container .dataset-units path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container .dataset-path{stroke-width:2px}.chart-container .path-group path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container line.dashed{stroke-dasharray:5,3}.chart-container .axis-line .specific-value{text-anchor:start}.chart-container .axis-line .y-line{text-anchor:end}.chart-container .axis-line .x-line{text-anchor:middle}.chart-container .legend-dataset-text{fill:#6c7680;font-weight:600}.graph-svg-tip{position:absolute;z-index:99999;padding:10px;font-size:12px;color:#959da5;text-align:center;background:rgba(0,0,0,.8);border-radius:3px}.graph-svg-tip ul{padding-left:0;display:flex}.graph-svg-tip ol{padding-left:0;display:flex}.graph-svg-tip ul.data-point-list li{min-width:90px;flex:1;font-weight:600}.graph-svg-tip strong{color:#dfe2e5;font-weight:600}.graph-svg-tip .svg-pointer{position:absolute;height:5px;margin:0 0 0 -5px;content:' ';border:5px solid transparent;border-top-color:rgba(0,0,0,.8)}.graph-svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.graph-svg-tip.comparison .title{display:block;padding:10px;margin:0;font-weight:600;line-height:1;pointer-events:none}.graph-svg-tip.comparison ul{margin:0;white-space:nowrap;list-style:none}.graph-svg-tip.comparison li{display:inline-block;padding:5px 10px}",ye=function(){function e(t,i){if(Ht(this,e),i=g(i),this.parent="string"==typeof t?document.querySelector(t):t,!(this.parent instanceof HTMLElement))throw new Error("No `parent` element to render on was provided.");this.rawChartArgs=i,this.title=i.title||"",this.type=i.type||"",this.realData=this.prepareData(i.data),this.data=this.prepareFirstData(this.realData),this.colors=this.validateColors(i.colors,this.type),this.config={showTooltip:1,showLegend:1,isNavigable:i.isNavigable||0,animate:void 0!==i.animate?i.animate:1,truncateLegends:i.truncateLegends||1},this.measures=JSON.parse(JSON.stringify(Gt));var n=this.measures;this.setMeasures(i),this.title.length||(n.titleHeight=0),this.config.showLegend||(n.legendHeight=0),this.argHeight=i.height||n.baseHeight,this.state={},this.options={},this.initTimeout=qt,this.config.isNavigable&&(this.overlays=[]),this.configure(i);}return It(e,[{key:"prepareData",value:function(t){return t}},{key:"prepareFirstData",value:function(t){return t}},{key:"validateColors",value:function(t,e){var i=[];return (t=(t||[]).concat(Qt[e])).forEach(function(t){var e=ie(t);P(e)?i.push(e):console.warn('"'+t+'" is not a valid color.');}),i}},{key:"setMeasures",value:function(){}},{key:"configure",value:function(){var t=this,e=this.argHeight;this.baseHeight=e,this.height=e-l(this.measures),this.boundDrawFn=function(){return t.draw(!0)},ResizeObserver&&(this.resizeObserver=new ResizeObserver(this.boundDrawFn),this.resizeObserver.observe(this.parent)),window.addEventListener("resize",this.boundDrawFn),window.addEventListener("orientationchange",this.boundDrawFn);}},{key:"destroy",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),window.removeEventListener("resize",this.boundDrawFn),window.removeEventListener("orientationchange",this.boundDrawFn);}},{key:"setup",value:function(){this.makeContainer(),this.updateWidth(),this.makeTooltip(),this.draw(!1,!0);}},{key:"makeContainer",value:function(){this.parent.innerHTML="";var e={inside:this.parent,className:"chart-container"};this.independentWidth&&(e.styles={width:this.independentWidth+"px"}),this.container=t.create("div",e);}},{key:"makeTooltip",value:function(){this.tip=new te({parent:this.container,colors:this.colors}),this.bindTooltip();}},{key:"bindTooltip",value:function(){}},{key:"draw",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e&&i(this.parent)||(this.updateWidth(),this.calc(e),this.makeChartArea(),this.setupComponents(),this.components.forEach(function(e){return e.setup(t.drawArea)}),this.render(this.components,!1),n&&(this.data=this.realData,setTimeout(function(){t.update(t.data);},this.initTimeout)),this.renderLegend(),this.setupNavigation(n));}},{key:"calc",value:function(){}},{key:"updateWidth",value:function(){this.baseWidth=a(this.parent),this.width=this.baseWidth-u(this.measures);}},{key:"makeChartArea",value:function(){this.svg&&this.container.removeChild(this.svg);var t=this.measures;this.svg=C(this.container,"frappe-chart chart",this.baseWidth,this.baseHeight),this.svgDefs=D(this.svg),this.title.length&&(this.titleEL=Y("title",t.margins.left,t.margins.top,this.title,{fontSize:t.titleFontSize,fill:"#666666",dy:t.titleFontSize}));var e=r(t);this.drawArea=N(this.type+"-chart chart-draw-area","translate("+o(t)+", "+e+")"),this.config.showLegend&&(e+=this.height+t.paddings.bottom,this.legendArea=N("chart-legend","translate("+o(t)+", "+e+")")),this.title.length&&this.svg.appendChild(this.titleEL),this.svg.appendChild(this.drawArea),this.config.showLegend&&this.svg.appendChild(this.legendArea),this.updateTipOffset(o(t),r(t));}},{key:"updateTipOffset",value:function(t,e){this.tip.offset={x:t,y:e};}},{key:"setupComponents",value:function(){this.components=new Map;}},{key:"update",value:function(t){t||console.error("No data to update."),this.data=this.prepareData(t),this.calc(),this.render(this.components,this.config.animate),this.renderLegend();}},{key:"render",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.components,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.config.isNavigable&&this.overlays.map(function(t){return t.parentNode.removeChild(t)});var n=[];e.forEach(function(t){n=n.concat(t.update(i));}),n.length>0?(ut(this.container,this.svg,n),setTimeout(function(){e.forEach(function(t){return t.make()}),t.updateNav();},400)):(e.forEach(function(t){return t.make()}),this.updateNav());}},{key:"updateNav",value:function(){this.config.isNavigable&&(this.makeOverlay(),this.bindUnits());}},{key:"renderLegend",value:function(){}},{key:"setupNavigation",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.config.isNavigable&&e&&(this.bindOverlay(),this.keyActions={13:this.onEnterKey.bind(this),37:this.onLeftArrow.bind(this),38:this.onUpArrow.bind(this),39:this.onRightArrow.bind(this),40:this.onDownArrow.bind(this)},document.addEventListener("keydown",function(e){n(t.container)&&(e=e||window.event,t.keyActions[e.keyCode]&&t.keyActions[e.keyCode]());}));}},{key:"makeOverlay",value:function(){}},{key:"updateOverlay",value:function(){}},{key:"bindOverlay",value:function(){}},{key:"bindUnits",value:function(){}},{key:"onLeftArrow",value:function(){}},{key:"onRightArrow",value:function(){}},{key:"onUpArrow",value:function(){}},{key:"onDownArrow",value:function(){}},{key:"onEnterKey",value:function(){}},{key:"addDataPoint",value:function(){}},{key:"removeDataPoint",value:function(){}},{key:"getDataPoint",value:function(){}},{key:"setCurrentDataPoint",value:function(){}},{key:"updateDataset",value:function(){}},{key:"export",value:function(){var t=ct(this.svg);ht(this.title||"Chart",[t]);}}]),e}(),be=function(t){function e(t,i){return Ht(this,e),Bt(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i))}return Yt(e,t),It(e,[{key:"configure",value:function(t){Rt(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"configure",this).call(this,t),this.config.formatTooltipY=(t.tooltipOptions||{}).formatTooltipY,this.config.maxSlices=t.maxSlices||20,this.config.maxLegendPoints=t.maxLegendPoints||20;}},{key:"calc",value:function(){var t=this,e=this.state,i=this.config.maxSlices;e.sliceTotals=[];var n=this.data.labels.map(function(e,i){var n=0;return t.data.datasets.map(function(t){n+=t.values[i];}),[n,e]}).filter(function(t){return t[0]>=0}),a=n;if(n.length>i){n.sort(function(t,e){return e[0]-t[0]}),a=n.slice(0,i-1);var s=0;n.slice(i-1).map(function(t){s+=t[0];}),a.push([s,"Rest"]),this.colors[i-1]="grey";}e.labels=[],a.map(function(t){e.sliceTotals.push(v(t[0])),e.labels.push(t[1]);}),e.grandTotal=e.sliceTotals.reduce(function(t,e){return t+e},0),this.center={x:this.width/2,y:this.height/2};}},{key:"renderLegend",value:function(){var t=this,e=this.state;this.legendArea.textContent="",this.legendTotals=e.sliceTotals.slice(0,this.config.maxLegendPoints);var i=0,n=0;this.legendTotals.map(function(a,s){var r=150,o=Math.floor((t.width-u(t.measures))/r);t.legendTotals.lengtho&&(i=0,n+=20);var l=r*i+5,h=t.config.truncateLegends?b(e.labels[s],r/10):e.labels[s],c=t.config.formatTooltipY?t.config.formatTooltipY(a):a,d=R(l,n,5,t.colors[s],h+": "+c,!1);t.legendArea.appendChild(d),i++;});}}]),e}(ye),xe=7,ke=1e3,we=86400,Ae=["January","February","March","April","May","June","July","August","September","October","November","December"],Pe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Te=function(){function t(e){var i=e.layerClass,n=void 0===i?"":i,a=e.layerTransform,s=void 0===a?"":a,r=e.constants,o=e.getData,l=e.makeElements,u=e.animateElements;Ht(this,t),this.layerTransform=s,this.constants=r,this.makeElements=l,this.getData=o,this.animateElements=u,this.store=[],this.labels=[],this.layerClass=n,this.layerClass="function"==typeof this.layerClass?this.layerClass():this.layerClass,this.refresh();}return It(t,[{key:"refresh",value:function(t){this.data=t||this.getData();}},{key:"setup",value:function(t){this.layer=N(this.layerClass,this.layerTransform,t);}},{key:"make",value:function(){this.render(this.data),this.oldData=this.data;}},{key:"render",value:function(t){var e=this;this.store=this.makeElements(t),this.layer.textContent="",this.store.forEach(function(t){e.layer.appendChild(t);}),this.labels.forEach(function(t){e.layer.appendChild(t);});}},{key:"update",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.refresh();var e=[];return t&&(e=this.animateElements(this.data)||[]),e}}]),t}(),Le={donutSlices:{layerClass:"donut-slices",makeElements:function(t){return t.sliceStrings.map(function(e,i){var n=S(e,"donut-path",t.colors[i],"none",t.strokeWidth);return n.style.transition="transform .3s;",n})},animateElements:function(t){return this.store.map(function(e,i){return st(e,t.sliceStrings[i])})}},pieSlices:{layerClass:"pie-slices",makeElements:function(t){return t.sliceStrings.map(function(e,i){var n=S(e,"pie-path","none",t.colors[i]);return n.style.transition="transform .3s;",n})},animateElements:function(t){return this.store.map(function(e,i){return st(e,t.sliceStrings[i])})}},percentageBars:{layerClass:"percentage-bars",makeElements:function(t){var e=this;return t.xPositions.map(function(i,n){return F(i,0,t.widths[n],e.constants.barHeight,e.constants.barDepth,t.colors[n])})},animateElements:function(t){if(t)return []}},yAxis:{layerClass:"y axis",makeElements:function(t){var e=this;return t.positions.map(function(i,n){return U(i,t.labels[n],e.constants.width,{mode:e.constants.mode,pos:e.constants.pos,shortenNumbers:e.constants.shortenNumbers})})},animateElements:function(t){var e=t.positions,i=t.labels,n=this.oldData.positions,a=this.oldData.labels,s=y(n,e),r=Vt(s,2);n=r[0],e=r[1];var o=y(a,i),l=Vt(o,2);return a=l[0],i=l[1],this.render({positions:n,labels:i}),this.store.map(function(t,i){return tt(t,e[i],n[i])})}},xAxis:{layerClass:"x axis",makeElements:function(t){var e=this;return t.positions.map(function(i,n){return G(i,t.calcLabels[n],e.constants.height,{mode:e.constants.mode,pos:e.constants.pos})})},animateElements:function(t){var e=t.positions,i=t.calcLabels,n=this.oldData.positions,a=this.oldData.calcLabels,s=y(n,e),r=Vt(s,2);n=r[0],e=r[1];var o=y(a,i),l=Vt(o,2);return a=l[0],i=l[1],this.render({positions:n,calcLabels:i}),this.store.map(function(t,i){return Z(t,e[i],n[i])})}},yMarkers:{layerClass:"y-markers",makeElements:function(t){var e=this;return t.map(function(t){return q(t.position,t.label,e.constants.width,{labelPos:t.options.labelPos,mode:"span",lineType:"dashed"})})},animateElements:function(t){var e=y(this.oldData,t),i=Vt(e,2);this.oldData=i[0];var n=(t=i[1]).map(function(t){return t.position}),a=t.map(function(t){return t.label}),s=t.map(function(t){return t.options}),r=this.oldData.map(function(t){return t.position});return this.render(r.map(function(t,e){return {position:r[e],label:a[e],options:s[e]}})),this.store.map(function(t,e){return tt(t,n[e],r[e])})}},yRegions:{layerClass:"y-regions",makeElements:function(t){var e=this;return t.map(function(t){return X(t.startPos,t.endPos,e.constants.width,t.label,{labelPos:t.options.labelPos})})},animateElements:function(t){var e=y(this.oldData,t),i=Vt(e,2);this.oldData=i[0];var n=(t=i[1]).map(function(t){return t.endPos}),a=t.map(function(t){return t.label}),s=t.map(function(t){return t.startPos}),r=t.map(function(t){return t.options}),o=this.oldData.map(function(t){return t.endPos}),l=this.oldData.map(function(t){return t.startPos});this.render(o.map(function(t,e){return {startPos:l[e],endPos:o[e],label:a[e],options:r[e]}}));var u=[];return this.store.map(function(t,e){u=u.concat(et(t,s[e],n[e],o[e]));}),u}},heatDomain:{layerClass:function(){return "heat-domain domain-"+this.constants.index},makeElements:function(t){var e=this,i=this.constants,n=i.index,a=i.colWidth,s=i.rowHeight,r=i.squareSize,o=i.radius,l=i.xTranslate,u=0;return this.serializedSubDomains=[],t.cols.map(function(t,i){1===i&&e.labels.push(Y("domain-name",l,-12,yt(n,!0).toUpperCase(),{fontSize:9})),t.map(function(t,i){if(t.fill){var n={"data-date":t.yyyyMmDd,"data-value":t.dataValue,"data-day":i},a=H("day",l,u,r,o,t.fill,n);e.serializedSubDomains.push(a);}u+=s;}),u=0,l+=a;}),this.serializedSubDomains},animateElements:function(t){if(t)return []}},barGraph:{layerClass:function(){return "dataset-units dataset-bars dataset-"+this.constants.index},makeElements:function(t){var e=this.constants;return this.unitType="bar",this.units=t.yPositions.map(function(i,n){return J(t.xPositions[n],i,t.barWidth,e.color,t.labels[n],n,t.offsets[n],{zeroLine:t.zeroLine,barsWidth:t.barsWidth,minHeight:e.minHeight})}),this.units},animateElements:function(t){var e=t.xPositions,i=t.yPositions,n=t.offsets,a=t.labels,s=this.oldData.xPositions,r=this.oldData.yPositions,o=this.oldData.offsets,l=this.oldData.labels,u=y(s,e),h=Vt(u,2);s=h[0],e=h[1];var c=y(r,i),d=Vt(c,2);r=d[0],i=d[1];var p=y(o,n),f=Vt(p,2);o=f[0],n=f[1];var v=y(l,a),g=Vt(v,2);l=g[0],a=g[1],this.render({xPositions:s,yPositions:r,offsets:o,labels:a,zeroLine:this.oldData.zeroLine,barsWidth:this.oldData.barsWidth,barWidth:this.oldData.barWidth});var m=[];return this.store.map(function(a,s){m=m.concat(it(a,e[s],i[s],t.barWidth,n[s],{zeroLine:t.zeroLine}));}),m}},lineGraph:{layerClass:function(){return "dataset-units dataset-line dataset-"+this.constants.index},makeElements:function(t){var e=this.constants;return this.unitType="dot",this.paths={},e.hideLine||(this.paths=$(t.xPositions,t.yPositions,e.color,{heatline:e.heatline,regionFill:e.regionFill,spline:e.spline},{svgDefs:e.svgDefs,zeroLine:t.zeroLine})),this.units=[],e.hideDots||(this.units=t.yPositions.map(function(i,n){return K(t.xPositions[n],i,t.radius,e.color,e.valuesOverPoints?t.values[n]:"",n)})),Object.values(this.paths).concat(this.units)},animateElements:function(t){var e=t.xPositions,i=t.yPositions,n=t.values,a=this.oldData.xPositions,s=this.oldData.yPositions,r=this.oldData.values,o=y(a,e),l=Vt(o,2);a=l[0],e=l[1];var u=y(s,i),h=Vt(u,2);s=h[0],i=h[1];var c=y(r,n),d=Vt(c,2);r=d[0],n=d[1],this.render({xPositions:a,yPositions:s,values:n,zeroLine:this.oldData.zeroLine,radius:this.oldData.radius});var p=[];return Object.keys(this.paths).length&&(p=p.concat(at(this.paths,e,i,t.zeroLine,this.constants.spline))),this.units.length&&this.units.map(function(t,n){p=p.concat(nt(t,e[n],i[n]));}),p}}},Oe=function(t){function i(t,e){Ht(this,i);var n=Bt(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));return n.type="percentage",n.setup(),n}return Yt(i,t),It(i,[{key:"setMeasures",value:function(t){var e=this.measures;this.barOptions=t.barOptions||{};var i=this.barOptions;i.height=i.height||20,i.depth=i.depth||Jt,e.paddings.right=30,e.legendHeight=60,e.baseHeight=8*(i.height+.5*i.depth);}},{key:"setupComponents",value:function(){var t=this.state,e=[["percentageBars",{barHeight:this.barOptions.height,barDepth:this.barOptions.depth},function(){return {xPositions:t.xPositions,widths:t.widths,colors:this.colors}}.bind(this)]];this.components=new Map(e.map(function(t){var e=wt.apply(void 0,Ut(t));return [t[0],e]}));}},{key:"calc",value:function(){var t=this;Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"calc",this).call(this);var e=this.state;e.xPositions=[],e.widths=[];var n=0;e.sliceTotals.map(function(i){var a=t.width*i/e.grandTotal;e.widths.push(a),e.xPositions.push(n),n+=a;});}},{key:"makeDataByIndex",value:function(){}},{key:"bindTooltip",value:function(){var t=this,i=this.state;this.container.addEventListener("mousemove",function(n){var a=t.components.get("percentageBars").store,s=n.target;if(a.includes(s)){var r=a.indexOf(s),o=e(t.container),l=e(s),u=l.left-o.left+parseInt(s.getAttribute("width"))/2,h=l.top-o.top,c=(t.formattedLabels&&t.formattedLabels.length>0?t.formattedLabels[r]:t.state.labels[r])+": ",d=i.sliceTotals[r]/i.grandTotal;t.tip.setValues(u,h,{name:c,value:(100*d).toFixed(1)+"%"}),t.tip.showTip();}});}}]),i}(be),Me=function(t){function i(t,e){Ht(this,i);var n=Bt(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));return n.type="pie",n.initTimeout=0,n.init=1,n.setup(),n}return Yt(i,t),It(i,[{key:"configure",value:function(t){Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"configure",this).call(this,t),this.mouseMove=this.mouseMove.bind(this),this.mouseLeave=this.mouseLeave.bind(this),this.hoverRadio=t.hoverRadio||.1,this.config.startAngle=t.startAngle||0,this.clockWise=t.clockWise||!1;}},{key:"calc",value:function(){var t=this;Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"calc",this).call(this);var e=this.state;this.radius=this.height>this.width?this.center.x:this.center.y;var n=this.radius,a=this.clockWise,s=e.slicesProperties||[];e.sliceStrings=[],e.slicesProperties=[];var r=180-this.config.startAngle;e.sliceTotals.map(function(i,o){var l=r,u=i/e.grandTotal*360,h=u>180?1:0,c=a?-u:u,d=r+=c,f=p(l,n),v=p(d,n),g=t.init&&s[o],m=void 0,y=void 0;t.init?(m=g?g.startPosition:f,y=g?g.endPosition:f):(m=f,y=v);var b=360===u?_(m,y,t.center,t.radius,a,h):E(m,y,t.center,t.radius,a,h);e.sliceStrings.push(b),e.slicesProperties.push({startPosition:f,endPosition:v,value:i,total:e.grandTotal,startAngle:l,endAngle:d,angle:c});}),this.init=0;}},{key:"setupComponents",value:function(){var t=this.state,e=[["pieSlices",{},function(){return {sliceStrings:t.sliceStrings,colors:this.colors}}.bind(this)]];this.components=new Map(e.map(function(t){var e=wt.apply(void 0,Ut(t));return [t[0],e]}));}},{key:"calTranslateByAngle",value:function(t){var e=this.radius,i=this.hoverRadio,n=p(t.startAngle+t.angle/2,e);return "translate3d("+n.x*i+"px,"+n.y*i+"px,0)"}},{key:"hoverSlice",value:function(t,i,n,a){if(t){var s=this.colors[i];if(n){ot(t,this.calTranslateByAngle(this.state.slicesProperties[i])),t.style.fill=A(s,50);var r=e(this.svg),o=a.pageX-r.left+10,l=a.pageY-r.top-10,u=(this.formatted_labels&&this.formatted_labels.length>0?this.formatted_labels[i]:this.state.labels[i])+": ",h=(100*this.state.sliceTotals[i]/this.state.grandTotal).toFixed(1);this.tip.setValues(o,l,{name:u,value:h+"%"}),this.tip.showTip();}else ot(t,"translate3d(0,0,0)"),this.tip.hideTip(),t.style.fill=s;}}},{key:"bindTooltip",value:function(){this.container.addEventListener("mousemove",this.mouseMove),this.container.addEventListener("mouseleave",this.mouseLeave);}},{key:"mouseMove",value:function(t){var e=t.target,i=this.components.get("pieSlices").store,n=this.curActiveSliceIndex,a=this.curActiveSlice;if(i.includes(e)){var s=i.indexOf(e);this.hoverSlice(a,n,!1),this.curActiveSlice=e,this.curActiveSliceIndex=s,this.hoverSlice(e,s,!0,t);}else this.mouseLeave();}},{key:"mouseLeave",value:function(){this.hoverSlice(this.curActiveSlice,this.curActiveSliceIndex,!1);}}]),i}(be),Ce=function(t){function e(t,i){Ht(this,e);var n=Bt(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i));n.type="heatmap",n.countLabel=i.countLabel||"";var a=["Sunday","Monday"],s=a.includes(i.startSubDomain)?i.startSubDomain:"Sunday";return n.startSubDomainIndex=a.indexOf(s),n.setup(),n}return Yt(e,t),It(e,[{key:"setMeasures",value:function(t){var e=this.measures;this.discreteDomains=0===t.discreteDomains?0:1,e.paddings.top=36,e.paddings.bottom=0,e.legendHeight=24,e.baseHeight=12*xe+l(e);var i=this.data,n=this.discreteDomains?12:0;this.independentWidth=12*(vt(i.start,i.end)+n)+u(e);}},{key:"updateWidth",value:function(){var t=this.discreteDomains?12:0,e=this.state.noOfWeeks?this.state.noOfWeeks:52;this.baseWidth=12*(e+t)+u(this.measures);}},{key:"prepareData",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data;if(t.start&&t.end&&t.start>t.end)throw new Error("Start date cannot be greater than end date.");if(t.start||(t.start=new Date,t.start.setFullYear(t.start.getFullYear()-1)),t.end||(t.end=new Date),t.dataPoints=t.dataPoints||{},parseInt(Object.keys(t.dataPoints)[0])>1e5){var e={};Object.keys(t.dataPoints).forEach(function(i){var n=new Date(i*ke);e[pt(n)]=t.dataPoints[i];}),t.dataPoints=e;}return t}},{key:"calc",value:function(){var t=this.state;t.start=ft(this.data.start),t.end=ft(this.data.end),t.firstWeekStart=ft(t.start),t.noOfWeeks=vt(t.start,t.end),t.distribution=St(Object.values(this.data.dataPoints),5),t.domainConfigs=this.getDomains();}},{key:"setupComponents",value:function(){var t=this,e=this.state,i=this.discreteDomains?0:1,n=e.domainConfigs.map(function(n,a){return ["heatDomain",{index:n.index,colWidth:12,rowHeight:12,squareSize:10,radius:t.rawChartArgs.radius||0,xTranslate:12*e.domainConfigs.filter(function(t,e){return e1&&void 0!==arguments[1]?arguments[1]:"",i=[t.getMonth(),t.getFullYear()],n=i[0],a=i[1],s=xt(t),r={index:n,cols:[]};kt(e=ft(e)||bt(n,a),1);for(var o=vt(s,e),l=[],u=void 0,h=0;h2&&void 0!==arguments[2]&&arguments[2],n=this.state,a=ft(t),s=[],r=0;r=n.start&&a<=n.end;i||a.getMonth()!==e||!l?o.yyyyMmDd=pt(a):o=this.getSubDomainConfig(a),s.push(o);}return s}},{key:"getSubDomainConfig",value:function(t){var e=pt(t),i=this.data.dataPoints[e];return {yyyyMmDd:e,dataValue:i||0,fill:this.colors[Et(i,this.state.distribution)]}}}]),e}(ye),De=function(t){function i(t,e){Ht(this,i);var n=Bt(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));return n.barOptions=e.barOptions||{},n.lineOptions=e.lineOptions||{},n.type=e.type||"line",n.init=1,n.setup(),n}return Yt(i,t),It(i,[{key:"setMeasures",value:function(){this.data.datasets.length<=1&&(this.config.showLegend=0,this.measures.paddings.bottom=30);}},{key:"configure",value:function(t){Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"configure",this).call(this,t),t.axisOptions=t.axisOptions||{},t.tooltipOptions=t.tooltipOptions||{},this.config.xAxisMode=t.axisOptions.xAxisMode||"span",this.config.yAxisMode=t.axisOptions.yAxisMode||"span",this.config.xIsSeries=t.axisOptions.xIsSeries||0,this.config.shortenYAxisNumbers=t.axisOptions.shortenYAxisNumbers||0,this.config.formatTooltipX=t.tooltipOptions.formatTooltipX,this.config.formatTooltipY=t.tooltipOptions.formatTooltipY,this.config.valuesOverPoints=t.valuesOverPoints;}},{key:"prepareData",value:function(){return _t(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data,this.type)}},{key:"prepareFirstData",value:function(){return zt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data)}},{key:"calc",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.calcXPositions(),t||this.calcYAxisParameters(this.getAllYValues(),"line"===this.type),this.makeDataByIndex();}},{key:"calcXPositions",value:function(){var t=this.state,e=this.data.labels;t.datasetLength=e.length,t.unitWidth=this.width/t.datasetLength,t.xOffset=t.unitWidth/2,t.xAxis={labels:e,positions:e.map(function(e,i){return h(t.xOffset+i*t.unitWidth)})};}},{key:"calcYAxisParameters",value:function(t){var e=Lt(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"false"),i=this.height/Ct(e),n=Mt(e)*i,a=this.height-Ot(e)*n;this.state.yAxis={labels:e,positions:e.map(function(t){return a-t*i}),scaleMultiplier:i,zeroLine:a},this.calcDatasetPoints(),this.calcYExtremes(),this.calcYRegions();}},{key:"calcDatasetPoints",value:function(){var t=this.state,e=function(e){return e.map(function(e){return Dt(e,t.yAxis)})};t.datasets=this.data.datasets.map(function(t,i){var n=t.values,a=t.cumulativeYs||[];return {name:t.name&&t.name.replace(/<|>|&/g,function(t){return "&"==t?"&":"<"==t?"<":">"}),index:i,chartType:t.chartType,values:n,yPositions:e(n),cumulativeYs:a,cumulativeYPos:e(a)}});}},{key:"calcYExtremes",value:function(){var t=this.state;if(this.barOptions.stacked)return void(t.yExtremes=t.datasets[t.datasets.length-1].cumulativeYPos);t.yExtremes=new Array(t.datasetLength).fill(9999),t.datasets.map(function(e){e.yPositions.map(function(e,i){er(n)?t.mapTooltipXPosition(s):t.tip.hideTip();});}},{key:"mapTooltipXPosition",value:function(t){var e=this.state;if(e.yExtremes){var i=Nt(t,e.xAxis.positions,!0);if(i>=0){var n=this.dataByIndex[i];this.tip.setValues(n.xPos+this.tip.offset.x,n.yExtreme+this.tip.offset.y,{name:n.formattedLabel,value:""},n.values,i),this.tip.showTip();}}}},{key:"renderLegend",value:function(){var t=this,e=this.data;e.datasets.length>1&&(this.legendArea.textContent="",e.datasets.map(function(e,i){var n=I(100*i,"0",100,t.colors[i],e.name,t.config.truncateLegends);t.legendArea.appendChild(n);}));}},{key:"makeOverlay",value:function(){var t=this;if(this.init)return void(this.init=0);this.overlayGuides&&this.overlayGuides.forEach(function(t){var e=t.overlay;e.parentNode.removeChild(e);}),this.overlayGuides=this.dataUnitComponents.map(function(t){return {type:t.unitType,overlay:void 0,units:t.units}}),void 0===this.state.currentIndex&&(this.state.currentIndex=this.state.datasetLength-1),this.overlayGuides.map(function(e){var i=e.units[t.state.currentIndex];e.overlay=ue[e.type](i),t.drawArea.appendChild(e.overlay);});}},{key:"updateOverlayGuides",value:function(){this.overlayGuides&&this.overlayGuides.forEach(function(t){var e=t.overlay;e.parentNode.removeChild(e);});}},{key:"bindOverlay",value:function(){var t=this;this.parent.addEventListener("data-select",function(){t.updateOverlay();});}},{key:"bindUnits",value:function(){var t=this;this.dataUnitComponents.map(function(e){e.units.map(function(e){e.addEventListener("click",function(){var i=e.getAttribute("data-point-index");t.setCurrentDataPoint(i);});});}),this.tip.container.addEventListener("click",function(){var e=t.tip.container.getAttribute("data-point-index");t.setCurrentDataPoint(e);});}},{key:"updateOverlay",value:function(){var t=this;this.overlayGuides.map(function(e){var i=e.units[t.state.currentIndex];he[e.type](i,e.overlay);});}},{key:"onLeftArrow",value:function(){this.setCurrentDataPoint(this.state.currentIndex-1);}},{key:"onRightArrow",value:function(){this.setCurrentDataPoint(this.state.currentIndex+1);}},{key:"getDataPoint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.currentIndex,e=this.state;return {index:t,label:e.xAxis.labels[t],values:e.datasets.map(function(e){return e.values[t]})}}},{key:"setCurrentDataPoint",value:function(t){var e=this.state;(t=parseInt(t))<0&&(t=0),t>=e.xAxis.labels.length&&(t=e.xAxis.labels.length-1),t!==e.currentIndex&&(e.currentIndex=t,s(this.parent,"data-select",this.getDataPoint()));}},{key:"addDataPoint",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.state.datasetLength;Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"addDataPoint",this).call(this,t,e,n),this.data.labels.splice(n,0,t),this.data.datasets.map(function(t,i){t.values.splice(n,0,e[i]);}),this.update(this.data);}},{key:"removeDataPoint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.datasetLength-1;this.data.labels.length<=1||(Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"removeDataPoint",this).call(this,t),this.data.labels.splice(t,1),this.data.datasets.map(function(e){e.values.splice(t,1);}),this.update(this.data));}},{key:"updateDataset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.data.datasets[e].values=t,this.update(this.data);}},{key:"updateDatasets",value:function(t){this.data.datasets.map(function(e,i){t[i]&&(e.values=t[i]);}),this.update(this.data);}}]),i}(ye),Ne=function(t){function i(t,e){Ht(this,i);var n=Bt(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));return n.type="donut",n.initTimeout=0,n.init=1,n.setup(),n}return Yt(i,t),It(i,[{key:"configure",value:function(t){Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"configure",this).call(this,t),this.mouseMove=this.mouseMove.bind(this),this.mouseLeave=this.mouseLeave.bind(this),this.hoverRadio=t.hoverRadio||.1,this.config.startAngle=t.startAngle||0,this.clockWise=t.clockWise||!1,this.strokeWidth=t.strokeWidth||30;}},{key:"calc",value:function(){var t=this;Rt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"calc",this).call(this);var e=this.state;this.radius=this.height>this.width?this.center.x-this.strokeWidth/2:this.center.y-this.strokeWidth/2;var n=this.radius,a=this.clockWise,s=e.slicesProperties||[];e.sliceStrings=[],e.slicesProperties=[];var r=180-this.config.startAngle;e.sliceTotals.map(function(i,o){var l=r,u=i/e.grandTotal*360,h=u>180?1:0,c=a?-u:u,d=r+=c,f=p(l,n),v=p(d,n),g=t.init&&s[o],m=void 0,y=void 0;t.init?(m=g?g.startPosition:f,y=g?g.endPosition:f):(m=f,y=v);var b=360===u?W(m,y,t.center,t.radius,t.clockWise,h):z(m,y,t.center,t.radius,t.clockWise,h);e.sliceStrings.push(b),e.slicesProperties.push({startPosition:f,endPosition:v,value:i,total:e.grandTotal,startAngle:l,endAngle:d,angle:c});}),this.init=0;}},{key:"setupComponents",value:function(){var t=this.state,e=[["donutSlices",{},function(){return {sliceStrings:t.sliceStrings,colors:this.colors,strokeWidth:this.strokeWidth}}.bind(this)]];this.components=new Map(e.map(function(t){var e=wt.apply(void 0,Ut(t));return [t[0],e]}));}},{key:"calTranslateByAngle",value:function(t){var e=this.radius,i=this.hoverRadio,n=p(t.startAngle+t.angle/2,e);return "translate3d("+n.x*i+"px,"+n.y*i+"px,0)"}},{key:"hoverSlice",value:function(t,i,n,a){if(t){var s=this.colors[i];if(n){ot(t,this.calTranslateByAngle(this.state.slicesProperties[i])),t.style.stroke=A(s,50);var r=e(this.svg),o=a.pageX-r.left+10,l=a.pageY-r.top-10,u=(this.formatted_labels&&this.formatted_labels.length>0?this.formatted_labels[i]:this.state.labels[i])+": ",h=(100*this.state.sliceTotals[i]/this.state.grandTotal).toFixed(1);this.tip.setValues(o,l,{name:u,value:h+"%"}),this.tip.showTip();}else ot(t,"translate3d(0,0,0)"),this.tip.hideTip(),t.style.stroke=s;}}},{key:"bindTooltip",value:function(){this.container.addEventListener("mousemove",this.mouseMove),this.container.addEventListener("mouseleave",this.mouseLeave);}},{key:"mouseMove",value:function(t){var e=t.target,i=this.components.get("donutSlices").store,n=this.curActiveSliceIndex,a=this.curActiveSlice;if(i.includes(e)){var s=i.indexOf(e);this.hoverSlice(a,n,!1),this.curActiveSlice=e,this.curActiveSliceIndex=s,this.hoverSlice(e,s,!0,t);}else this.mouseLeave();}},{key:"mouseLeave",value:function(){this.hoverSlice(this.curActiveSlice,this.curActiveSliceIndex,!1);}}]),i}(be),Se={bar:De,line:De,percentage:Oe,heatmap:Ce,pie:Me,donut:Ne},Ee=function t(e,i){return Ht(this,t),jt(i.type,e,i)},_e=Object.freeze({Chart:Ee,PercentageChart:Oe,PieChart:Me,Heatmap:Ce,AxisChart:De}),ze={};return ze.NAME="Frappe Charts",ze.VERSION="1.6.2",ze=Object.assign({},ze,_e)}); + + }); + + /* node_modules\svelte-frappe-charts\src\components\base.svelte generated by Svelte v3.46.4 */ + const file$6 = "node_modules\\svelte-frappe-charts\\src\\components\\base.svelte"; + + function create_fragment$6(ctx) { + let div; + let mounted; + let dispose; + + const block = { + c: function create() { + div = element("div"); + add_location(div, file$6, 89, 0, 2072); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + /*div_binding*/ ctx[18](div); + + if (!mounted) { + dispose = listen_dev(div, "data-select", /*data_select_handler*/ ctx[17], false, false, false); + mounted = true; + } + }, + p: noop, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + /*div_binding*/ ctx[18](null); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$6.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$6($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Base', slots, []); + + let { data = { + labels: [], + datasets: [{ values: [] }], + yMarkers: {}, + yRegions: [] + } } = $$props; + + let { title = '' } = $$props; + let { type = 'line' } = $$props; + let { height = 300 } = $$props; + let { animate = true } = $$props; + let { axisOptions = {} } = $$props; + let { barOptions = {} } = $$props; + let { lineOptions = {} } = $$props; + let { tooltipOptions = {} } = $$props; + let { colors = [] } = $$props; + let { valuesOverPoints = 0 } = $$props; + let { isNavigable = false } = $$props; + let { maxSlices = 3 } = $$props; + + /** + * COMPONENT + */ + // The Chart returned from frappe + let chart = null; + + // DOM node for frappe to latch onto + let chartRef; + + // Helper HOF for calling a fn only if chart exists + function ifChartThen(fn) { + return function ifChart(...args) { + if (chart) { + return fn(...args); + } + }; + } + + const addDataPoint = ifChartThen((label, valueFromEachDataset, index) => chart.addDataPoint(label, valueFromEachDataset, index)); + const removeDataPoint = ifChartThen(index => chart.removeDataPoint(index)); + const exportChart = ifChartThen(() => chart.export()); + + // Update the chart when incoming data changes + const updateChart = ifChartThen(newData => chart.update(newData)); + + /** + * Handle initializing the chart when this Svelte component mounts + */ + onMount(() => { + chart = new frappeCharts_min_umd.Chart(chartRef, + { + data, + title, + type, + height, + animate, + colors, + axisOptions, + barOptions, + lineOptions, + tooltipOptions, + valuesOverPoints, + isNavigable, + maxSlices + }); + }); + + // Mark Chart references for garbage collection when component is unmounted + onDestroy(() => { + chart = null; + }); + + const writable_props = [ + 'data', + 'title', + 'type', + 'height', + 'animate', + 'axisOptions', + 'barOptions', + 'lineOptions', + 'tooltipOptions', + 'colors', + 'valuesOverPoints', + 'isNavigable', + 'maxSlices' + ]; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + function data_select_handler(event) { + bubble.call(this, $$self, event); + } + + function div_binding($$value) { + binding_callbacks[$$value ? 'unshift' : 'push'](() => { + chartRef = $$value; + $$invalidate(0, chartRef); + }); + } + + $$self.$$set = $$props => { + if ('data' in $$props) $$invalidate(1, data = $$props.data); + if ('title' in $$props) $$invalidate(2, title = $$props.title); + if ('type' in $$props) $$invalidate(3, type = $$props.type); + if ('height' in $$props) $$invalidate(4, height = $$props.height); + if ('animate' in $$props) $$invalidate(5, animate = $$props.animate); + if ('axisOptions' in $$props) $$invalidate(6, axisOptions = $$props.axisOptions); + if ('barOptions' in $$props) $$invalidate(7, barOptions = $$props.barOptions); + if ('lineOptions' in $$props) $$invalidate(8, lineOptions = $$props.lineOptions); + if ('tooltipOptions' in $$props) $$invalidate(9, tooltipOptions = $$props.tooltipOptions); + if ('colors' in $$props) $$invalidate(10, colors = $$props.colors); + if ('valuesOverPoints' in $$props) $$invalidate(11, valuesOverPoints = $$props.valuesOverPoints); + if ('isNavigable' in $$props) $$invalidate(12, isNavigable = $$props.isNavigable); + if ('maxSlices' in $$props) $$invalidate(13, maxSlices = $$props.maxSlices); + }; + + $$self.$capture_state = () => ({ + onMount, + onDestroy, + Chart: frappeCharts_min_umd.Chart, + data, + title, + type, + height, + animate, + axisOptions, + barOptions, + lineOptions, + tooltipOptions, + colors, + valuesOverPoints, + isNavigable, + maxSlices, + chart, + chartRef, + ifChartThen, + addDataPoint, + removeDataPoint, + exportChart, + updateChart + }); + + $$self.$inject_state = $$props => { + if ('data' in $$props) $$invalidate(1, data = $$props.data); + if ('title' in $$props) $$invalidate(2, title = $$props.title); + if ('type' in $$props) $$invalidate(3, type = $$props.type); + if ('height' in $$props) $$invalidate(4, height = $$props.height); + if ('animate' in $$props) $$invalidate(5, animate = $$props.animate); + if ('axisOptions' in $$props) $$invalidate(6, axisOptions = $$props.axisOptions); + if ('barOptions' in $$props) $$invalidate(7, barOptions = $$props.barOptions); + if ('lineOptions' in $$props) $$invalidate(8, lineOptions = $$props.lineOptions); + if ('tooltipOptions' in $$props) $$invalidate(9, tooltipOptions = $$props.tooltipOptions); + if ('colors' in $$props) $$invalidate(10, colors = $$props.colors); + if ('valuesOverPoints' in $$props) $$invalidate(11, valuesOverPoints = $$props.valuesOverPoints); + if ('isNavigable' in $$props) $$invalidate(12, isNavigable = $$props.isNavigable); + if ('maxSlices' in $$props) $$invalidate(13, maxSlices = $$props.maxSlices); + if ('chart' in $$props) chart = $$props.chart; + if ('chartRef' in $$props) $$invalidate(0, chartRef = $$props.chartRef); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + $$self.$$.update = () => { + if ($$self.$$.dirty & /*data*/ 2) { + updateChart(data); + } + }; + + return [ + chartRef, + data, + title, + type, + height, + animate, + axisOptions, + barOptions, + lineOptions, + tooltipOptions, + colors, + valuesOverPoints, + isNavigable, + maxSlices, + addDataPoint, + removeDataPoint, + exportChart, + data_select_handler, + div_binding + ]; + } + + class Base extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$6, create_fragment$6, safe_not_equal, { + data: 1, + title: 2, + type: 3, + height: 4, + animate: 5, + axisOptions: 6, + barOptions: 7, + lineOptions: 8, + tooltipOptions: 9, + colors: 10, + valuesOverPoints: 11, + isNavigable: 12, + maxSlices: 13, + addDataPoint: 14, + removeDataPoint: 15, + exportChart: 16 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Base", + options, + id: create_fragment$6.name + }); + } + + get data() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set data(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get title() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set title(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get type() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set type(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get height() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set height(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get animate() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set animate(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get axisOptions() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set axisOptions(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get barOptions() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set barOptions(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get lineOptions() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set lineOptions(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get tooltipOptions() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set tooltipOptions(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get colors() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set colors(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get valuesOverPoints() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set valuesOverPoints(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get isNavigable() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set isNavigable(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get maxSlices() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set maxSlices(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get addDataPoint() { + return this.$$.ctx[14]; + } + + set addDataPoint(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get removeDataPoint() { + return this.$$.ctx[15]; + } + + set removeDataPoint(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get exportChart() { + return this.$$.ctx[16]; + } + + set exportChart(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + var Base$1 = Base; + + /* src\pages\Utilities.svelte generated by Svelte v3.46.4 */ + + const { console: console_1$2 } = globals; + const file$5 = "src\\pages\\Utilities.svelte"; + + // (47:0) + function create_default_slot_1$2(ctx) { + let button; + let mounted; + let dispose; + + const block = { + c: function create() { + button = element("button"); + button.textContent = `${"Проверить"}`; + attr_dev(button, "class", "btn-lg"); + add_location(button, file$5, 47, 2, 1370); + }, + m: function mount(target, anchor) { + insert_dev(target, button, anchor); + + if (!mounted) { + dispose = listen_dev(button, "click", /*click_handler*/ ctx[3], false, false, false); + mounted = true; + } + }, + p: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(button); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_1$2.name, + type: "slot", + source: "(47:0) ", + ctx + }); + + return block; + } + + // (51:0) + function create_default_slot$4(ctx) { + let chart; + let current; + + chart = new Base$1({ + props: { data: /*datachart*/ ctx[0], type: "line" }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(chart.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(chart, target, anchor); + current = true; + }, + p: noop, + i: function intro(local) { + if (current) return; + transition_in(chart.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(chart.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(chart, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$4.name, + type: "slot", + source: "(51:0) ", + ctx + }); + + return block; + } + + function create_fragment$5(ctx) { + let alarm0; + let t; + let alarm1; + let current; + + alarm0 = new Alarm({ + props: { + $$slots: { default: [create_default_slot_1$2] }, + $$scope: { ctx } + }, + $$inline: true + }); + + alarm1 = new Alarm({ + props: { + $$slots: { default: [create_default_slot$4] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(alarm0.$$.fragment); + t = space(); + create_component(alarm1.$$.fragment); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + mount_component(alarm0, target, anchor); + insert_dev(target, t, anchor); + mount_component(alarm1, target, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + const alarm0_changes = {}; + + if (dirty & /*$$scope*/ 64) { + alarm0_changes.$$scope = { dirty, ctx }; + } + + alarm0.$set(alarm0_changes); + const alarm1_changes = {}; + + if (dirty & /*$$scope*/ 64) { + alarm1_changes.$$scope = { dirty, ctx }; + } + + alarm1.$set(alarm1_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(alarm0.$$.fragment, local); + transition_in(alarm1.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(alarm0.$$.fragment, local); + transition_out(alarm1.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(alarm0, detaching); + if (detaching) detach_dev(t); + destroy_component(alarm1, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$5.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function joinWithoutDupes(A, B) { + let output = []; + const a = new Set(A.map(x => x.item)); + const b = new Set(B.map(x => x.item)); + output = [...A.filter(x => !b.has(x.item)), ...B.filter(x => !a.has(x.item))]; + console.log(output); + } + + function joinWithoutDupesAndRmooving(A, B) { + var ids = new Set(A.map(d => d.ID)); + let output = [...A, ...B.filter(d => !ids.has(d.ID))]; + console.log(output); + } + + function instance$5($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Utilities', slots, []); + + let datachart = { + labels: ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"], + datasets: [{ values: [10, 12, 3, 9, 8, 15, 9] }] + }; + + //объединение двух массивов с удалением дубликатов полностью + let a = [{ item: "1", description: "lorem" }, { item: "2", description: "impsum" }]; + + let b = [{ item: "2", description: "dolor" }, { item: "4", description: "enum" }]; + + //объединение двух массивов с удалением дубликатов, оставляя один из дубликатов + let c = [{ ID: "1", description: "lorem" }, { ID: "2", description: "impsum" }]; + + let d = [{ ID: "2", description: "dolor" }, { ID: "4", description: "enum" }]; + const writable_props = []; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$2.warn(` was created with unknown prop '${key}'`); + }); + + const click_handler = () => joinWithoutDupesAndRmooving(c, d); + + $$self.$capture_state = () => ({ + Card, + Alarm, + Chart: Base$1, + datachart, + a, + b, + joinWithoutDupes, + c, + d, + joinWithoutDupesAndRmooving + }); + + $$self.$inject_state = $$props => { + if ('datachart' in $$props) $$invalidate(0, datachart = $$props.datachart); + if ('a' in $$props) a = $$props.a; + if ('b' in $$props) b = $$props.b; + if ('c' in $$props) $$invalidate(1, c = $$props.c); + if ('d' in $$props) $$invalidate(2, d = $$props.d); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [datachart, c, d, click_handler]; + } + + class Utilities extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$5, create_fragment$5, safe_not_equal, {}); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Utilities", + options, + id: create_fragment$5.name + }); + } + } + + /* src\pages\Log.svelte generated by Svelte v3.46.4 */ + const file$4 = "src\\pages\\Log.svelte"; + + function get_each_context$2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[1] = list[i]; + child_ctx[3] = i; + return child_ctx; + } + + // (8:2) {#each coreMessages as message, i} + function create_each_block$2(ctx) { + let div; + let t_value = /*message*/ ctx[1].msg + ""; + let t; + let div_class_value; + + const block = { + c: function create() { + div = element("div"); + t = text(t_value); + + attr_dev(div, "class", div_class_value = /*message*/ ctx[1].msg.toString().includes("[E]") + ? "text-red-500" + : "text-black"); + + add_location(div, file$4, 8, 4, 166); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + append_dev(div, t); + }, + p: function update(ctx, dirty) { + if (dirty & /*coreMessages*/ 1 && t_value !== (t_value = /*message*/ ctx[1].msg + "")) set_data_dev(t, t_value); + + if (dirty & /*coreMessages*/ 1 && div_class_value !== (div_class_value = /*message*/ ctx[1].msg.toString().includes("[E]") + ? "text-red-500" + : "text-black")) { + attr_dev(div, "class", div_class_value); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block$2.name, + type: "each", + source: "(8:2) {#each coreMessages as message, i}", + ctx + }); + + return block; + } + + // (7:0) + function create_default_slot$3(ctx) { + let each_1_anchor; + let each_value = /*coreMessages*/ ctx[0]; + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$2(get_each_context$2(ctx, each_value, i)); + } + + const block = { + c: function create() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = empty(); + }, + m: function mount(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + insert_dev(target, each_1_anchor, anchor); + }, + p: function update(ctx, dirty) { + if (dirty & /*coreMessages*/ 1) { + each_value = /*coreMessages*/ ctx[0]; + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$2(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block$2(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value.length; + } + }, + d: function destroy(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) detach_dev(each_1_anchor); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$3.name, + type: "slot", + source: "(7:0) ", + ctx + }); + + return block; + } + + function create_fragment$4(ctx) { + let card; + let current; + + card = new Card({ + props: { + title: "Лог", + $$slots: { default: [create_default_slot$3] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(card.$$.fragment); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + mount_component(card, target, anchor); + current = true; + }, + p: function update(ctx, [dirty]) { + const card_changes = {}; + + if (dirty & /*$$scope, coreMessages*/ 17) { + card_changes.$$scope = { dirty, ctx }; + } + + card.$set(card_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(card.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(card.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(card, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$4.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$4($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Log', slots, []); + let { coreMessages } = $$props; + const writable_props = ['coreMessages']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('coreMessages' in $$props) $$invalidate(0, coreMessages = $$props.coreMessages); + }; + + $$self.$capture_state = () => ({ Card, coreMessages }); + + $$self.$inject_state = $$props => { + if ('coreMessages' in $$props) $$invalidate(0, coreMessages = $$props.coreMessages); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [coreMessages]; + } + + class Log extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$4, create_fragment$4, safe_not_equal, { coreMessages: 0 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Log", + options, + id: create_fragment$4.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*coreMessages*/ ctx[0] === undefined && !('coreMessages' in props)) { + console.warn(" was created without expected prop 'coreMessages'"); + } + } + + get coreMessages() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set coreMessages(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\pages\List.svelte generated by Svelte v3.46.4 */ + + const { console: console_1$1 } = globals; + const file$3 = "src\\pages\\List.svelte"; + + function get_each_context$1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[11] = list[i]; + child_ctx[13] = i; + return child_ctx; + } + + // (41:8) {#each deviceList as device, i} + function create_each_block$1(ctx) { + let tr; + let td0; + let t0_value = /*device*/ ctx[11].name + ""; + let t0; + let t1; + let td1; + let a; + let t2_value = /*device*/ ctx[11].ip + ""; + let t2; + let a_href_value; + let t3; + let td2; + let t4_value = /*device*/ ctx[11].id + ""; + let t4; + let t5; + let td3; + let t6_value = (/*device*/ ctx[11].status ? "online" : "offline") + ""; + let t6; + let td3_class_value; + let t7; + let td4; + let crossicon; + let current; + + crossicon = new Cross({ + props: { i: /*i*/ ctx[13], click: /*func*/ ctx[5] }, + $$inline: true + }); + + const block = { + c: function create() { + tr = element("tr"); + td0 = element("td"); + t0 = text(t0_value); + t1 = space(); + td1 = element("td"); + a = element("a"); + t2 = text(t2_value); + t3 = space(); + td2 = element("td"); + t4 = text(t4_value); + t5 = space(); + td3 = element("td"); + t6 = text(t6_value); + t7 = space(); + td4 = element("td"); + create_component(crossicon.$$.fragment); + attr_dev(td0, "class", "tbl-bdy-lg ipt-lg w-full"); + add_location(td0, file$3, 42, 12, 1214); + attr_dev(a, "href", a_href_value = "http://" + /*device*/ ctx[11].ip); + add_location(a, file$3, 43, 49, 1320); + attr_dev(td1, "class", "tbl-bdy-lg ipt-lg w-full"); + add_location(td1, file$3, 43, 12, 1283); + attr_dev(td2, "class", "tbl-bdy-lg ipt-lg w-full"); + add_location(td2, file$3, 44, 12, 1386); + attr_dev(td3, "class", td3_class_value = "tbl-bdy-lg ipt-lg w-full " + (/*device*/ ctx[11].status ? 'bg-green-50' : 'bg-red-50')); + add_location(td3, file$3, 45, 12, 1453); + attr_dev(td4, "class", "tbl-bdy-lg"); + add_location(td4, file$3, 46, 12, 1593); + attr_dev(tr, "class", "txt-sz txt-pad"); + add_location(tr, file$3, 41, 10, 1173); + }, + m: function mount(target, anchor) { + insert_dev(target, tr, anchor); + append_dev(tr, td0); + append_dev(td0, t0); + append_dev(tr, t1); + append_dev(tr, td1); + append_dev(td1, a); + append_dev(a, t2); + append_dev(tr, t3); + append_dev(tr, td2); + append_dev(td2, t4); + append_dev(tr, t5); + append_dev(tr, td3); + append_dev(td3, t6); + append_dev(tr, t7); + append_dev(tr, td4); + mount_component(crossicon, td4, null); + current = true; + }, + p: function update(ctx, dirty) { + if ((!current || dirty & /*deviceList*/ 1) && t0_value !== (t0_value = /*device*/ ctx[11].name + "")) set_data_dev(t0, t0_value); + if ((!current || dirty & /*deviceList*/ 1) && t2_value !== (t2_value = /*device*/ ctx[11].ip + "")) set_data_dev(t2, t2_value); + + if (!current || dirty & /*deviceList*/ 1 && a_href_value !== (a_href_value = "http://" + /*device*/ ctx[11].ip)) { + attr_dev(a, "href", a_href_value); + } + + if ((!current || dirty & /*deviceList*/ 1) && t4_value !== (t4_value = /*device*/ ctx[11].id + "")) set_data_dev(t4, t4_value); + if ((!current || dirty & /*deviceList*/ 1) && t6_value !== (t6_value = (/*device*/ ctx[11].status ? "online" : "offline") + "")) set_data_dev(t6, t6_value); + + if (!current || dirty & /*deviceList*/ 1 && td3_class_value !== (td3_class_value = "tbl-bdy-lg ipt-lg w-full " + (/*device*/ ctx[11].status ? 'bg-green-50' : 'bg-red-50'))) { + attr_dev(td3, "class", td3_class_value); + } + }, + i: function intro(local) { + if (current) return; + transition_in(crossicon.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(crossicon.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(tr); + destroy_component(crossicon); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block$1.name, + type: "each", + source: "(41:8) {#each deviceList as device, i}", + ctx + }); + + return block; + } + + // (50:8) {#if showInput} + function create_if_block$1(ctx) { + let tr; + let td0; + let input0; + let t0; + let td1; + let input1; + let t1; + let td2; + let input2; + let t2; + let td3; + let mounted; + let dispose; + + const block = { + c: function create() { + tr = element("tr"); + td0 = element("td"); + input0 = element("input"); + t0 = space(); + td1 = element("td"); + input1 = element("input"); + t1 = space(); + td2 = element("td"); + input2 = element("input"); + t2 = space(); + td3 = element("td"); + attr_dev(input0, "class", "ipt-lg w-full"); + attr_dev(input0, "type", "text"); + add_location(input0, file$3, 51, 35, 1815); + attr_dev(td0, "class", "tbl-bdy-lg"); + add_location(td0, file$3, 51, 12, 1792); + attr_dev(input1, "class", "ipt-lg w-full"); + attr_dev(input1, "type", "text"); + add_location(input1, file$3, 52, 35, 1928); + attr_dev(td1, "class", "tbl-bdy-lg"); + add_location(td1, file$3, 52, 12, 1905); + attr_dev(input2, "class", "ipt-lg w-full"); + attr_dev(input2, "type", "text"); + add_location(input2, file$3, 53, 35, 2039); + attr_dev(td2, "class", "tbl-bdy-lg"); + add_location(td2, file$3, 53, 12, 2016); + attr_dev(td3, "class", "tbl-bdy-lg"); + add_location(td3, file$3, 54, 12, 2127); + attr_dev(tr, "class", "txt-sz txt-pad"); + add_location(tr, file$3, 50, 10, 1751); + }, + m: function mount(target, anchor) { + insert_dev(target, tr, anchor); + append_dev(tr, td0); + append_dev(td0, input0); + set_input_value(input0, /*newDevice*/ ctx[2].name); + append_dev(tr, t0); + append_dev(tr, td1); + append_dev(td1, input1); + set_input_value(input1, /*newDevice*/ ctx[2].ip); + append_dev(tr, t1); + append_dev(tr, td2); + append_dev(td2, input2); + set_input_value(input2, /*newDevice*/ ctx[2].id); + append_dev(tr, t2); + append_dev(tr, td3); + + if (!mounted) { + dispose = [ + listen_dev(input0, "input", /*input0_input_handler*/ ctx[6]), + listen_dev(input1, "input", /*input1_input_handler*/ ctx[7]), + listen_dev(input2, "input", /*input2_input_handler*/ ctx[8]) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*newDevice*/ 4 && input0.value !== /*newDevice*/ ctx[2].name) { + set_input_value(input0, /*newDevice*/ ctx[2].name); + } + + if (dirty & /*newDevice*/ 4 && input1.value !== /*newDevice*/ ctx[2].ip) { + set_input_value(input1, /*newDevice*/ ctx[2].ip); + } + + if (dirty & /*newDevice*/ 4 && input2.value !== /*newDevice*/ ctx[2].id) { + set_input_value(input2, /*newDevice*/ ctx[2].id); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(tr); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block$1.name, + type: "if", + source: "(50:8) {#if showInput}", + ctx + }); + + return block; + } + + // (29:2) + function create_default_slot_1$1(ctx) { + let table; + let thead; + let tr; + let th0; + let t1; + let th1; + let t3; + let th2; + let t5; + let th3; + let t7; + let th4; + let t8; + let tbody; + let t9; + let t10; + let button; + + let t11_value = (/*showInput*/ ctx[1] + ? "Сохранить" + : "Добавить устройство") + ""; + + let t11; + let current; + let mounted; + let dispose; + let each_value = /*deviceList*/ ctx[0]; + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$1(get_each_context$1(ctx, each_value, i)); + } + + const out = i => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + + let if_block = /*showInput*/ ctx[1] && create_if_block$1(ctx); + + const block = { + c: function create() { + table = element("table"); + thead = element("thead"); + tr = element("tr"); + th0 = element("th"); + th0.textContent = "Название устройства"; + t1 = space(); + th1 = element("th"); + th1.textContent = "IP адрес"; + t3 = space(); + th2 = element("th"); + th2.textContent = "Идентификатор"; + t5 = space(); + th3 = element("th"); + th3.textContent = "Состояние"; + t7 = space(); + th4 = element("th"); + t8 = space(); + tbody = element("tbody"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t9 = space(); + if (if_block) if_block.c(); + t10 = space(); + button = element("button"); + t11 = text(t11_value); + attr_dev(th0, "class", "tbl-hd"); + add_location(th0, file$3, 32, 10, 839); + attr_dev(th1, "class", "tbl-hd"); + add_location(th1, file$3, 33, 10, 894); + attr_dev(th2, "class", "tbl-hd"); + add_location(th2, file$3, 34, 10, 938); + attr_dev(th3, "class", "tbl-hd"); + add_location(th3, file$3, 35, 10, 987); + attr_dev(th4, "class", "tbl-hd w-7"); + add_location(th4, file$3, 36, 10, 1032); + attr_dev(tr, "class", "txt-sz txt-pad"); + add_location(tr, file$3, 31, 8, 800); + attr_dev(thead, "class", "bg-gray-100"); + add_location(thead, file$3, 30, 6, 763); + attr_dev(tbody, "class", "bg-white"); + add_location(tbody, file$3, 39, 6, 1096); + attr_dev(table, "class", "tbl"); + add_location(table, file$3, 29, 4, 736); + attr_dev(button, "class", "btn-lg"); + add_location(button, file$3, 59, 4, 2220); + }, + m: function mount(target, anchor) { + insert_dev(target, table, anchor); + append_dev(table, thead); + append_dev(thead, tr); + append_dev(tr, th0); + append_dev(tr, t1); + append_dev(tr, th1); + append_dev(tr, t3); + append_dev(tr, th2); + append_dev(tr, t5); + append_dev(tr, th3); + append_dev(tr, t7); + append_dev(tr, th4); + append_dev(table, t8); + append_dev(table, tbody); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(tbody, null); + } + + append_dev(tbody, t9); + if (if_block) if_block.m(tbody, null); + insert_dev(target, t10, anchor); + insert_dev(target, button, anchor); + append_dev(button, t11); + current = true; + + if (!mounted) { + dispose = listen_dev(button, "click", /*click_handler*/ ctx[9], false, false, false); + mounted = true; + } + }, + p: function update(ctx, dirty) { + if (dirty & /*deleteLineFromDevlist, deviceList*/ 17) { + each_value = /*deviceList*/ ctx[0]; + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$1(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block$1(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(tbody, t9); + } + } + + group_outros(); + + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + + check_outros(); + } + + if (/*showInput*/ ctx[1]) { + if (if_block) { + if_block.p(ctx, dirty); + } else { + if_block = create_if_block$1(ctx); + if_block.c(); + if_block.m(tbody, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + if ((!current || dirty & /*showInput*/ 2) && t11_value !== (t11_value = (/*showInput*/ ctx[1] + ? "Сохранить" + : "Добавить устройство") + "")) set_data_dev(t11, t11_value); + }, + i: function intro(local) { + if (current) return; + + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + + current = true; + }, + o: function outro(local) { + each_blocks = each_blocks.filter(Boolean); + + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(table); + destroy_each(each_blocks, detaching); + if (if_block) if_block.d(); + if (detaching) detach_dev(t10); + if (detaching) detach_dev(button); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_1$1.name, + type: "slot", + source: "(29:2) ", + ctx + }); + + return block; + } + + // (62:2) + function create_default_slot$2(ctx) { + let p; + + const block = { + c: function create() { + p = element("p"); + p.textContent = "Список устройств будет обновляться автоматически. Подключенные к одному роутеру устройства будут появляться в списке в течении двух минут. Ручное добавление сделано в целях проверки для разработчика."; + add_location(p, file$3, 62, 4, 2388); + }, + m: function mount(target, anchor) { + insert_dev(target, p, anchor); + }, + d: function destroy(detaching) { + if (detaching) detach_dev(p); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$2.name, + type: "slot", + source: "(62:2) ", + ctx + }); + + return block; + } + + function create_fragment$3(ctx) { + let div; + let card; + let t; + let alarm; + let current; + + card = new Card({ + props: { + title: "Список устройств", + $$slots: { default: [create_default_slot_1$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + alarm = new Alarm({ + props: { + $$slots: { default: [create_default_slot$2] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + div = element("div"); + create_component(card.$$.fragment); + t = space(); + create_component(alarm.$$.fragment); + attr_dev(div, "class", "grd-1col1"); + add_location(div, file$3, 27, 0, 670); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div, anchor); + mount_component(card, div, null); + append_dev(div, t); + mount_component(alarm, div, null); + current = true; + }, + p: function update(ctx, [dirty]) { + const card_changes = {}; + + if (dirty & /*$$scope, showInput, devListSave, newDevice, deviceList*/ 16399) { + card_changes.$$scope = { dirty, ctx }; + } + + card.$set(card_changes); + const alarm_changes = {}; + + if (dirty & /*$$scope*/ 16384) { + alarm_changes.$$scope = { dirty, ctx }; + } + + alarm.$set(alarm_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(card.$$.fragment, local); + transition_in(alarm.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(card.$$.fragment, local); + transition_out(alarm.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div); + destroy_component(card); + destroy_component(alarm); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$3.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$3($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('List', slots, []); + let { deviceList } = $$props; + let { showInput } = $$props; + let { newDevice = {} } = $$props; + + let { devListSave = () => { + + } } = $$props; + + let debug = true; + + function deleteLineFromDevlist(num) { + for (let i = 0; i < deviceList.length; i++) { + if (num === i) { + deviceList.splice(i, 1); + $$invalidate(0, deviceList); + if (debug) console.log("[i]", "item " + num + " deleted from dev list"); + break; + } + } + } + + const writable_props = ['deviceList', 'showInput', 'newDevice', 'devListSave']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1$1.warn(` was created with unknown prop '${key}'`); + }); + + const func = i => deleteLineFromDevlist(i); + + function input0_input_handler() { + newDevice.name = this.value; + $$invalidate(2, newDevice); + } + + function input1_input_handler() { + newDevice.ip = this.value; + $$invalidate(2, newDevice); + } + + function input2_input_handler() { + newDevice.id = this.value; + $$invalidate(2, newDevice); + } + + const click_handler = () => ($$invalidate(1, showInput = !showInput), devListSave()); + + $$self.$$set = $$props => { + if ('deviceList' in $$props) $$invalidate(0, deviceList = $$props.deviceList); + if ('showInput' in $$props) $$invalidate(1, showInput = $$props.showInput); + if ('newDevice' in $$props) $$invalidate(2, newDevice = $$props.newDevice); + if ('devListSave' in $$props) $$invalidate(3, devListSave = $$props.devListSave); + }; + + $$self.$capture_state = () => ({ + Card, + Alarm, + CrossIcon: Cross, + OpenIcon: Open, + deviceList, + showInput, + newDevice, + devListSave, + debug, + deleteLineFromDevlist + }); + + $$self.$inject_state = $$props => { + if ('deviceList' in $$props) $$invalidate(0, deviceList = $$props.deviceList); + if ('showInput' in $$props) $$invalidate(1, showInput = $$props.showInput); + if ('newDevice' in $$props) $$invalidate(2, newDevice = $$props.newDevice); + if ('devListSave' in $$props) $$invalidate(3, devListSave = $$props.devListSave); + if ('debug' in $$props) debug = $$props.debug; + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + deviceList, + showInput, + newDevice, + devListSave, + deleteLineFromDevlist, + func, + input0_input_handler, + input1_input_handler, + input2_input_handler, + click_handler + ]; + } + + class List extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$3, create_fragment$3, safe_not_equal, { + deviceList: 0, + showInput: 1, + newDevice: 2, + devListSave: 3 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "List", + options, + id: create_fragment$3.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*deviceList*/ ctx[0] === undefined && !('deviceList' in props)) { + console_1$1.warn(" was created without expected prop 'deviceList'"); + } + + if (/*showInput*/ ctx[1] === undefined && !('showInput' in props)) { + console_1$1.warn(" was created without expected prop 'showInput'"); + } + } + + get deviceList() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set deviceList(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get showInput() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set showInput(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get newDevice() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set newDevice(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get devListSave() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set devListSave(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\pages\About.svelte generated by Svelte v3.46.4 */ + const file$2 = "src\\pages\\About.svelte"; + + // (12:0) + function create_default_slot$1(ctx) { + let textarea; + let textarea_value_value; + let mounted; + let dispose; + + const block = { + c: function create() { + textarea = element("textarea"); + attr_dev(textarea, "rows", "10"); + attr_dev(textarea, "class", "ipt-big w-full"); + attr_dev(textarea, "id", "text1"); + textarea.value = textarea_value_value = /*syntaxHighlight*/ ctx[3](JSON.stringify(/*layoutJson*/ ctx[1])); + add_location(textarea, file$2, 12, 2, 320); + }, + m: function mount(target, anchor) { + insert_dev(target, textarea, anchor); + + if (!mounted) { + dispose = listen_dev( + textarea, + "input", + function () { + if (is_function(/*wigetsUpdate*/ ctx[0])) /*wigetsUpdate*/ ctx[0].apply(this, arguments); + }, + false, + false, + false + ); + + mounted = true; + } + }, + p: function update(new_ctx, dirty) { + ctx = new_ctx; + + if (dirty & /*syntaxHighlight, layoutJson*/ 10 && textarea_value_value !== (textarea_value_value = /*syntaxHighlight*/ ctx[3](JSON.stringify(/*layoutJson*/ ctx[1])))) { + prop_dev(textarea, "value", textarea_value_value); + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(textarea); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot$1.name, + type: "slot", + source: "(12:0) ", + ctx + }); + + return block; + } + + function create_fragment$2(ctx) { + let button; + let t1; + let card; + let current; + let mounted; + let dispose; + + card = new Card({ + props: { + title: "Редактор JSON", + $$slots: { default: [create_default_slot$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + button = element("button"); + button.textContent = "Toggle modal"; + t1 = space(); + create_component(card.$$.fragment); + attr_dev(button, "type", "button"); + add_location(button, file$2, 10, 0, 212); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, button, anchor); + insert_dev(target, t1, anchor); + mount_component(card, target, anchor); + current = true; + + if (!mounted) { + dispose = listen_dev(button, "click", /*click_handler*/ ctx[4], false, false, false); + mounted = true; + } + }, + p: function update(ctx, [dirty]) { + const card_changes = {}; + + if (dirty & /*$$scope, syntaxHighlight, layoutJson, wigetsUpdate*/ 43) { + card_changes.$$scope = { dirty, ctx }; + } + + card.$set(card_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(card.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(card.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(button); + if (detaching) detach_dev(t1); + destroy_component(card, detaching); + mounted = false; + dispose(); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$2.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$2($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('About', slots, []); + let { wigetsUpdate } = $$props; + let { layoutJson } = $$props; + + let { showModal = () => { + + } } = $$props; + + let { syntaxHighlight = json => { + + } } = $$props; + + const writable_props = ['wigetsUpdate', 'layoutJson', 'showModal', 'syntaxHighlight']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + const click_handler = () => showModal(); + + $$self.$$set = $$props => { + if ('wigetsUpdate' in $$props) $$invalidate(0, wigetsUpdate = $$props.wigetsUpdate); + if ('layoutJson' in $$props) $$invalidate(1, layoutJson = $$props.layoutJson); + if ('showModal' in $$props) $$invalidate(2, showModal = $$props.showModal); + if ('syntaxHighlight' in $$props) $$invalidate(3, syntaxHighlight = $$props.syntaxHighlight); + }; + + $$self.$capture_state = () => ({ + Card, + wigetsUpdate, + layoutJson, + showModal, + syntaxHighlight + }); + + $$self.$inject_state = $$props => { + if ('wigetsUpdate' in $$props) $$invalidate(0, wigetsUpdate = $$props.wigetsUpdate); + if ('layoutJson' in $$props) $$invalidate(1, layoutJson = $$props.layoutJson); + if ('showModal' in $$props) $$invalidate(2, showModal = $$props.showModal); + if ('syntaxHighlight' in $$props) $$invalidate(3, syntaxHighlight = $$props.syntaxHighlight); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [wigetsUpdate, layoutJson, showModal, syntaxHighlight, click_handler]; + } + + class About extends SvelteComponentDev { + constructor(options) { + super(options); + + init(this, options, instance$2, create_fragment$2, safe_not_equal, { + wigetsUpdate: 0, + layoutJson: 1, + showModal: 2, + syntaxHighlight: 3 + }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "About", + options, + id: create_fragment$2.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*wigetsUpdate*/ ctx[0] === undefined && !('wigetsUpdate' in props)) { + console.warn(" was created without expected prop 'wigetsUpdate'"); + } + + if (/*layoutJson*/ ctx[1] === undefined && !('layoutJson' in props)) { + console.warn(" was created without expected prop 'layoutJson'"); + } + } + + get wigetsUpdate() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set wigetsUpdate(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get layoutJson() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set layoutJson(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get showModal() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set showModal(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get syntaxHighlight() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set syntaxHighlight(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\svg\Cloud.svelte generated by Svelte v3.46.4 */ + + const file$1 = "src\\svg\\Cloud.svelte"; + + function create_fragment$1(ctx) { + let svg; + let path0; + let path1; + let svg_class_value; + + const block = { + c: function create() { + svg = svg_element("svg"); + path0 = svg_element("path"); + path1 = svg_element("path"); + attr_dev(path0, "stroke", "none"); + attr_dev(path0, "d", "M0 0h24v24H0z"); + add_location(path0, file$1, 5, 2, 218); + attr_dev(path1, "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"); + add_location(path1, file$1, 6, 2, 262); + attr_dev(svg, "class", svg_class_value = "h-8 w-8 " + /*color*/ ctx[0]); + attr_dev(svg, "width", "24"); + attr_dev(svg, "height", "24"); + attr_dev(svg, "viewBox", "0 0 24 24"); + attr_dev(svg, "stroke-width", "2"); + attr_dev(svg, "stroke", "currentColor"); + attr_dev(svg, "fill", "none"); + attr_dev(svg, "stroke-linecap", "round"); + attr_dev(svg, "stroke-linejoin", "round"); + add_location(svg, file$1, 4, 0, 44); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, svg, anchor); + append_dev(svg, path0); + append_dev(svg, path1); + }, + p: function update(ctx, [dirty]) { + if (dirty & /*color*/ 1 && svg_class_value !== (svg_class_value = "h-8 w-8 " + /*color*/ ctx[0])) { + attr_dev(svg, "class", svg_class_value); + } + }, + i: noop, + o: noop, + d: function destroy(detaching) { + if (detaching) detach_dev(svg); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment$1.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function instance$1($$self, $$props, $$invalidate) { + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('Cloud', slots, []); + let { color } = $$props; + const writable_props = ['color']; + + Object.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(` was created with unknown prop '${key}'`); + }); + + $$self.$$set = $$props => { + if ('color' in $$props) $$invalidate(0, color = $$props.color); + }; + + $$self.$capture_state = () => ({ color }); + + $$self.$inject_state = $$props => { + if ('color' in $$props) $$invalidate(0, color = $$props.color); + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [color]; + } + + class Cloud extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance$1, create_fragment$1, safe_not_equal, { color: 0 }); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "Cloud", + options, + id: create_fragment$1.name + }); + + const { ctx } = this.$$; + const props = options.props || {}; + + if (/*color*/ ctx[0] === undefined && !('color' in props)) { + console.warn(" was created without expected prop 'color'"); + } + } + + get color() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set color(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src\App.svelte generated by Svelte v3.46.4 */ + + const { Object: Object_1, console: console_1 } = globals; + const file = "src\\App.svelte"; + + function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[90] = list[i]; + return child_ctx; + } + + // (760:10) {#each deviceList as device} + function create_each_block(ctx) { + let option; + let t0_value = /*device*/ ctx[90].name + ""; + let t0; + let t1; + let option_value_value; + + const block = { + c: function create() { + option = element("option"); + t0 = text(t0_value); + t1 = space(); + option.__value = option_value_value = /*device*/ ctx[90].ws; + option.value = option.__value; + add_location(option, file, 760, 12, 24626); + }, + m: function mount(target, anchor) { + insert_dev(target, option, anchor); + append_dev(option, t0); + append_dev(option, t1); + }, + p: function update(ctx, dirty) { + if (dirty[0] & /*deviceList*/ 16384 && t0_value !== (t0_value = /*device*/ ctx[90].name + "")) set_data_dev(t0, t0_value); + + if (dirty[0] & /*deviceList*/ 16384 && option_value_value !== (option_value_value = /*device*/ ctx[90].ws)) { + prop_dev(option, "__value", option_value_value); + option.value = option.__value; + } + }, + d: function destroy(detaching) { + if (detaching) detach_dev(option); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_each_block.name, + type: "each", + source: "(760:10) {#each deviceList as device}", + ctx + }); + + return block; + } + + // (809:8) {:else} + function create_else_block(ctx) { + let route0; + let t0; + let route1; + let t1; + let route2; + let t2; + let route3; + let t3; + let route4; + let t4; + let route5; + let current; + + route0 = new Route({ + props: { + path: "/", + $$slots: { default: [create_default_slot_6] }, + $$scope: { ctx } + }, + $$inline: true + }); + + route1 = new Route({ + props: { + path: "/config", + $$slots: { default: [create_default_slot_5] }, + $$scope: { ctx } + }, + $$inline: true + }); + + route2 = new Route({ + props: { + path: "/connection", + $$slots: { default: [create_default_slot_4] }, + $$scope: { ctx } + }, + $$inline: true + }); + + route3 = new Route({ + props: { + path: "/utilities", + $$slots: { default: [create_default_slot_3] }, + $$scope: { ctx } + }, + $$inline: true + }); + + route4 = new Route({ + props: { + path: "/log", + $$slots: { default: [create_default_slot_2] }, + $$scope: { ctx } + }, + $$inline: true + }); + + route5 = new Route({ + props: { + path: "/about", + $$slots: { default: [create_default_slot_1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(route0.$$.fragment); + t0 = space(); + create_component(route1.$$.fragment); + t1 = space(); + create_component(route2.$$.fragment); + t2 = space(); + create_component(route3.$$.fragment); + t3 = space(); + create_component(route4.$$.fragment); + t4 = space(); + create_component(route5.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(route0, target, anchor); + insert_dev(target, t0, anchor); + mount_component(route1, target, anchor); + insert_dev(target, t1, anchor); + mount_component(route2, target, anchor); + insert_dev(target, t2, anchor); + mount_component(route3, target, anchor); + insert_dev(target, t3, anchor); + mount_component(route4, target, anchor); + insert_dev(target, t4, anchor); + mount_component(route5, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const route0_changes = {}; + + if (dirty[0] & /*layoutJson, pages*/ 136 | dirty[3] & /*$$scope*/ 1) { + route0_changes.$$scope = { dirty, ctx }; + } + + route0.$set(route0_changes); + const route1_changes = {}; + + if (dirty[0] & /*configJson, widgetsJson, itemsJson*/ 112 | dirty[3] & /*$$scope*/ 1) { + route1_changes.$$scope = { dirty, ctx }; + } + + route1.$set(route1_changes); + const route2_changes = {}; + + if (dirty[0] & /*settingsJson, ssidJson*/ 768 | dirty[3] & /*$$scope*/ 1) { + route2_changes.$$scope = { dirty, ctx }; + } + + route2.$set(route2_changes); + const route3_changes = {}; + + if (dirty[3] & /*$$scope*/ 1) { + route3_changes.$$scope = { dirty, ctx }; + } + + route3.$set(route3_changes); + const route4_changes = {}; + + if (dirty[0] & /*coreMessages*/ 8192 | dirty[3] & /*$$scope*/ 1) { + route4_changes.$$scope = { dirty, ctx }; + } + + route4.$set(route4_changes); + const route5_changes = {}; + + if (dirty[0] & /*layoutJson*/ 128 | dirty[3] & /*$$scope*/ 1) { + route5_changes.$$scope = { dirty, ctx }; + } + + route5.$set(route5_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(route0.$$.fragment, local); + transition_in(route1.$$.fragment, local); + transition_in(route2.$$.fragment, local); + transition_in(route3.$$.fragment, local); + transition_in(route4.$$.fragment, local); + transition_in(route5.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(route0.$$.fragment, local); + transition_out(route1.$$.fragment, local); + transition_out(route2.$$.fragment, local); + transition_out(route3.$$.fragment, local); + transition_out(route4.$$.fragment, local); + transition_out(route5.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(route0, detaching); + if (detaching) detach_dev(t0); + destroy_component(route1, detaching); + if (detaching) detach_dev(t1); + destroy_component(route2, detaching); + if (detaching) detach_dev(t2); + destroy_component(route3, detaching); + if (detaching) detach_dev(t3); + destroy_component(route4, detaching); + if (detaching) detach_dev(t4); + destroy_component(route5, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_else_block.name, + type: "else", + source: "(809:8) {:else}", + ctx + }); + + return block; + } + + // (807:8) {#if !socketConnected} + function create_if_block(ctx) { + let alarm; + let current; + + alarm = new Alarm({ + props: { title: "Нет соединения" }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(alarm.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(alarm, target, anchor); + current = true; + }, + p: noop, + i: function intro(local) { + if (current) return; + transition_in(alarm.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(alarm.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(alarm, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_if_block.name, + type: "if", + source: "(807:8) {#if !socketConnected}", + ctx + }); + + return block; + } + + // (810:10) + function create_default_slot_6(ctx) { + let dashboardpage; + let current; + + dashboardpage = new Dashboard({ + props: { + layoutJson: /*layoutJson*/ ctx[7], + pages: /*pages*/ ctx[3], + wsPush: /*func*/ ctx[30] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(dashboardpage.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(dashboardpage, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const dashboardpage_changes = {}; + if (dirty[0] & /*layoutJson*/ 128) dashboardpage_changes.layoutJson = /*layoutJson*/ ctx[7]; + if (dirty[0] & /*pages*/ 8) dashboardpage_changes.pages = /*pages*/ ctx[3]; + dashboardpage.$set(dashboardpage_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(dashboardpage.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(dashboardpage.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(dashboardpage, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_6.name, + type: "slot", + source: "(810:10) ", + ctx + }); + + return block; + } + + // (813:10) + function create_default_slot_5(ctx) { + let configpage; + let current; + + configpage = new Config({ + props: { + configJson: /*configJson*/ ctx[4], + widgetsJson: /*widgetsJson*/ ctx[5], + itemsJson: /*itemsJson*/ ctx[6], + saveConfig: /*func_1*/ ctx[31] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(configpage.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(configpage, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const configpage_changes = {}; + if (dirty[0] & /*configJson*/ 16) configpage_changes.configJson = /*configJson*/ ctx[4]; + if (dirty[0] & /*widgetsJson*/ 32) configpage_changes.widgetsJson = /*widgetsJson*/ ctx[5]; + if (dirty[0] & /*itemsJson*/ 64) configpage_changes.itemsJson = /*itemsJson*/ ctx[6]; + configpage.$set(configpage_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(configpage.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(configpage.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(configpage, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_5.name, + type: "slot", + source: "(813:10) ", + ctx + }); + + return block; + } + + // (816:10) + function create_default_slot_4(ctx) { + let connectionpage; + let current; + + connectionpage = new Connection({ + props: { + settingsJson: /*settingsJson*/ ctx[8], + ssidJson: /*ssidJson*/ ctx[9], + ssidDropdownClick: /*func_2*/ ctx[32], + saveSettings: /*func_3*/ ctx[33] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(connectionpage.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(connectionpage, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const connectionpage_changes = {}; + if (dirty[0] & /*settingsJson*/ 256) connectionpage_changes.settingsJson = /*settingsJson*/ ctx[8]; + if (dirty[0] & /*ssidJson*/ 512) connectionpage_changes.ssidJson = /*ssidJson*/ ctx[9]; + connectionpage.$set(connectionpage_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(connectionpage.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(connectionpage.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(connectionpage, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_4.name, + type: "slot", + source: "(816:10) ", + ctx + }); + + return block; + } + + // (819:10) + function create_default_slot_3(ctx) { + let utilitiespage; + let current; + utilitiespage = new Utilities({ $$inline: true }); + + const block = { + c: function create() { + create_component(utilitiespage.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(utilitiespage, target, anchor); + current = true; + }, + i: function intro(local) { + if (current) return; + transition_in(utilitiespage.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(utilitiespage.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(utilitiespage, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_3.name, + type: "slot", + source: "(819:10) ", + ctx + }); + + return block; + } + + // (822:10) + function create_default_slot_2(ctx) { + let logpage; + let current; + + logpage = new Log({ + props: { coreMessages: /*coreMessages*/ ctx[13] }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(logpage.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(logpage, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const logpage_changes = {}; + if (dirty[0] & /*coreMessages*/ 8192) logpage_changes.coreMessages = /*coreMessages*/ ctx[13]; + logpage.$set(logpage_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(logpage.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(logpage.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(logpage, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_2.name, + type: "slot", + source: "(822:10) ", + ctx + }); + + return block; + } + + // (825:10) + function create_default_slot_1(ctx) { + let aboutpage; + let current; + + aboutpage = new About({ + props: { + wigetsUpdate: /*wigetsUpdate*/ ctx[19], + layoutJson: /*layoutJson*/ ctx[7], + showModal: /*func_4*/ ctx[34], + syntaxHighlight: /*func_5*/ ctx[35] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(aboutpage.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(aboutpage, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const aboutpage_changes = {}; + if (dirty[0] & /*layoutJson*/ 128) aboutpage_changes.layoutJson = /*layoutJson*/ ctx[7]; + aboutpage.$set(aboutpage_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(aboutpage.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(aboutpage.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(aboutpage, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot_1.name, + type: "slot", + source: "(825:10) ", + ctx + }); + + return block; + } + + // (829:8) + function create_default_slot(ctx) { + let listpage; + let current; + + listpage = new List({ + props: { + deviceList: /*deviceList*/ ctx[14], + showInput: /*showInput*/ ctx[15], + devListSave: /*func_6*/ ctx[36], + newDevice: /*newDevice*/ ctx[12] + }, + $$inline: true + }); + + const block = { + c: function create() { + create_component(listpage.$$.fragment); + }, + m: function mount(target, anchor) { + mount_component(listpage, target, anchor); + current = true; + }, + p: function update(ctx, dirty) { + const listpage_changes = {}; + if (dirty[0] & /*deviceList*/ 16384) listpage_changes.deviceList = /*deviceList*/ ctx[14]; + if (dirty[0] & /*newDevice*/ 4096) listpage_changes.newDevice = /*newDevice*/ ctx[12]; + listpage.$set(listpage_changes); + }, + i: function intro(local) { + if (current) return; + transition_in(listpage.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(listpage.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + destroy_component(listpage, detaching); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_default_slot.name, + type: "slot", + source: "(829:8) ", + ctx + }); + + return block; + } + + function create_fragment(ctx) { + let div5; + let modal; + let t0; + let header; + let div2; + let div0; + let select; + let t1; + let div1; + let cloudicon; + let t2; + let nav; + let input; + let t3; + let label; + let span; + let t4; + let ul0; + let li0; + let a0; + let t6; + let li1; + let a1; + let t8; + let li2; + let a2; + let t10; + let li3; + let a3; + let t12; + let li4; + let a4; + let t14; + let li5; + let a5; + let t16; + let li6; + let a6; + let t18; + let main; + let ul1; + let div3; + let current_block_type_index; + let if_block; + let t19; + let route; + let main_class_value; + let t20; + let footer; + let div4; + let current; + let mounted; + let dispose; + + modal = new Modal({ + props: { show: /*showModalFlag*/ ctx[2] }, + $$inline: true + }); + + let each_value = /*deviceList*/ ctx[14]; + validate_each_argument(each_value); + let each_blocks = []; + + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + + cloudicon = new Cloud({ + props: { + color: /*socketConnected*/ ctx[10] === true + ? "text-green-500" + : "text-red-500" + }, + $$inline: true + }); + + const if_block_creators = [create_if_block, create_else_block]; + const if_blocks = []; + + function select_block_type(ctx, dirty) { + if (!/*socketConnected*/ ctx[10]) return 0; + return 1; + } + + current_block_type_index = select_block_type(ctx); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + + route = new Route({ + props: { + path: "/list", + $$slots: { default: [create_default_slot] }, + $$scope: { ctx } + }, + $$inline: true + }); + + const block = { + c: function create() { + div5 = element("div"); + create_component(modal.$$.fragment); + t0 = space(); + header = element("header"); + div2 = element("div"); + div0 = element("div"); + select = element("select"); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + t1 = space(); + div1 = element("div"); + create_component(cloudicon.$$.fragment); + t2 = space(); + nav = element("nav"); + input = element("input"); + t3 = space(); + label = element("label"); + span = element("span"); + t4 = space(); + ul0 = element("ul"); + li0 = element("li"); + a0 = element("a"); + a0.textContent = `${"Управление"}`; + t6 = space(); + li1 = element("li"); + a1 = element("a"); + a1.textContent = `${"Конфигуратор"}`; + t8 = space(); + li2 = element("li"); + a2 = element("a"); + a2.textContent = `${"Подключение"}`; + t10 = space(); + li3 = element("li"); + a3 = element("a"); + a3.textContent = `${"Утилиты"}`; + t12 = space(); + li4 = element("li"); + a4 = element("a"); + a4.textContent = `${"Лог"}`; + t14 = space(); + li5 = element("li"); + a5 = element("a"); + a5.textContent = `${"Устройства"}`; + t16 = space(); + li6 = element("li"); + a6 = element("a"); + a6.textContent = `${"О проекте"}`; + t18 = space(); + main = element("main"); + ul1 = element("ul"); + div3 = element("div"); + if_block.c(); + t19 = space(); + create_component(route.$$.fragment); + t20 = space(); + footer = element("footer"); + div4 = element("div"); + div4.textContent = "Developed by Dmitry Borisenko"; + attr_dev(select, "class", "border border-indigo-500 border-4"); + if (/*selectedWs*/ ctx[11] === void 0) add_render_callback(() => /*select_change_handler*/ ctx[26].call(select)); + add_location(select, file, 758, 8, 24456); + attr_dev(div0, "class", "px-15 py-1 z-50 "); + add_location(div0, file, 757, 6, 24416); + attr_dev(div1, "class", "pl-4 pr-4 py-1"); + add_location(div1, file, 766, 6, 24764); + attr_dev(div2, "class", "flex content-center items-center justify-end"); + add_location(div2, file, 756, 4, 24350); + attr_dev(header, "class", "h-10 w-full bg-gray-100 overflow-auto shadow-md"); + add_location(header, file, 755, 2, 24280); + attr_dev(input, "id", "menu__toggle"); + attr_dev(input, "type", "checkbox"); + add_location(input, file, 773, 4, 24953); + add_location(span, file, 775, 6, 25104); + attr_dev(label, "class", "menu__btn"); + attr_dev(label, "for", "menu__toggle"); + add_location(label, file, 774, 4, 25052); + attr_dev(a0, "class", "menu__item"); + attr_dev(a0, "href", "/"); + add_location(a0, file, 780, 8, 25178); + add_location(li0, file, 779, 6, 25164); + attr_dev(a1, "class", "menu__item"); + attr_dev(a1, "href", "/config"); + add_location(a1, file, 783, 8, 25262); + add_location(li1, file, 782, 6, 25248); + attr_dev(a2, "class", "menu__item"); + attr_dev(a2, "href", "/connection"); + add_location(a2, file, 786, 8, 25354); + add_location(li2, file, 785, 6, 25340); + attr_dev(a3, "class", "menu__item"); + attr_dev(a3, "href", "/utilities"); + add_location(a3, file, 789, 8, 25449); + add_location(li3, file, 788, 6, 25435); + attr_dev(a4, "class", "menu__item"); + attr_dev(a4, "href", "/log"); + add_location(a4, file, 792, 8, 25539); + add_location(li4, file, 791, 6, 25525); + attr_dev(a5, "class", "menu__item"); + attr_dev(a5, "href", "/list"); + add_location(a5, file, 795, 8, 25619); + add_location(li5, file, 794, 6, 25605); + attr_dev(a6, "class", "menu__item"); + attr_dev(a6, "href", "/about"); + add_location(a6, file, 798, 8, 25707); + add_location(li6, file, 797, 6, 25693); + attr_dev(ul0, "class", "menu__box"); + add_location(ul0, file, 778, 4, 25134); + attr_dev(nav, "class", "flex"); + add_location(nav, file, 772, 2, 24929); + attr_dev(div3, "class", "bg-cover pt-0 px-4"); + add_location(div3, file, 805, 6, 25931); + attr_dev(ul1, "class", "menu__main"); + add_location(ul1, file, 804, 4, 25900); + + attr_dev(main, "class", main_class_value = "flex-1 overflow-y-auto p-0 " + (/*opened*/ ctx[0] === true && !/*preventMove*/ ctx[1] + ? 'ml-36' + : 'ml-0')); + + add_location(main, file, 803, 2, 25800); + attr_dev(div4, "class", "flex justify-center content-center text-xxs text-gray-500"); + add_location(div4, file, 836, 4, 27336); + attr_dev(footer, "class", "h-4 bg-gray-100 border-gray-200 shadow-lg"); + add_location(footer, file, 835, 2, 27272); + attr_dev(div5, "class", "flex flex-col h-screen bg-gray-50"); + add_location(div5, file, 752, 0, 24193); + }, + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + m: function mount(target, anchor) { + insert_dev(target, div5, anchor); + mount_component(modal, div5, null); + append_dev(div5, t0); + append_dev(div5, header); + append_dev(header, div2); + append_dev(div2, div0); + append_dev(div0, select); + + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(select, null); + } + + select_option(select, /*selectedWs*/ ctx[11]); + append_dev(div2, t1); + append_dev(div2, div1); + mount_component(cloudicon, div1, null); + append_dev(div5, t2); + append_dev(div5, nav); + append_dev(nav, input); + input.checked = /*opened*/ ctx[0]; + append_dev(nav, t3); + append_dev(nav, label); + append_dev(label, span); + append_dev(nav, t4); + append_dev(nav, ul0); + append_dev(ul0, li0); + append_dev(li0, a0); + append_dev(ul0, t6); + append_dev(ul0, li1); + append_dev(li1, a1); + append_dev(ul0, t8); + append_dev(ul0, li2); + append_dev(li2, a2); + append_dev(ul0, t10); + append_dev(ul0, li3); + append_dev(li3, a3); + append_dev(ul0, t12); + append_dev(ul0, li4); + append_dev(li4, a4); + append_dev(ul0, t14); + append_dev(ul0, li5); + append_dev(li5, a5); + append_dev(ul0, t16); + append_dev(ul0, li6); + append_dev(li6, a6); + append_dev(div5, t18); + append_dev(div5, main); + append_dev(main, ul1); + append_dev(ul1, div3); + if_blocks[current_block_type_index].m(div3, null); + append_dev(div3, t19); + mount_component(route, div3, null); + append_dev(div5, t20); + append_dev(div5, footer); + append_dev(footer, div4); + current = true; + + if (!mounted) { + dispose = [ + listen_dev(select, "change", /*select_change_handler*/ ctx[26]), + listen_dev(select, "change", /*change_handler*/ ctx[27], false, false, false), + listen_dev(input, "change", /*input_change_handler*/ ctx[28]), + listen_dev(input, "change", /*change_handler_1*/ ctx[29], false, false, false) + ]; + + mounted = true; + } + }, + p: function update(ctx, dirty) { + const modal_changes = {}; + if (dirty[0] & /*showModalFlag*/ 4) modal_changes.show = /*showModalFlag*/ ctx[2]; + modal.$set(modal_changes); + + if (dirty[0] & /*deviceList*/ 16384) { + each_value = /*deviceList*/ ctx[14]; + validate_each_argument(each_value); + let i; + + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(select, null); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + + each_blocks.length = each_value.length; + } + + if (dirty[0] & /*selectedWs, deviceList*/ 18432) { + select_option(select, /*selectedWs*/ ctx[11]); + } + + const cloudicon_changes = {}; + + if (dirty[0] & /*socketConnected*/ 1024) cloudicon_changes.color = /*socketConnected*/ ctx[10] === true + ? "text-green-500" + : "text-red-500"; + + cloudicon.$set(cloudicon_changes); + + if (dirty[0] & /*opened*/ 1) { + input.checked = /*opened*/ ctx[0]; + } + + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx); + + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx, dirty); + } else { + group_outros(); + + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + + check_outros(); + if_block = if_blocks[current_block_type_index]; + + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block.c(); + } else { + if_block.p(ctx, dirty); + } + + transition_in(if_block, 1); + if_block.m(div3, t19); + } + + const route_changes = {}; + + if (dirty[0] & /*deviceList, newDevice*/ 20480 | dirty[3] & /*$$scope*/ 1) { + route_changes.$$scope = { dirty, ctx }; + } + + route.$set(route_changes); + + if (!current || dirty[0] & /*opened, preventMove*/ 3 && main_class_value !== (main_class_value = "flex-1 overflow-y-auto p-0 " + (/*opened*/ ctx[0] === true && !/*preventMove*/ ctx[1] + ? 'ml-36' + : 'ml-0'))) { + attr_dev(main, "class", main_class_value); + } + }, + i: function intro(local) { + if (current) return; + transition_in(modal.$$.fragment, local); + transition_in(cloudicon.$$.fragment, local); + transition_in(if_block); + transition_in(route.$$.fragment, local); + current = true; + }, + o: function outro(local) { + transition_out(modal.$$.fragment, local); + transition_out(cloudicon.$$.fragment, local); + transition_out(if_block); + transition_out(route.$$.fragment, local); + current = false; + }, + d: function destroy(detaching) { + if (detaching) detach_dev(div5); + destroy_component(modal); + destroy_each(each_blocks, detaching); + destroy_component(cloudicon); + if_blocks[current_block_type_index].d(); + destroy_component(route); + mounted = false; + run_all(dispose); + } + }; + + dispatch_dev("SvelteRegisterBlock", { + block, + id: create_fragment.name, + type: "component", + source: "", + ctx + }); + + return block; + } + + function combineArrays(A, B) { + var ids = new Set(A.map(d => d.ip)); + let output = [...A, ...B.filter(d => !ids.has(d.ip))]; + return output; + } + + //****************************************************************json******************************************************************/ + function getJsonObject(array, number) { + let num = 0; + let out = {}; + + array.forEach(object => { + if (num === number) { + out = object; + } + + num++; + }); + + return out; + } + + async function handleSubmit(url) { + try { + console.log(url); + let res = await fetch(url, { mode: "no-cors", method: "GET" }); + + if (res.ok) { + console.log("OK", res.status); + } else { + console.log("error", res.status); //console.log(url); + } //console.log(url); + } catch(e) { + console.log(e); + } + } + + async function getRequestJson(url) { + let res = await fetch(url, { mode: "no-cors", method: "GET" }); + + if (res.ok) { + configSetupJson = await res.json(); + } else { + console.log("error", res.status); + } + } + + function instance($$self, $$props, $$invalidate) { + let $router; + validate_store(f, 'router'); + component_subscribe($$self, f, $$value => $$invalidate(57, $router = $$value)); + let { $$slots: slots = {}, $$scope } = $$props; + validate_slots('App', slots, []); + f.mode.hash(); + + //****************************************************constants section*********************************************************/ + //******************************************************************************************************************************/ + let debug = true; + + let LOG_MAX_MESSAGES = 10; + let reconnectTimeout = 60000; + let opened = false; + let preventMove = false; + + //****************************************************variable section**********************************************************/ + //******************************************************************************************************************************/ + let myip = document.location.hostname; + + //let myip = "192.168.88.235"; + //Flags + let showInput = false; + + let showModalFlag = false; + let additionalParams = false; + + //dashboard + let pages = []; + + //configuration + let configJson = []; + + let configJsonFlag = false; + let configJsonParced = false; + let widgetsJson = []; + let widgetsJsonFlag = false; + let widgetsJsonParced = false; + let itemsJson = []; + let itemsJsonFlag = false; + let itemsJsonParced = false; + let layoutJson = []; + let layoutJsonFlag = false; + let layoutJsonParced = false; + let settingsJson = {}; + let settingsJsonFlag = false; + let settingsJsonParced = false; + let ssidJson = {}; + let ssidJsonParced = false; + + //web sockets + let socket = []; + + let socketConnected = false; + let selectedDeviceData = undefined; + let selectedWs = 0; + let flag = true; + let newDevice = {}; + let coreMessages = []; + let oneOfJsonPackageError = false; + let deviceList = []; + + deviceList = [ + { + name: "--", + id: "--", + ip: myip, + status: false + } + ]; + + let incDeviceList = []; + let incDeviceListParced = false; + + //***********************************************************blob**************************************************************/ + var MyBlobBuilder = function () { + this.parts = []; + }; + + MyBlobBuilder.prototype.append = function (part) { + this.parts.push(part); + this.blob = undefined; // Invalidate the blob + }; + + MyBlobBuilder.prototype.getBlob = function () { + if (!this.blob) { + this.blob = new Blob(this.parts, { type: "binary" }); + } + + return this.blob; + }; + + MyBlobBuilder.prototype.clear = function () { + this.parts = []; + }; + + //***********************************************************navigation********************************************************/ + let currentPageName = undefined; + + var configJsonBlob = new MyBlobBuilder(); + var widgetsJsonBlob = new MyBlobBuilder(); + var itemsJsonBlob = new MyBlobBuilder(); + var layoutJsonBlob = new MyBlobBuilder(); + var settingsJsonBlob = new MyBlobBuilder(); + f.subscribe(handleNavigation); + + function handleNavigation() { + clearData(); + currentPageName = $router.path.toString(); + console.log("[i]", "user on page:", currentPageName); + sendCurrentPageName(); + } + + function sendCurrentPageName() { + if (selectedWs !== undefined) { + wsSendMsg(selectedWs, currentPageName); + } + } + + //****************************************************web sockets section******************************************************/ + function connectToAllDevices() { + //closeAllConnection(); + //socket = []; + getSelectedDeviceData(selectedWs); + + let ws = 0; + + deviceList.forEach(device => { + //if (debug) console.log("[i]", device.name, ws, device.ip, device.id); + device.ws = ws; + + if (!device.status) { + wsConnect(ws); + wsEventAdd(ws); + } + + ws++; + }); + + $$invalidate(14, deviceList); + } //socketConnected = selectedDeviceData.status; + + function closeAllConnection() { + let s; + + for (s in socket) { + socket[s].close(); + } + } + + function markDeviceStatus(ws, status) { + deviceList.forEach(device => { + if (device.ws === ws) { + device.status = status; + + if (debug) { + if (device.status) { + console.log("[i]", device.ip, "status online"); + } else { + console.log("[i]", device.ip, "status offline"); + } + } + } + }); + + $$invalidate(14, deviceList); + getSelectedDeviceData(selectedWs); + $$invalidate(10, socketConnected = selectedDeviceData.status); + } + + function getDeviceStatus(ws) { + let ret = false; + + deviceList.forEach(device => { + if (ws === device.ws) { + ret = device.status; + } + }); + + return ret; + } + + function wsConnect(ws) { + let ip = getIP(ws); + + if (ip === "error") { + if (debug) console.log("[e]", "device list wrong"); + } else { + socket[ws] = new WebSocket("ws://" + ip + ":81"); + socket.binaryType = "blob"; + + //socket[ws] = new WebSocket("ws://" + ip + "/ws"); + if (debug) console.log("[i]", ip, "started connecting..."); + } + } + + function getIP(ws) { + let ret = "error"; + + deviceList.forEach(device => { + if (ws === device.ws) { + ret = device.ip; + } + }); + + return ret; + } + + function wsEventAdd(ws) { + if (socket[ws]) { + let ip = getIP(ws); + if (debug) console.log("[i]", ip, "web socket events added"); + + socket[ws].addEventListener("open", function (event) { + if (debug) console.log("[i]", ip, "completed connecting"); + markDeviceStatus(ws, true); + sendCurrentPageName(); + }); //socket[ws].send("HELLO"); + + socket[ws].addEventListener("message", function (event) { + if (typeof event.data === "string") { + let data = event.data; + + //if (debug) console.log("[i]", getIP(ws), "msg received", data); // + //сборщик statusJson сообщений====================================== + if (data.includes("status")) { + if (IsJsonParse(data)) { + let statusJson = JSON.parse(data); + udatelayoutJson(statusJson); + wigetsUpdate(); + if (debug) console.log("[i]", "status json parced: ", statusJson); + } + } + + //сборщик ssidJson сообщений====================================== + if (data.includes("ssid")) { + if (IsJsonParse(data)) { + $$invalidate(9, ssidJson = JSON.parse(data)); + delete ssidJson.ssid; + $$invalidate(9, ssidJson); + ssidJsonParced = true; + if (debug) console.log("[i]", "ssid json parced"); + } + } + + //сборщик deviceList сообщений====================================== + if (data.includes("devicelist")) { + if (IsJsonParse(data)) { + incDeviceList = JSON.parse(data); + delete incDeviceList.devicelist; + incDeviceList = incDeviceList; + incDeviceListParced = true; + $$invalidate(14, deviceList = combineArrays(deviceList, incDeviceList)); + $$invalidate(14, deviceList); + whenDeviceListWasUpdated(); + connectToAllDevices(); + if (debug) console.log("[i]", "incDeviceList json parced", incDeviceList); + } + } + + //сборщик configJson пакетов======================================== + if (data === "/st/config.json") { + //if (debug) console.log("[i]", "configJson start!"); + configJsonFlag = true; + } + + if (data === "/end/config.json") { + //if (debug) console.log("[i]", "configJson end!"); + configJsonFlag = false; + + var bb = configJsonBlob.getBlob(); + let configJsonReader = new FileReader(); + configJsonReader.readAsText(bb); + + configJsonReader.onload = () => { + let configJsonResult = configJsonReader.result; + + if (IsJsonParse(configJsonResult)) { + $$invalidate(4, configJson = JSON.parse(configJsonResult)); + $$invalidate(4, configJson); + configJsonParced = true; + if (debug) console.log("[ii]", "configJson parced!"); + } + }; + } + + //сборщик widgetsJson пакетов======================================== + if (data === "/st/widgets.json") { + //if (debug) console.log("[i]", "widgetsJson start!"); + widgetsJsonFlag = true; + } + + if (data === "/end/widgets.json") { + //if (debug) console.log("[i]", "widgetsJson end!"); + widgetsJsonFlag = false; + + var bb = widgetsJsonBlob.getBlob(); + let widgetsJsonReader = new FileReader(); + widgetsJsonReader.readAsText(bb); + + widgetsJsonReader.onload = () => { + let widgetsJsonResult = widgetsJsonReader.result; + + if (IsJsonParse(widgetsJsonResult)) { + $$invalidate(5, widgetsJson = JSON.parse(widgetsJsonResult)); + $$invalidate(5, widgetsJson); + widgetsJsonParced = true; + if (debug) console.log("[ii]", "widgetsJson parced!"); + } + }; + } + + //сборщик itemsJson пакетов======================================== + if (data === "/st/items.json") { + //if (debug) console.log("[i]", "itemsJson start!"); + itemsJsonFlag = true; + } + + if (data === "/end/items.json") { + //if (debug) console.log("[i]", "itemsJson end!"); + itemsJsonFlag = false; + + var bb = itemsJsonBlob.getBlob(); + let itemsJsonReader = new FileReader(); + itemsJsonReader.readAsText(bb); + + itemsJsonReader.onload = () => { + let itemsJsonResult = itemsJsonReader.result; + + if (IsJsonParse(itemsJsonResult)) { + $$invalidate(6, itemsJson = JSON.parse(itemsJsonResult)); + $$invalidate(6, itemsJson); + itemsJsonParced = true; + if (debug) console.log("[ii]", "itemsJson parced!"); + } + }; + } + + //сборщик layoutJson пакетов======================================== + if (data === "/st/layout.json") { + //if (debug) console.log("[i]", "layoutJson start!"); + layoutJsonFlag = true; + } + + if (data === "/end/layout.json") { + //if (debug) console.log("[i]", "layoutJson end!"); + layoutJsonFlag = false; + + var bb = layoutJsonBlob.getBlob(); + let layoutJsonReader = new FileReader(); + layoutJsonReader.readAsText(bb); + + layoutJsonReader.onload = () => { + let layoutJsonResult = layoutJsonReader.result; + + if (IsJsonParse(layoutJsonResult)) { + $$invalidate(7, layoutJson = JSON.parse(layoutJsonResult)); + $$invalidate(7, layoutJson); + wigetsUpdate(); + layoutJsonParced = true; + if (debug) console.log("[ii]", "layoutJson parced!"); + } + }; + } + + //сборщик settingsJson пакетов======================================== + if (data === "/st/settings.json") { + //if (debug) console.log("[i]", "settingsJson start!"); + settingsJsonFlag = true; + } + + if (data === "/end/settings.json") { + //if (debug) console.log("[i]", "settingsJson end!"); + settingsJsonFlag = false; + + var bb = settingsJsonBlob.getBlob(); + let settingsJsonReader = new FileReader(); + settingsJsonReader.readAsText(bb); + + settingsJsonReader.onload = () => { + let settingsJsonResult = settingsJsonReader.result; + + if (IsJsonParse(settingsJsonResult)) { + $$invalidate(8, settingsJson = JSON.parse(settingsJsonResult)); + $$invalidate(8, settingsJson); + wigetsUpdate(); + settingsJsonParced = true; + updateThisDeviceInList(); + if (debug) console.log("[ii]", "settingsJson parced!"); + } + }; + } + } + + if (event.data instanceof Blob) { + if (configJsonFlag) configJsonBlob.append(event.data); + if (widgetsJsonFlag) widgetsJsonBlob.append(event.data); + if (itemsJsonFlag) itemsJsonBlob.append(event.data); + if (layoutJsonFlag) layoutJsonBlob.append(event.data); + if (settingsJsonFlag) settingsJsonBlob.append(event.data); + } + }); + + socket[ws].addEventListener("close", event => { + if (debug) console.log("[e]", ip, "connection closed"); + markDeviceStatus(ws, false); + }); + + socket[ws].addEventListener("error", function (event) { + if (debug) console.log("[e]", ip, "connection error"); + markDeviceStatus(ws, false); + }); + } else { + if (debug) console.log("[e]", "socket not exist"); + } + } + + function saveConfig() { + wsSendMsg(selectedWs, "/tuoyal" + JSON.stringify(generateLayout())); + wsSendMsg(selectedWs, "/gifnoc" + JSON.stringify(configJson)); + clearData(); + sendCurrentPageName(); + } + + function saveSettings() { + wsSendMsg(selectedWs, "/cennoc" + JSON.stringify(settingsJson)); + clearData(); + sendCurrentPageName(); + } + + function generateLayout() { + let layout = []; + + for (let i = 0; i < configJson.length; i++) { + let config = Object.assign({}, configJson[i]); + let setWidget = config.widget; + let error = true; + + for (let w = 0; w < widgetsJson.length; w++) { + if (setWidget === widgetsJson[w].name) { + let widget = Object.assign({}, widgetsJson[w]); + widget.page = config.page; + widget.descr = config.descr; + + //widget.id = config.id; + //widget.ws = selectedWs; + widget.topic = settingsJson.root + "/" + config.id; + + layout.push(widget); + error = false; + break; + } else { + error = true; + } + } + + if (error) console.log("[e]", "error, widget not found: " + setWidget); + } + + if (debug) console.log("[i] layout:", JSON.stringify(layout)); + return layout; + } + + function udatelayoutJson(newStatusJson) { + for (let i = 0; i < layoutJson.length; i++) { + let topic = layoutJson[i].topic; + + if (topic === newStatusJson.topic) { + $$invalidate(7, layoutJson[i].status = newStatusJson.status, layoutJson); + break; + } + } + } + + function clearData() { + $$invalidate(4, configJson = []); + configJsonBlob.clear(); + $$invalidate(5, widgetsJson = []); + widgetsJsonBlob.clear(); + $$invalidate(6, itemsJson = []); + itemsJsonBlob.clear(); + $$invalidate(7, layoutJson = []); + layoutJsonBlob.clear(); + $$invalidate(8, settingsJson = {}); + settingsJsonBlob.clear(); + configJsonParced = false; + widgetsJsonParced = false; + itemsJsonParced = false; + layoutJsonParced = false; + settingsJsonParced = false; + ssidJsonParced = false; + if (debug) console.log("[i]", "all app data cleared"); + } + + function wsPush(ws, topic, status) { + let msg = topic + " " + status; + if (debug) console.log("[i]", "send to ws msg:", msg); + wsSendMsg(ws, msg); + } + + function wsTestMsgTask() { + setTimeout(wsTestMsgTask, reconnectTimeout); + if (debug) console.log("[i]", "----timer tick----"); + + if (!flag) { + deviceList.forEach(device => { + if (!getDeviceStatus(device.ws)) { + wsConnect(device.ws); + wsEventAdd(device.ws); + } else { + wsSendMsg(device.ws, "tst"); + } + }); + } + + flag = false; + } + + function wsSendMsg(ws, msg) { + if (socket[ws] && socket[ws].readyState === 1) { + socket[ws].send(msg); + if (debug) console.log("[i]", getIP(ws), "msg send success", msg); + } else { + if (debug) console.log("[e]", getIP(ws), "msg not send", msg); + } + } + + //***********************************************************dashboard***************************************************************/ + function findNewPage() { + $$invalidate(3, pages = []); + const newPage = Array.from(new Set(Array.from(layoutJson, ({ page }) => page))); + + newPage.forEach(function (item, i, arr) { + $$invalidate(3, pages = [...pages, JSON.parse(JSON.stringify({ page: item }))]); + }); + + pages.sort(function (a, b) { + if (a.page < b.page) { + return -1; + } + + if (a.page > b.page) { + return 1; + } + + return 0; + }); + } + + function wigetsUpdate() { + findNewPage(); + } + + //***********************************************************logging******************************************************************/ + const addCoreMsg = msg => { + if (coreMessages.length > Number(LOG_MAX_MESSAGES)) { + $$invalidate(13, coreMessages = coreMessages.slice(0)); + } + + const time = new Date().getTime(); + $$invalidate(13, coreMessages = [...coreMessages, { time, msg }]); + + coreMessages.sort(function (a, b) { + if (a.time > b.time) { + return -1; + } + + if (a.time < b.time) { + return 1; + } + + return 0; + }); + }; + + function whenDeviceListWasUpdated() { + getSelectedDeviceData(selectedWs); + $$invalidate(10, socketConnected = selectedDeviceData.status); + } + + function devicesDropdownChange() { + whenDeviceListWasUpdated(); + clearData(); + sendCurrentPageName(); + if (debug) console.log("[i]", "user selected device:", selectedDeviceData.name); + + if (selectedDeviceData.ip === myip) { + if (debug) console.log("[i]", "user selected original device", selectedDeviceData.name); + } + } + + function getSelectedDeviceData(ws) { + for (let i = 0; i < deviceList.length; i++) { + let device = deviceList[i]; + + if (device.ws === ws) { + selectedDeviceData = device; + break; + } + } + } + + function devListSave() { + //createDefaultDevice(); + if (!showInput) { + if (newDevice.name !== undefined && newDevice.ip !== undefined && newDevice.id !== undefined) { + $$invalidate(12, newDevice.status = false, newDevice); + deviceList.push(newDevice); + $$invalidate(14, deviceList); + $$invalidate(12, newDevice = {}); + whenDeviceListWasUpdated(); + connectToAllDevices(); + if (debug) console.log("[i]", "selected device:", selectedDeviceData); + } else { + if (debug) console.log("[e]", "wrong data"); + } + } + } + + function updateThisDeviceInList() { + for (let i = 0; i < deviceList.length; i++) { + let device = deviceList[i]; + + if (device.ip === myip) { + device.name = settingsJson.name; + device.id = settingsJson.id; + $$invalidate(8, settingsJson); + break; + } + } + } + + const syntaxHighlight = json => { + try { + json = JSON.stringify(JSON.parse(json), null, 4); + } catch(e) { + return json; + } + + json = json.replace(/&/g, "&").replace(//g, ">"); + + json = json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) { + return match; + }); + + return json; + }; + + function IsJsonParse(str) { + try { + JSON.parse(str); + } catch(e) { + oneOfJsonPackageError = true; + if (debug) console.log("[e]", "json error"); + return false; + } + + oneOfJsonPackageError = false; + return true; + } + + //пример как формировать массив json + function createWidgetsDropdown() { + let widgetsDropdown = []; + + widgetsJson.forEach(widget => { + widgetsDropdown.push({ id: widget.name, val: widget.rus }); + }); + + widgetsDropdown = widgetsDropdown; + if (debug) console.log("[i]", widgetsDropdown); + } + + //**********************************************************post and get*****************************************************************/ + //editRequest("192.168.88.235", "data data data data", "file.json") + function editRequest(url, data, filename) { + if (debug) console.log("[i]", "request for edit file"); + var xmlHttp = new XMLHttpRequest(); + var formData = new FormData(); + formData.append("data", new Blob([data], { type: "text/json" }), "/" + filename); + xmlHttp.open("POST", "http://" + url + "/edit"); + + xmlHttp.onload = function () { + + }; //во время загрузки + + xmlHttp.send(formData); + } + + function showAdditionalParams(id) { + additionalParams = true; + if (debug) console.log("[i]", "user open add params ", id); + } + + //**********************************************************modal*************************************************************************/ + function showModal() { + $$invalidate(2, showModalFlag = !showModalFlag); + } + + function onCheck() { + let width = screen.width; + console.log("width", width); + + if (width < 900) { + $$invalidate(1, preventMove = true); + } else { + $$invalidate(1, preventMove = false); + } + } + + //************************************************elements and presets dropdown************************************************************/ + function ssidDropdownClick() { + wsSendMsg(selectedWs, "/scan"); + } + + //*******************************************************initialisation********************************************************************/ + onMount(async () => { + console.log("[i]", "mounted"); + connectToAllDevices(); + wsTestMsgTask(); + whenDeviceListWasUpdated(); + findNewPage(); + }); + + const writable_props = []; + + Object_1.keys($$props).forEach(key => { + if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console_1.warn(` was created with unknown prop '${key}'`); + }); + + function select_change_handler() { + selectedWs = select_value(this); + $$invalidate(11, selectedWs); + $$invalidate(14, deviceList); + } + + const change_handler = () => devicesDropdownChange(); + + function input_change_handler() { + opened = this.checked; + $$invalidate(0, opened); + } + + const change_handler_1 = () => onCheck(); + const func = (ws, topic, status) => wsPush(ws, topic, status); + const func_1 = () => saveConfig(); + const func_2 = () => ssidDropdownClick(); + const func_3 = () => saveSettings(); + const func_4 = () => showModal(); + const func_5 = json => syntaxHighlight(json); + const func_6 = () => devListSave(); + + $$self.$capture_state = () => ({ + onMount, + Route, + router: f, + active: A, + Alarm, + Modal, + DashboardPage: Dashboard, + ConfigPage: Config, + ConnectionPage: Connection, + UtilitiesPage: Utilities, + LogPage: Log, + ListPage: List, + AboutPage: About, + CloudIcon: Cloud, + debug, + LOG_MAX_MESSAGES, + reconnectTimeout, + opened, + preventMove, + myip, + showInput, + showModalFlag, + additionalParams, + pages, + configJson, + configJsonFlag, + configJsonParced, + widgetsJson, + widgetsJsonFlag, + widgetsJsonParced, + itemsJson, + itemsJsonFlag, + itemsJsonParced, + layoutJson, + layoutJsonFlag, + layoutJsonParced, + settingsJson, + settingsJsonFlag, + settingsJsonParced, + ssidJson, + ssidJsonParced, + socket, + socketConnected, + selectedDeviceData, + selectedWs, + flag, + newDevice, + coreMessages, + oneOfJsonPackageError, + deviceList, + incDeviceList, + incDeviceListParced, + MyBlobBuilder, + currentPageName, + configJsonBlob, + widgetsJsonBlob, + itemsJsonBlob, + layoutJsonBlob, + settingsJsonBlob, + handleNavigation, + sendCurrentPageName, + connectToAllDevices, + closeAllConnection, + markDeviceStatus, + getDeviceStatus, + wsConnect, + getIP, + wsEventAdd, + saveConfig, + saveSettings, + generateLayout, + udatelayoutJson, + clearData, + wsPush, + wsTestMsgTask, + wsSendMsg, + findNewPage, + wigetsUpdate, + addCoreMsg, + combineArrays, + whenDeviceListWasUpdated, + devicesDropdownChange, + getSelectedDeviceData, + devListSave, + updateThisDeviceInList, + getJsonObject, + syntaxHighlight, + IsJsonParse, + createWidgetsDropdown, + editRequest, + handleSubmit, + getRequestJson, + showAdditionalParams, + showModal, + onCheck, + ssidDropdownClick, + $router + }); + + $$self.$inject_state = $$props => { + if ('debug' in $$props) debug = $$props.debug; + if ('LOG_MAX_MESSAGES' in $$props) LOG_MAX_MESSAGES = $$props.LOG_MAX_MESSAGES; + if ('reconnectTimeout' in $$props) reconnectTimeout = $$props.reconnectTimeout; + if ('opened' in $$props) $$invalidate(0, opened = $$props.opened); + if ('preventMove' in $$props) $$invalidate(1, preventMove = $$props.preventMove); + if ('myip' in $$props) myip = $$props.myip; + if ('showInput' in $$props) $$invalidate(15, showInput = $$props.showInput); + if ('showModalFlag' in $$props) $$invalidate(2, showModalFlag = $$props.showModalFlag); + if ('additionalParams' in $$props) additionalParams = $$props.additionalParams; + if ('pages' in $$props) $$invalidate(3, pages = $$props.pages); + if ('configJson' in $$props) $$invalidate(4, configJson = $$props.configJson); + if ('configJsonFlag' in $$props) configJsonFlag = $$props.configJsonFlag; + if ('configJsonParced' in $$props) configJsonParced = $$props.configJsonParced; + if ('widgetsJson' in $$props) $$invalidate(5, widgetsJson = $$props.widgetsJson); + if ('widgetsJsonFlag' in $$props) widgetsJsonFlag = $$props.widgetsJsonFlag; + if ('widgetsJsonParced' in $$props) widgetsJsonParced = $$props.widgetsJsonParced; + if ('itemsJson' in $$props) $$invalidate(6, itemsJson = $$props.itemsJson); + if ('itemsJsonFlag' in $$props) itemsJsonFlag = $$props.itemsJsonFlag; + if ('itemsJsonParced' in $$props) itemsJsonParced = $$props.itemsJsonParced; + if ('layoutJson' in $$props) $$invalidate(7, layoutJson = $$props.layoutJson); + if ('layoutJsonFlag' in $$props) layoutJsonFlag = $$props.layoutJsonFlag; + if ('layoutJsonParced' in $$props) layoutJsonParced = $$props.layoutJsonParced; + if ('settingsJson' in $$props) $$invalidate(8, settingsJson = $$props.settingsJson); + if ('settingsJsonFlag' in $$props) settingsJsonFlag = $$props.settingsJsonFlag; + if ('settingsJsonParced' in $$props) settingsJsonParced = $$props.settingsJsonParced; + if ('ssidJson' in $$props) $$invalidate(9, ssidJson = $$props.ssidJson); + if ('ssidJsonParced' in $$props) ssidJsonParced = $$props.ssidJsonParced; + if ('socket' in $$props) socket = $$props.socket; + if ('socketConnected' in $$props) $$invalidate(10, socketConnected = $$props.socketConnected); + if ('selectedDeviceData' in $$props) selectedDeviceData = $$props.selectedDeviceData; + if ('selectedWs' in $$props) $$invalidate(11, selectedWs = $$props.selectedWs); + if ('flag' in $$props) flag = $$props.flag; + if ('newDevice' in $$props) $$invalidate(12, newDevice = $$props.newDevice); + if ('coreMessages' in $$props) $$invalidate(13, coreMessages = $$props.coreMessages); + if ('oneOfJsonPackageError' in $$props) oneOfJsonPackageError = $$props.oneOfJsonPackageError; + if ('deviceList' in $$props) $$invalidate(14, deviceList = $$props.deviceList); + if ('incDeviceList' in $$props) incDeviceList = $$props.incDeviceList; + if ('incDeviceListParced' in $$props) incDeviceListParced = $$props.incDeviceListParced; + if ('MyBlobBuilder' in $$props) MyBlobBuilder = $$props.MyBlobBuilder; + if ('currentPageName' in $$props) currentPageName = $$props.currentPageName; + if ('configJsonBlob' in $$props) configJsonBlob = $$props.configJsonBlob; + if ('widgetsJsonBlob' in $$props) widgetsJsonBlob = $$props.widgetsJsonBlob; + if ('itemsJsonBlob' in $$props) itemsJsonBlob = $$props.itemsJsonBlob; + if ('layoutJsonBlob' in $$props) layoutJsonBlob = $$props.layoutJsonBlob; + if ('settingsJsonBlob' in $$props) settingsJsonBlob = $$props.settingsJsonBlob; + }; + + if ($$props && "$$inject" in $$props) { + $$self.$inject_state($$props.$$inject); + } + + return [ + opened, + preventMove, + showModalFlag, + pages, + configJson, + widgetsJson, + itemsJson, + layoutJson, + settingsJson, + ssidJson, + socketConnected, + selectedWs, + newDevice, + coreMessages, + deviceList, + showInput, + saveConfig, + saveSettings, + wsPush, + wigetsUpdate, + devicesDropdownChange, + devListSave, + syntaxHighlight, + showModal, + onCheck, + ssidDropdownClick, + select_change_handler, + change_handler, + input_change_handler, + change_handler_1, + func, + func_1, + func_2, + func_3, + func_4, + func_5, + func_6 + ]; + } + + class App extends SvelteComponentDev { + constructor(options) { + super(options); + init(this, options, instance, create_fragment, safe_not_equal, {}, null, [-1, -1, -1, -1]); + + dispatch_dev("SvelteRegisterComponent", { + component: this, + tagName: "App", + options, + id: create_fragment.name + }); + } + } + + const app = new App({ + target: document.body, + props: { + name: 'world' + } + }); + + return app; + +})(); //# sourceMappingURL=bundle.js.map diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp index f49d892f..5fac2f68 100644 --- a/src/DeviceList.cpp +++ b/src/DeviceList.cpp @@ -5,7 +5,14 @@ void addThisDeviceToList() { jsonWriteStr_(devListJson, "ip", jsonReadStr(settingsFlashJson, "ip")); jsonWriteStr_(devListJson, "id", jsonReadStr(settingsFlashJson, "id")); jsonWriteStr_(devListJson, "name", jsonReadStr(settingsFlashJson, "name")); - jsonWriteBool_(devListJson, "status", true); + + devListJson = devListJson + ","; + String test; + jsonWriteStr_(test, "ip", "192.168.88.88"); + jsonWriteStr_(test, "id", "123456789"); + jsonWriteStr_(test, "name", "test"); + devListJson = devListJson + test; + devListJson = "[" + devListJson + "]"; Serial.println(devListJson); } \ No newline at end of file diff --git a/src/Main.cpp b/src/Main.cpp index 4ff521f5..9fdd3b87 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -48,7 +48,7 @@ void setup() { configure("/config.json"); - //создали задачу которая будет выполняться каждые 30 секунд + //задачи редкого выполнения ts.add( MYTEST, 1000 * 30, [&](void*) { SerialPrint(F("i"), F("HEAP"), prettyBytes(ESP.getFreeHeap())); diff --git a/src/WsServer.cpp b/src/WsServer.cpp index 0ce68062..318fcacc 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -62,8 +62,8 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) } // list =================================================================== if (headerStr == "/list") { - // standWebSocket.sendTXT(num, devListJson); - // sendFileToWs("/settings.json", num, 1024); + standWebSocket.sendTXT(num, devListJson); + sendFileToWs("/settings.json", num, 1024); } } break;