diff --git a/css/app.3d0ce5fd.css b/css/app.3d0ce5fd.css deleted file mode 100644 index 90d4b9c..0000000 --- a/css/app.3d0ce5fd.css +++ /dev/null @@ -1,3 +0,0 @@ -#map[data-v-3d4f7f42]{width:100vw;height:calc(100vh - 65px)} - -/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,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:-.25em}sup{top:-.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}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter var,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}*,:after,:before{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}[role=button],button{cursor:pointer}:-moz-focusring{outline:auto}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}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--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;--tw-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));--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity));--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;--tw-shadow:0 0 #0000;--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);--tw-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.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}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.z-0{z-index:0}.mx-auto{margin-left:auto;margin-right:auto}.-my-px{margin-top:-1px;margin-bottom:-1px}.ml-6{margin-left:1.5rem}.mt-0{margin-top:0}.mt-2{margin-top:.5rem}.mr-1\.5{margin-right:.375rem}.mr-1{margin-right:.25rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-16{height:4rem}.h-8{height:2rem}.h-5{height:1.25rem}.h-10{height:2.5rem}.h-6{height:1.5rem}.min-h-screen{min-height:100vh}.w-auto{width:auto}.w-5{width:1.25rem}.w-10{width:2.5rem}.w-6{width:1.5rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.translate-y-4{--tw-translate-y:1rem;transform:var(--tw-transform)}.translate-y-0{--tw-translate-y:0px}.transform,.translate-y-0{transform:var(--tw-transform)}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(229,231,235,var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99,102,241,var(--tw-border-opacity))}.border-transparent{border-color:transparent}.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-green-600{--tw-bg-opacity:1;background-color:rgba(5,150,105,var(--tw-bg-opacity))}.px-4{padding-left:1rem;padding-right:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pb-2{padding-bottom:.5rem}.pt-5{padding-top:1.25rem}.pb-4{padding-bottom:1rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-bottom{vertical-align:bottom}.text-sm{font-size:.875rem;line-height:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.font-semibold{font-weight:600}.leading-7{line-height:1.75rem}.leading-6{line-height:1.5rem}.text-gray-900{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}.filter{filter:var(--tw-filter)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.focus-within\:ring-2:focus-within{--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-within\:ring-inset:focus-within{--tw-ring-inset:inset}.focus-within\:ring-indigo-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(99,102,241,var(--tw-ring-opacity))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgba(4,120,87,var(--tw-bg-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99,102,241,var(--tw-ring-opacity))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(16,185,129,var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}@media (min-width:640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:translate-y-0{--tw-translate-y:0px;transform:var(--tw-transform)}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sm\:scale-95,.sm\:scale-100{transform:var(--tw-transform)}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:768px){.md\:max-w-lg{max-width:32rem}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1280px){.xl\:px-8{padding-left:2rem;padding-right:2rem}} \ No newline at end of file diff --git a/css/app.76cd172f.css b/css/app.76cd172f.css new file mode 100644 index 0000000..6e8f5a7 --- /dev/null +++ b/css/app.76cd172f.css @@ -0,0 +1,3 @@ +#map[data-v-3d4f7f42]{width:100vw;height:calc(100vh - 65px)} + +/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,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:-.25em}sup{top:-.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}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter var,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}*,:after,:before{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::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:-moz-focusring{outline:auto}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}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--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;--tw-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));--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity));--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);--tw-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.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}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.right-0{right:0}.z-10{z-index:10}.z-0{z-index:0}.mx-auto{margin-left:auto;margin-right:auto}.-my-px{margin-top:-1px;margin-bottom:-1px}.ml-6{margin-left:1.5rem}.mt-0{margin-top:0}.mt-2{margin-top:.5rem}.mr-1\.5{margin-right:.375rem}.mr-1{margin-right:.25rem}.mt-5{margin-top:1.25rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-16{height:4rem}.h-8{height:2rem}.h-5{height:1.25rem}.h-10{height:2.5rem}.h-6{height:1.5rem}.min-h-screen{min-height:100vh}.w-auto{width:auto}.w-5{width:1.25rem}.w-10{width:2.5rem}.w-6{width:1.5rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.translate-y-4{--tw-translate-y:1rem;transform:var(--tw-transform)}.translate-y-0{--tw-translate-y:0px}.transform,.translate-y-0{transform:var(--tw-transform)}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(229,231,235,var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99,102,241,var(--tw-border-opacity))}.border-transparent{border-color:transparent}.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-green-600{--tw-bg-opacity:1;background-color:rgba(5,150,105,var(--tw-bg-opacity))}.px-4{padding-left:1rem;padding-right:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pb-2{padding-bottom:.5rem}.pt-5{padding-top:1.25rem}.pb-4{padding-bottom:1rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-bottom{vertical-align:bottom}.text-sm{font-size:.875rem;line-height:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.font-semibold{font-weight:600}.leading-7{line-height:1.75rem}.leading-6{line-height:1.5rem}.text-gray-900{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.filter{filter:var(--tw-filter)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.focus-within\:ring-2:focus-within{--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-within\:ring-inset:focus-within{--tw-ring-inset:inset}.focus-within\:ring-indigo-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(99,102,241,var(--tw-ring-opacity))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgba(4,120,87,var(--tw-bg-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99,102,241,var(--tw-ring-opacity))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(16,185,129,var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}@media (min-width:640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:translate-y-0{--tw-translate-y:0px;transform:var(--tw-transform)}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sm\:scale-100,.sm\:scale-95{transform:var(--tw-transform)}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:flex-wrap{flex-wrap:wrap}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:768px){.md\:max-w-lg{max-width:32rem}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width:1280px){.xl\:px-8{padding-left:2rem;padding-right:2rem}} \ No newline at end of file diff --git a/img/mailblox-logo-text.7c4dca7b.svg b/img/mailblox-logo-text.ff3b8377.svg similarity index 100% rename from img/mailblox-logo-text.7c4dca7b.svg rename to img/mailblox-logo-text.ff3b8377.svg diff --git a/img/mailblox-logo.b673063b.svg b/img/mailblox-logo.10f937a6.svg similarity index 100% rename from img/mailblox-logo.b673063b.svg rename to img/mailblox-logo.10f937a6.svg diff --git a/index.html b/index.html index c541bed..5f0414d 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Mailblox App
\ No newline at end of file +Mailblox App
\ No newline at end of file diff --git a/js/app-legacy.1fe28be6.js b/js/app-legacy.1fe28be6.js deleted file mode 100644 index 378acc6..0000000 --- a/js/app-legacy.1fe28be6.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){var e={7798:function(e){e.exports={apiKey:"AIzaSyDap-HKdYEixb8w4ZXZd8izJqSTmKthvIU",authDomain:"mailblox.firebaseapp.com",projectId:"mailblox",storageBucket:"mailblox.appspot.com",messagingSenderId:"12664572144",appId:"1:12664572144:web:e80b93bb73c3e7b9a2da35",measurementId:"G-7QZSQFT6KP"}},9735:function(e,t,n){"use strict";n(6992),n(8674),n(9601),n(7727);var s=n(9963),i=n(6252),r=n(3577),o=n.p+"img/mailblox-logo.b673063b.svg",a=n.p+"img/mailblox-logo-text.7c4dca7b.svg",l={class:"min-h-screen bg-white"},d={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"},u={class:"flex justify-between h-16"},c={class:"flex"},f=(0,i._)("div",{class:"flex-shrink-0 flex items-center"},[(0,i._)("img",{class:"block lg:hidden h-8 w-auto",src:o,alt:"Mailblox"}),(0,i._)("img",{class:"hidden lg:block h-8 w-auto",src:a,alt:"Mailblox"})],-1),g={class:"flex -my-px ml-6 space-x-8"},m=["href","aria-current","onClick"],p=["href","aria-current","onClick"];function b(e,t,n,s,o,a){var b=(0,i.up)("router-link"),h=(0,i.up)("Disclosure"),v=(0,i.up)("router-view");return(0,i.wg)(),(0,i.iD)("div",l,[(0,i.Wm)(h,{as:"nav",class:"bg-white border-b border-gray-200"},{default:(0,i.w5)((function(){return[(0,i._)("div",d,[(0,i._)("div",u,[(0,i._)("div",c,[f,(0,i._)("div",g,[(0,i.Wm)(b,{to:{name:"Map"},custom:""},{default:(0,i.w5)((function(e){var t=e.href,n=e.navigate,s=e.isActive;return[(0,i._)("a",{href:t,class:(0,r.C_)([s?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"]),"aria-current":s?"page":void 0,onClick:n}," Karte ",10,m)]})),_:1}),(0,i.Wm)(b,{to:{name:"Addresses"},custom:""},{default:(0,i.w5)((function(e){var t=e.href,n=e.navigate,s=e.isActive;return[(0,i._)("a",{href:t,class:(0,r.C_)([s?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"]),"aria-current":s?"page":void 0,onClick:n}," Adressen ",10,p)]})),_:1})])])])])]})),_:1}),(0,i.Wm)(v,null,{default:(0,i.w5)((function(e){var t=e.Component;return[((0,i.wg)(),(0,i.j4)(i.Ob,{include:"Map"},[((0,i.wg)(),(0,i.j4)((0,i.LL)(t)))],1024))]})),_:1})])}var h=n(2106),v={components:{Disclosure:h.pJ}},y=n(3744);const x=(0,y.Z)(v,[["render",b]]);var _=x,w=n(2119);function S(e,t,n,s,r,o){var a=(0,i.up)("mapbox");return(0,i.wg)(),(0,i.j4)(a)}var I=function(e){return(0,i.dD)("data-v-3d4f7f42"),e=e(),(0,i.Cn)(),e},k=I((function(){return(0,i._)("div",{id:"map"},null,-1)}));function A(e,t,n,s,r,o){var a=(0,i.up)("Modal");return(0,i.wg)(),(0,i.iD)(i.HY,null,[k,(0,i.Wm)(a,{ref:"modal",onClose:o.onModalClose,onSave:o.updateFilter},null,8,["onClose","onSave"])],64)}var C=n(2217),B=n(6347),Z=(n(4747),n(1539),n(9714),n(1249),n(7327),n(2222),n(6158)),O=n.n(Z),L={class:"flex items-end justify-center min-h-screen pt-2 px-2 pb-2 text-center"},M={class:"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle md:max-w-lg w-full sm:p-6"},j={class:"block absolute top-0 right-0 pt-4 pr-4"},D=(0,i._)("span",{class:"sr-only"},"Schliessen",-1),F={class:"sm:mt-0 sm:text-left"},P=(0,i.Uk)(" Adressen "),q={class:"mt-2"},z=["onClick"],R={key:0},T=["for"],W={class:"mt-5 sm:mt-4"};function H(e,t,n,s,o,a){var l=(0,i.up)("XIcon"),d=(0,i.up)("DialogTitle"),u=(0,i.up)("vue-number-input"),c=(0,i.up)("TransitionChild"),f=(0,i.up)("Dialog"),g=(0,i.up)("TransitionRoot");return(0,i.wg)(),(0,i.j4)(g,{as:"template",show:e.open},{default:(0,i.w5)((function(){return[(0,i.Wm)(f,{as:"div",class:"fixed z-10 inset-0 overflow-y-auto",onClose:e.closeModal},{default:(0,i.w5)((function(){return[(0,i._)("div",L,[(0,i.Wm)(c,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95","enter-to":"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200","leave-from":"opacity-100 translate-y-0 sm:scale-100","leave-to":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"},{default:(0,i.w5)((function(){return[(0,i._)("div",M,[(0,i._)("div",j,[(0,i._)("button",{type:"button",class:"bg-white rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",onClick:t[0]||(t[0]=function(){return e.closeModal&&e.closeModal.apply(e,arguments)})},[D,(0,i.Wm)(l,{class:"h-6 w-6","aria-hidden":"true"})])]),(0,i._)("div",F,[(0,i.Wm)(d,{as:"h3",class:"text-lg leading-6 font-medium text-gray-900"},{default:(0,i.w5)((function(){return[P]})),_:1}),(0,i._)("div",q,[(0,i._)("ul",null,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.addressesStore.selectedAddresses,(function(t,n){return(0,i.wg)(),(0,i.iD)("li",{key:n,class:"cursor-pointer py-2",onClick:function(t){return e.selectAddress(n)}},[(0,i._)("p",null,(0,r.zw)(e.getAddressText(t)),1),e.selectedIndex===n||1===e.addressesStore.selectedAddresses.length?((0,i.wg)(),(0,i.iD)("div",R,[(0,i._)("label",{for:"form-number-parties-"+n,class:"w-full text-gray-700 text-sm font-semibold"},"Anzahl Parteien",8,T),(0,i.Wm)(u,{modelValue:t.party_quantity,"onUpdate:modelValue":function(e){return t.party_quantity=e},attrs:{id:"form-number-parties-"+n},min:0,center:"",controls:""},null,8,["modelValue","onUpdate:modelValue","attrs"])])):(0,i.kq)("",!0)],8,z)})),128))])])]),(0,i._)("div",W,[(0,i._)("button",{type:"button",class:"w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-green-600 text-base font-medium text-white hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500",onClick:t[1]||(t[1]=function(){return e.saveModal&&e.saveModal.apply(e,arguments)})}," Speichern ")])])]})),_:1})])]})),_:1},8,["onClose"])]})),_:1},8,["show"])}n(9826);var U=n(2262),K=n(51),N=n(7939),J=n(7990),E=(n(2707),n(5684)),Y=n(8534),V=(n(5666),n(5503)),$=n(1591),Q=n(7798),G=n.n(Q),X=(0,V.ZF)(G()),ee=(0,$.ad)(X),te=ee,ne={fetch:function(){return(0,Y.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,(0,$.PL)((0,$.hJ)(te,"addresses"));case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))()},update:function(e){return(0,Y.Z)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,(0,$.r7)((0,$.JU)(te,"addresses",e.id),{party_quantity:e.party_quantity});case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})))()}},se=n(5762),ie=(0,E.Q_)("addresses",{state:function(){return{addressItems:(0,se._aR)("addresses",[]),addressesLoaded:(0,se._aR)("addressesLoaded",!1),selectedAddresses:null}},getters:{getAddresses:function(e){return e.addressItems},getAddressesById:function(e){return function(t){return e.addressItems.find((function(e){return e.id===t}))}},getSortedAddresses:function(e){return e.addressItems.sort((function(e,t){return e.streett.street?1:0}))},isAddressesLoaded:function(e){return e.addressesLoaded}},actions:{fetchAddresses:function(){var e=this;return new Promise((function(t,n){e.addressesLoaded?t(e.addressItems):ne.fetch().then((function(n){var s=n.docs.map((function(e){return(0,J.Z)({id:e.id},e.data())}));console.log("Addresses Loaded",s),e.addressItems=s,e.addressesLoaded=!0,t(s)})).catch((function(e){n(e)}))}))},saveAddress:function(e){var t,n=(0,B.Z)(e);try{for(n.s();!(t=n.n()).done;){var s=t.value;ne.update(s)}}catch(i){n.e(i)}finally{n.f()}}}}),re={fetch:function(){return(0,Y.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return console.log("firestore",te),e.next=3,(0,$.PL)((0,$.hJ)(te,"buildings"));case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})))()},update:function(e,t){return(0,Y.Z)(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return n.next=2,(0,$.r7)((0,$.JU)(te,"buildings",e.id),{record_status:t});case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}}),n)})))()}},oe=(0,E.Q_)("buildings",{state:function(){return{buildingItems:(0,se._aR)("buildings",[]),buildingsLoaded:(0,se._aR)("buildingsLoaded",!1),selectedBuilding:null}},getters:{getBuildings:function(e){return e.buildingItems},getBuildingsByOsmId:function(e){return function(t){return e.buildingItems.find((function(e){return e.osm_id===t}))}},isBuildingsLoaded:function(e){return e.buildingsLoaded}},actions:{fetchBuildings:function(){var e=this;return new Promise((function(t,n){e.buildingsLoaded?t(e.buildingItems):(console.log("Fetching buildings"),re.fetch().then((function(n){console.log(n);var s=n.docs.map((function(e){return(0,J.Z)({id:e.id},e.data())}));console.log("buildings loaded",s),e.buildingItems=s,e.buildingsLoaded=!0,t(s)})).catch((function(e){n(e)})))}))},saveBuilding:function(e,t){re.update(e,t)}}}),ae=(0,i.aZ)({components:{Dialog:h.Vq,DialogTitle:h.$N,TransitionChild:h.xY,TransitionRoot:h.Qm,XIcon:K.Z,VueNumberInput:N.Z},setup:function(){var e=ie(),t=oe(),n=(0,U.iH)(!1),s=(0,U.iH)(null);return{open:n,addressesStore:e,buildingsStore:t,selectedIndex:s,setIsOpen:function(e){n.value=e},selectAddress:function(e){s.value=e}}},methods:{closeModal:function(){this.setIsOpen(!1),this.$emit("close"),this.addressesStore.selectedAddresses=null,this.buildingsStore.selectedBuilding=null,this.selectedIndex=null},saveModal:function(){var e,t=this,n=0,s=(0,B.Z)(this.addressesStore.selectedAddresses);try{var i=function(){var s=e.value,i=t.addressesStore.addressItems.find((function(e){return e.id===s.id})),r=t.addressesStore.addressItems.indexOf(i);t.addressesStore.addressItems[r].party_quantity=s.party_quantity,s.party_quantity>0&&n++};for(s.s();!(e=s.n()).done;)i()}catch(r){s.e(r)}finally{s.f()}n===this.addressesStore.selectedAddresses.length?(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"complete"),this.$emit("save","complete")):n>0?(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"partial"),this.$emit("save","partial")):(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"empty"),this.$emit("save","empty")),this.addressesStore.saveAddress(this.addressesStore.selectedAddresses),this.closeModal()},getAddressText:function(e){return e.street||e.housenumber?"".concat(e.street," ").concat(e.housenumber||""):"Keine eindeutige Adresse"}}});const le=(0,y.Z)(ae,[["render",H]]);var de=le,ue={name:"Mapbox",components:{Modal:de},setup:function(){var e=ie(),t=oe(),n=[],s=[],i=[];return t.getBuildings.forEach((function(e){0===e.addresses.length&&n.push(e.osm_id.toString()),"complete"===e.record_status&&s.push(e.osm_id.toString()),"partial"===e.record_status&&i.push(e.osm_id.toString())})),{buildingNoAddress:n,buildingComplete:s,buildingPartial:i,addressesStore:e,buildingsStore:t}},data:function(){return{modalAddresses:[],building:Object}},beforeMount:function(){this.addressesStore.fetchAddresses(),this.buildingsStore.fetchBuildings()},mounted:function(){var e=this;O().accessToken="pk.eyJ1Ijoid3Zpc2lvbiIsImEiOiJjbTBkaXNmNjcwYWZjMmlxdGljdTR5MzlxIn0.tZax7GukcL3-dETMcNA2vw",this.map=new(O().Map)({container:"map",style:"mapbox://styles/mapbox/streets-v11",center:[8.109,47.174],zoom:14}),this.map.on("load",(function(){e.map.addSource("buildings",{type:"vector",url:"mapbox://wvision.bd5gcv6m"}),e.map.addLayer({id:"buildings",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(0, 0, 0, 0.1)"}},"settlement-label"),e.map.addLayer({id:"buildings-no-address",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(255,0,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),e.map.addLayer({id:"buildings-complete",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(0,255,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),e.map.addLayer({id:"buildings-partial",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(255,255,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),e.map.addLayer({id:"buildings-highlighted",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"#484896","fill-color":"#6e599f","fill-opacity":.75},filter:["in","osm_id",""]},"settlement-label"),e.map.on("click","buildings",(function(t){var n=t.point,s=[[n.x,n.y],[n.x,n.y]],i=e.map.queryRenderedFeatures(s,{layers:["buildings"]})[0],r=e.buildingsStore.getBuildingsByOsmId(parseInt(i.properties.osm_id));if(0!==r.addresses.length){e.fitCoordinates(i.geometry.coordinates[0]),e.map.setFilter("buildings-highlighted",["in","osm_id",i.properties.osm_id]);var o,a=[],l=(0,B.Z)(r.addresses);try{for(l.s();!(o=l.n()).done;){var d=o.value,u=e.addressesStore.getAddressesById(d._key.path.segments[6]);a.push({id:u.id,street:u.street,housenumber:u.housenumber,postcode:u.postcode,city:u.city,party_quantity:u.party_quantity,osm_id:u.osm_id})}}catch(c){l.e(c)}finally{l.f()}e.addressesStore.selectedAddresses=a,e.buildingsStore.selectedBuilding=r,e.$refs.modal.setIsOpen(!0)}})),e.map.on("mouseenter","buildings",(function(){e.map.getCanvas().style.cursor="pointer"})),e.map.on("mouseleave","buildings",(function(){e.map.getCanvas().style.cursor=""})),e.updateFilter()})),this.map.addControl(new(O().GeolocateControl)({positionOptions:{enableHighAccuracy:!0},fitBoundsOptions:{maxZoom:16},trackUserLocation:!0,showUserHeading:!0,showAccuracyCircle:!1}))},methods:{onModalClose:function(){this.map.setFilter("buildings-highlighted",["in","osm_id",""])},buildingNotDone:function(){var e=this,t=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingPartial.push(this.buildingsStore.selectedBuilding.osm_id.toString()),this.buildingComplete=this.buildingComplete.filter((function(t){return t!==e.buildingsStore.selectedBuilding.osm_id.toString()})),this.buildingsStore.buildingItems[t].record_status="partial",this.updateFilter()},buildingDone:function(){var e=this,t=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingComplete.push(this.buildingsStore.selectedBuilding.osm_id.toString()),this.buildingPartial=this.buildingPartial.filter((function(t){return t!==e.buildingsStore.selectedBuilding.osm_id.toString()})),this.buildingsStore.buildingItems[t].record_status="complete",this.updateFilter()},reset:function(){var e=this,t=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingComplete=this.buildingComplete.filter((function(t){return t!==e.buildingsStore.selectedBuilding.osm_id.toString()})),this.buildingPartial=this.buildingPartial.filter((function(t){return t!==e.buildingsStore.selectedBuilding.osm_id.toString()})),this.buildingsStore.buildingItems[t].record_status="empty",this.updateFilter()},updateFilter:function(e){switch(e){case"complete":this.buildingDone();break;case"partial":this.buildingNotDone();break;case"empty":this.reset();break}this.map.setFilter("buildings-no-address",["in","osm_id"].concat((0,C.Z)(this.buildingNoAddress))),this.map.setFilter("buildings-complete",["in","osm_id"].concat((0,C.Z)(this.buildingComplete))),this.map.setFilter("buildings-partial",["in","osm_id"].concat((0,C.Z)(this.buildingPartial)))},fitCoordinates:function(e){var t,n=new(O().LngLatBounds)(e[0],e[0]),s=(0,B.Z)(e);try{for(s.s();!(t=s.n()).done;){var i=t.value;n.extend(i)}}catch(r){s.e(r)}finally{s.f()}this.map.fitBounds(n,{zoom:17.5,offset:[0,-60]})}}};const ce=(0,y.Z)(ue,[["render",A],["__scopeId","data-v-3d4f7f42"]]);var fe=ce,ge={name:"Map",components:{Mapbox:fe}};const me=(0,y.Z)(ge,[["render",S]]);var pe=me;function be(e,t,n,s,r,o){var a=(0,i.up)("address-list");return(0,i.wg)(),(0,i.j4)(a)}n(7941);var he={class:"max-w-7xl mx-auto"},ve={class:"flex items-center justify-between py-6 px-4 sm:px-6 lg:px-8"},ye={class:"flex-1 min-w-0"},xe=(0,i._)("h2",{class:"text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:truncate"}," Erfasste Adressen ",-1),_e={class:"flex flex-row sm:flex-wrap mt-0 space-x-6"},we={class:"mt-2 flex items-center text-sm text-gray-500"},Se={class:"mt-2 flex items-center text-sm text-gray-500"},Ie={class:"xl:px-8","aria-label":"Adressen"},ke={class:"z-10 sticky top-0 border-t border-b border-gray-200 bg-gray-50 px-6 py-1 text-sm font-medium text-gray-500"},Ae={role:"list",class:"relative z-0 divide-y divide-gray-200"},Ce={class:"relative px-6 py-5 flex items-center space-x-3 hover:bg-gray-50 focus-within:ring-2 focus-within:ring-inset focus-within:ring-indigo-500"},Be={class:"flex-shrink-0"},Ze={class:"flex h-10 w-10 bg-gray-100 rounded-full items-center justify-center"},Oe={class:"flex-1 min-w-0"},Le={href:"#",class:"focus:outline-none"},Me=(0,i._)("span",{class:"absolute inset-0","aria-hidden":"true"},null,-1),je={class:"text-sm font-medium text-gray-900"},De={class:"text-sm text-gray-500 truncate"};function Fe(e,t,n,s,o,a){var l=(0,i.up)("HomeIcon"),d=(0,i.up)("UsersIcon");return(0,i.wg)(),(0,i.iD)("div",he,[(0,i._)("div",ve,[(0,i._)("div",ye,[xe,(0,i._)("div",_e,[(0,i._)("div",we,[(0,i.Wm)(l,{class:"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400","aria-hidden":"true"}),(0,i.Uk)(" "+(0,r.zw)(e.addressCount)+" Adressen ",1)]),(0,i._)("div",Se,[(0,i.Wm)(d,{class:"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400","aria-hidden":"true"}),(0,i.Uk)(" "+(0,r.zw)(e.partyCount)+" Parteien ",1)])])])]),(0,i._)("nav",Ie,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(Object.keys(e.addresses),(function(t){return(0,i.wg)(),(0,i.iD)("div",{key:t,class:"relative"},[(0,i._)("div",ke,[(0,i._)("h3",null,(0,r.zw)(t),1)]),(0,i._)("ul",Ae,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.addresses[t],(function(t){return(0,i.wg)(),(0,i.iD)("li",{key:t.id,class:"bg-white"},[(0,i._)("div",Ce,[(0,i._)("div",Be,[(0,i._)("div",Ze,[(0,i.Wm)(l,{class:"h-6 w-6 text-gray-500"})])]),(0,i._)("div",Oe,[(0,i._)("a",Le,[Me,(0,i._)("p",je,(0,r.zw)(e.fullAddress(t)),1),(0,i._)("p",De,(0,r.zw)(t.party_quantity)+" "+(0,r.zw)(1===t.party_quantity?"Partei":"Parteien"),1)])])])])})),128))])])})),128))])])}n(2479);var Pe=n(5529),qe=n(4624),ze=(0,i.aZ)({name:"AddressList",components:{HomeIcon:Pe.Z,UsersIcon:qe.Z},setup:function(){var e=ie(),t=(0,U.Fl)((function(){return e.getSortedAddresses})),n=(0,U.Fl)((function(){if(!t.value)return{};var e={};return t.value.forEach((function(t){var n=t.street.charAt(0);n in e||(e[n]=[]),e[n].push(t)})),e})),s=(0,U.Fl)((function(){return Object.values(n.value).reduce((function(e,t){return e+t.length}),0)})),i=(0,U.Fl)((function(){return Object.values(n.value).reduce((function(e,t){return e+t.reduce((function(e,t){var n=t.party_quantity;return e+n}),0)}),0)})),r=function(e){return"".concat(e.street||"{Strasse}"," ").concat(e.housenumber||"{Hausnummer}",", ").concat(e.postcode||"{PLZ}"," ").concat(e.city||"{Ortschaft}")};return{addresses:n,addressCount:s,partyCount:i,fullAddress:r}}});const Re=(0,y.Z)(ze,[["render",Fe]]);var Te=Re,We={name:"Addresses",components:{AddressList:Te}};const He=(0,y.Z)(We,[["render",be]]);var Ue=He,Ke=[{path:"/",name:"Map",component:pe},{path:"/adressen",name:"Addresses",component:Ue}],Ne=(0,w.p7)({history:(0,w.PO)("/Mailblox/"),routes:Ke}),Je=Ne;(0,s.ri)(_).use(Je).use((0,E.WB)()).mount("#app")}},t={};function n(s){var i=t[s];if(void 0!==i)return i.exports;var r=t[s]={exports:{}};return e[s].call(r.exports,r,r.exports,n),r.exports}n.m=e,function(){var e=[];n.O=function(t,s,i,r){if(!s){var o=1/0;for(u=0;u=r)&&Object.keys(n.O).every((function(e){return n.O[e](s[l])}))?s.splice(l--,1):(a=!1,r0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[s,i,r]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){n.p="/Mailblox/"}(),function(){var e={143:0};n.O.j=function(t){return 0===e[t]};var t=function(t,s){var i,r,o=s[0],a=s[1],l=s[2],d=0;if(o.some((function(t){return 0!==e[t]}))){for(i in a)n.o(a,i)&&(n.m[i]=a[i]);if(l)var u=l(n)}for(t&&t(s);d\n
\n \n
\n
\n
\n
\n \"Mailblox\"\n \"Mailblox\"\n
\n
\n \n \n Karte\n \n \n \n \n Adressen\n \n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n
\n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=779d3c64\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n\n\n","\n\n\n","import { initializeApp } from 'firebase/app'\nimport { getFirestore } from 'firebase/firestore'\nimport firebaseConfig from '@/config/firebase'\n\nconst firebase = initializeApp(firebaseConfig)\nconst firestore = getFirestore(firebase)\n\nexport default firestore\n","import firestore from '@/helpers/firebase'\nimport { collection, doc, getDocs, updateDoc } from 'firebase/firestore'\n\nexport default {\n async fetch () {\n return await getDocs(collection(firestore, 'addresses'))\n },\n async update (address) {\n return await updateDoc(doc(firestore, 'addresses', address.id), {\n party_quantity: address.party_quantity\n })\n }\n}\n","import { defineStore } from 'pinia'\nimport address from '@/resources/address'\nimport { useLocalStorage } from '@vueuse/core'\n\nexport const useAddressesStore = defineStore('addresses', {\n state: () => {\n return {\n addressItems: useLocalStorage('addresses', []),\n addressesLoaded: useLocalStorage('addressesLoaded', false),\n selectedAddresses: null\n }\n },\n\n getters: {\n getAddresses: (state) => state.addressItems,\n getAddressesById: (state) => (id) => state.addressItems.find(address => address.id === id),\n getSortedAddresses: (state) => state.addressItems.sort((a, b) => a.street < b.street ? -1 : a.street > b.street ? 1 : 0),\n isAddressesLoaded: (state) => state.addressesLoaded\n },\n\n actions: {\n fetchAddresses () {\n return new Promise((resolve, reject) => {\n if (this.addressesLoaded) {\n resolve(this.addressItems)\n } else {\n address.fetch().then(snapshot => {\n const addresses = snapshot.docs.map(doc => ({\n id: doc.id,\n ...doc.data()\n }))\n\n console.log('Addresses Loaded', addresses)\n\n this.addressItems = addresses\n this.addressesLoaded = true\n\n resolve(addresses)\n }).catch(error => {\n reject(error)\n })\n }\n })\n },\n saveAddress (addresses) {\n for (const currentAddress of addresses) {\n address.update(currentAddress)\n }\n }\n }\n})\n","import firestore from '@/helpers/firebase'\nimport { collection, doc, getDocs, updateDoc } from 'firebase/firestore'\n\nexport default {\n async fetch () {\n console.log('firestore', firestore)\n return await getDocs(collection(firestore, 'buildings'))\n },\n async update (building, status) {\n return await updateDoc(doc(firestore, 'buildings', building.id), {\n record_status: status\n })\n }\n}\n","import { defineStore } from 'pinia'\nimport building from '@/resources/building'\nimport { useLocalStorage } from '@vueuse/core'\n\nexport const useBuildingsStore = defineStore('buildings', {\n state: () => {\n return {\n buildingItems: useLocalStorage('buildings', []),\n buildingsLoaded: useLocalStorage('buildingsLoaded', false),\n selectedBuilding: null\n }\n },\n\n getters: {\n getBuildings: (state) => state.buildingItems,\n getBuildingsByOsmId: (state) => (osmId) => state.buildingItems.find(building => building.osm_id === osmId),\n isBuildingsLoaded: (state) => state.buildingsLoaded\n },\n\n actions: {\n fetchBuildings () {\n return new Promise((resolve, reject) => {\n if (this.buildingsLoaded) {\n resolve(this.buildingItems)\n } else {\n console.log('Fetching buildings')\n building.fetch().then(snapshot => {\n console.log(snapshot)\n const buildings = snapshot.docs.map(doc => ({\n id: doc.id,\n ...doc.data()\n }))\n\n console.log('buildings loaded', buildings)\n\n this.buildingItems = buildings\n this.buildingsLoaded = true\n\n resolve(buildings)\n }).catch(error => {\n reject(error)\n })\n }\n })\n },\n saveBuilding (currentBuilding, status) {\n building.update(currentBuilding, status)\n }\n }\n})\n","import { render } from \"./Modal.vue?vue&type=template&id=433a06fc\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Mapbox.vue?vue&type=template&id=3d4f7f42&scoped=true\"\nimport script from \"./Mapbox.vue?vue&type=script&lang=js\"\nexport * from \"./Mapbox.vue?vue&type=script&lang=js\"\n\nimport \"./Mapbox.vue?vue&type=style&index=0&id=3d4f7f42&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3d4f7f42\"]])\n\nexport default __exports__","import { render } from \"./Map.vue?vue&type=template&id=56bf7ede\"\nimport script from \"./Map.vue?vue&type=script&lang=js\"\nexport * from \"./Map.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n","import { render } from \"./AddressList.vue?vue&type=template&id=e207f662\"\nimport script from \"./AddressList.vue?vue&type=script&lang=js\"\nexport * from \"./AddressList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Addresses.vue?vue&type=template&id=3aac8973\"\nimport script from \"./Addresses.vue?vue&type=script&lang=js\"\nexport * from \"./Addresses.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory } from 'vue-router'\nimport Map from '@/views/Map'\nimport Addresses from '@/views/Addresses'\n\nconst routes = [\n {\n path: '/',\n name: 'Map',\n component: Map\n },\n {\n path: '/adressen',\n name: 'Addresses',\n component: Addresses\n }\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes\n})\n\nexport default router\n","import { createApp } from 'vue'\nimport App from '@/App'\nimport router from '@/router'\nimport { createPinia } from 'pinia'\nimport '@/assets/css/index.css'\n\ncreateApp(App)\n .use(router)\n .use(createPinia())\n .mount('#app')\n\n// TODO: better Caching strategy\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.p = \"/Mailblox/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmailblox_app\"] = self[\"webpackChunkmailblox_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(9735); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["module","exports","apiKey","process","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","class","src","alt","as","to","custom","href","navigate","isActive","undefined","Component","include","components","Disclosure","__exports__","render","id","ref","onModalClose","updateFilter","show","open","closeModal","enter","leave","type","addressesStore","selectedAddresses","address","index","key","selectAddress","getAddressText","selectedIndex","length","for","party_quantity","attrs","min","center","controls","saveModal","firebase","initializeApp","firebaseConfig","firestore","getFirestore","fetch","getDocs","collection","update","updateDoc","doc","useAddressesStore","defineStore","state","addressItems","useLocalStorage","addressesLoaded","getters","getAddresses","getAddressesById","find","getSortedAddresses","sort","a","b","street","isAddressesLoaded","actions","fetchAddresses","Promise","resolve","reject","then","snapshot","addresses","docs","map","data","console","log","catch","error","saveAddress","currentAddress","building","status","record_status","useBuildingsStore","buildingItems","buildingsLoaded","selectedBuilding","getBuildings","getBuildingsByOsmId","osmId","osm_id","isBuildingsLoaded","fetchBuildings","buildings","saveBuilding","currentBuilding","Dialog","DialogTitle","TransitionChild","TransitionRoot","XIcon","VueNumberInput","setup","buildingsStore","setIsOpen","value","methods","this","$emit","counter","item","indexOf","housenumber","name","Modal","buildingNoAddress","buildingComplete","buildingPartial","forEach","push","toString","modalAddresses","Object","beforeMount","mounted","Map","container","style","zoom","on","addSource","url","addLayer","source","paint","filter","point","bbox","x","y","queryRenderedFeatures","layers","foundBuilding","parseInt","properties","fitCoordinates","geometry","coordinates","setFilter","allAddresses","_key","path","segments","postcode","city","$refs","modal","getCanvas","cursor","addControl","positionOptions","enableHighAccuracy","fitBoundsOptions","maxZoom","trackUserLocation","showUserHeading","showAccuracyCircle","buildingNotDone","buildingDone","reset","bounds","coordinate","extend","fitBounds","offset","Mapbox","role","addressCount","partyCount","keys","letter","fullAddress","HomeIcon","UsersIcon","items","directory","charAt","values","reduce","total","quantity","AddressList","routes","component","Addresses","router","createRouter","history","createWebHistory","createApp","App","use","createPinia","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.0c47ab70.js b/js/app.0c47ab70.js deleted file mode 100644 index bb6f1c5..0000000 --- a/js/app.0c47ab70.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){var e={798:function(e){e.exports={apiKey:"AIzaSyDap-HKdYEixb8w4ZXZd8izJqSTmKthvIU",authDomain:"mailblox.firebaseapp.com",projectId:"mailblox",storageBucket:"mailblox.appspot.com",messagingSenderId:"12664572144",appId:"1:12664572144:web:e80b93bb73c3e7b9a2da35",measurementId:"G-7QZSQFT6KP"}},735:function(e,s,t){"use strict";var i=t(963),r=t(252),n=t(577),d=t.p+"img/mailblox-logo.b673063b.svg",l=t.p+"img/mailblox-logo-text.7c4dca7b.svg";const o={class:"min-h-screen bg-white"},a={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"},u={class:"flex justify-between h-16"},c={class:"flex"},g=(0,r._)("div",{class:"flex-shrink-0 flex items-center"},[(0,r._)("img",{class:"block lg:hidden h-8 w-auto",src:d,alt:"Mailblox"}),(0,r._)("img",{class:"hidden lg:block h-8 w-auto",src:l,alt:"Mailblox"})],-1),m={class:"flex -my-px ml-6 space-x-8"},p=["href","aria-current","onClick"],h=["href","aria-current","onClick"];function b(e,s,t,i,d,l){const b=(0,r.up)("router-link"),f=(0,r.up)("Disclosure"),y=(0,r.up)("router-view");return(0,r.wg)(),(0,r.iD)("div",o,[(0,r.Wm)(f,{as:"nav",class:"bg-white border-b border-gray-200"},{default:(0,r.w5)((()=>[(0,r._)("div",a,[(0,r._)("div",u,[(0,r._)("div",c,[g,(0,r._)("div",m,[(0,r.Wm)(b,{to:{name:"Map"},custom:""},{default:(0,r.w5)((({href:e,navigate:s,isActive:t})=>[(0,r._)("a",{href:e,class:(0,n.C_)([t?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"]),"aria-current":t?"page":void 0,onClick:s}," Karte ",10,p)])),_:1}),(0,r.Wm)(b,{to:{name:"Addresses"},custom:""},{default:(0,r.w5)((({href:e,navigate:s,isActive:t})=>[(0,r._)("a",{href:e,class:(0,n.C_)([t?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"]),"aria-current":t?"page":void 0,onClick:s}," Adressen ",10,h)])),_:1})])])])])])),_:1}),(0,r.Wm)(y,null,{default:(0,r.w5)((({Component:e})=>[((0,r.wg)(),(0,r.j4)(r.Ob,{include:"Map"},[((0,r.wg)(),(0,r.j4)((0,r.LL)(e)))],1024))])),_:1})])}var f=t(106),y={components:{Disclosure:f.pJ}},x=t(744);const v=(0,x.Z)(y,[["render",b]]);var _=v,w=t(119);function S(e,s,t,i,n,d){const l=(0,r.up)("mapbox");return(0,r.wg)(),(0,r.j4)(l)}const I=e=>((0,r.dD)("data-v-3d4f7f42"),e=e(),(0,r.Cn)(),e),A=I((()=>(0,r._)("div",{id:"map"},null,-1)));function k(e,s,t,i,n,d){const l=(0,r.up)("Modal");return(0,r.wg)(),(0,r.iD)(r.HY,null,[A,(0,r.Wm)(l,{ref:"modal",onClose:d.onModalClose,onSave:d.updateFilter},null,8,["onClose","onSave"])],64)}var C=t(158),B=t.n(C);const O={class:"flex items-end justify-center min-h-screen pt-2 px-2 pb-2 text-center"},L={class:"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle md:max-w-lg w-full sm:p-6"},M={class:"block absolute top-0 right-0 pt-4 pr-4"},j=(0,r._)("span",{class:"sr-only"},"Schliessen",-1),D={class:"sm:mt-0 sm:text-left"},Z=(0,r.Uk)(" Adressen "),F={class:"mt-2"},P=["onClick"],q={key:0},z=["for"],T={class:"mt-5 sm:mt-4"};function W(e,s,t,i,d,l){const o=(0,r.up)("XIcon"),a=(0,r.up)("DialogTitle"),u=(0,r.up)("vue-number-input"),c=(0,r.up)("TransitionChild"),g=(0,r.up)("Dialog"),m=(0,r.up)("TransitionRoot");return(0,r.wg)(),(0,r.j4)(m,{as:"template",show:e.open},{default:(0,r.w5)((()=>[(0,r.Wm)(g,{as:"div",class:"fixed z-10 inset-0 overflow-y-auto",onClose:e.closeModal},{default:(0,r.w5)((()=>[(0,r._)("div",O,[(0,r.Wm)(c,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95","enter-to":"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200","leave-from":"opacity-100 translate-y-0 sm:scale-100","leave-to":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"},{default:(0,r.w5)((()=>[(0,r._)("div",L,[(0,r._)("div",M,[(0,r._)("button",{type:"button",class:"bg-white rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",onClick:s[0]||(s[0]=(...s)=>e.closeModal&&e.closeModal(...s))},[j,(0,r.Wm)(o,{class:"h-6 w-6","aria-hidden":"true"})])]),(0,r._)("div",D,[(0,r.Wm)(a,{as:"h3",class:"text-lg leading-6 font-medium text-gray-900"},{default:(0,r.w5)((()=>[Z])),_:1}),(0,r._)("div",F,[(0,r._)("ul",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.addressesStore.selectedAddresses,((s,t)=>((0,r.wg)(),(0,r.iD)("li",{key:t,class:"cursor-pointer py-2",onClick:s=>e.selectAddress(t)},[(0,r._)("p",null,(0,n.zw)(e.getAddressText(s)),1),e.selectedIndex===t||1===e.addressesStore.selectedAddresses.length?((0,r.wg)(),(0,r.iD)("div",q,[(0,r._)("label",{for:"form-number-parties-"+t,class:"w-full text-gray-700 text-sm font-semibold"},"Anzahl Parteien",8,z),(0,r.Wm)(u,{modelValue:s.party_quantity,"onUpdate:modelValue":e=>s.party_quantity=e,attrs:{id:"form-number-parties-"+t},min:0,center:"",controls:""},null,8,["modelValue","onUpdate:modelValue","attrs"])])):(0,r.kq)("",!0)],8,P)))),128))])])]),(0,r._)("div",T,[(0,r._)("button",{type:"button",class:"w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-green-600 text-base font-medium text-white hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500",onClick:s[1]||(s[1]=(...s)=>e.saveModal&&e.saveModal(...s))}," Speichern ")])])])),_:1})])])),_:1},8,["onClose"])])),_:1},8,["show"])}var H=t(262),U=t(51),$=t(939),K=t(684),N=t(503),J=t(591),R=t(798),E=t.n(R);const Y=(0,N.ZF)(E()),V=(0,J.ad)(Y);var Q=V,G={async fetch(){return await(0,J.PL)((0,J.hJ)(Q,"addresses"))},async update(e){return await(0,J.r7)((0,J.JU)(Q,"addresses",e.id),{party_quantity:e.party_quantity})}},X=t(762);const ee=(0,K.Q_)("addresses",{state:()=>({addressItems:(0,X._aR)("addresses",[]),addressesLoaded:(0,X._aR)("addressesLoaded",!1),selectedAddresses:null}),getters:{getAddresses:e=>e.addressItems,getAddressesById:e=>s=>e.addressItems.find((e=>e.id===s)),getSortedAddresses:e=>e.addressItems.sort(((e,s)=>e.streets.street?1:0)),isAddressesLoaded:e=>e.addressesLoaded},actions:{fetchAddresses(){return new Promise(((e,s)=>{this.addressesLoaded?e(this.addressItems):G.fetch().then((s=>{const t=s.docs.map((e=>({id:e.id,...e.data()})));console.log("Addresses Loaded",t),this.addressItems=t,this.addressesLoaded=!0,e(t)})).catch((e=>{s(e)}))}))},saveAddress(e){for(const s of e)G.update(s)}}});var se={async fetch(){return console.log("firestore",Q),await(0,J.PL)((0,J.hJ)(Q,"buildings"))},async update(e,s){return await(0,J.r7)((0,J.JU)(Q,"buildings",e.id),{record_status:s})}};const te=(0,K.Q_)("buildings",{state:()=>({buildingItems:(0,X._aR)("buildings",[]),buildingsLoaded:(0,X._aR)("buildingsLoaded",!1),selectedBuilding:null}),getters:{getBuildings:e=>e.buildingItems,getBuildingsByOsmId:e=>s=>e.buildingItems.find((e=>e.osm_id===s)),isBuildingsLoaded:e=>e.buildingsLoaded},actions:{fetchBuildings(){return new Promise(((e,s)=>{this.buildingsLoaded?e(this.buildingItems):(console.log("Fetching buildings"),se.fetch().then((s=>{console.log(s);const t=s.docs.map((e=>({id:e.id,...e.data()})));console.log("buildings loaded",t),this.buildingItems=t,this.buildingsLoaded=!0,e(t)})).catch((e=>{s(e)})))}))},saveBuilding(e,s){se.update(e,s)}}});var ie=(0,r.aZ)({components:{Dialog:f.Vq,DialogTitle:f.$N,TransitionChild:f.xY,TransitionRoot:f.Qm,XIcon:U.Z,VueNumberInput:$.Z},setup(){const e=ee(),s=te(),t=(0,H.iH)(!1),i=(0,H.iH)(null);return{open:t,addressesStore:e,buildingsStore:s,selectedIndex:i,setIsOpen(e){t.value=e},selectAddress(e){i.value=e}}},methods:{closeModal(){this.setIsOpen(!1),this.$emit("close"),this.addressesStore.selectedAddresses=null,this.buildingsStore.selectedBuilding=null,this.selectedIndex=null},saveModal(){let e=0;for(const s of this.addressesStore.selectedAddresses){const t=this.addressesStore.addressItems.find((e=>e.id===s.id)),i=this.addressesStore.addressItems.indexOf(t);this.addressesStore.addressItems[i].party_quantity=s.party_quantity,s.party_quantity>0&&e++}e===this.addressesStore.selectedAddresses.length?(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"complete"),this.$emit("save","complete")):e>0?(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"partial"),this.$emit("save","partial")):(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"empty"),this.$emit("save","empty")),this.addressesStore.saveAddress(this.addressesStore.selectedAddresses),this.closeModal()},getAddressText(e){return e.street||e.housenumber?`${e.street} ${e.housenumber||""}`:"Keine eindeutige Adresse"}}});const re=(0,x.Z)(ie,[["render",W]]);var ne=re,de={name:"Mapbox",components:{Modal:ne},setup(){const e=ee(),s=te(),t=[],i=[],r=[];return s.getBuildings.forEach((e=>{0===e.addresses.length&&t.push(e.osm_id.toString()),"complete"===e.record_status&&i.push(e.osm_id.toString()),"partial"===e.record_status&&r.push(e.osm_id.toString())})),{buildingNoAddress:t,buildingComplete:i,buildingPartial:r,addressesStore:e,buildingsStore:s}},data(){return{modalAddresses:[],building:Object}},beforeMount(){this.addressesStore.fetchAddresses(),this.buildingsStore.fetchBuildings()},mounted(){B().accessToken="pk.eyJ1Ijoid3Zpc2lvbiIsImEiOiJjbTBkaXNmNjcwYWZjMmlxdGljdTR5MzlxIn0.tZax7GukcL3-dETMcNA2vw",this.map=new(B().Map)({container:"map",style:"mapbox://styles/mapbox/streets-v11",center:[8.109,47.174],zoom:14}),this.map.on("load",(()=>{this.map.addSource("buildings",{type:"vector",url:"mapbox://wvision.bd5gcv6m"}),this.map.addLayer({id:"buildings",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(0, 0, 0, 0.1)"}},"settlement-label"),this.map.addLayer({id:"buildings-no-address",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(255,0,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),this.map.addLayer({id:"buildings-complete",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(0,255,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),this.map.addLayer({id:"buildings-partial",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(255,255,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),this.map.addLayer({id:"buildings-highlighted",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"#484896","fill-color":"#6e599f","fill-opacity":.75},filter:["in","osm_id",""]},"settlement-label"),this.map.on("click","buildings",(({point:e})=>{const s=[[e.x,e.y],[e.x,e.y]],t=this.map.queryRenderedFeatures(s,{layers:["buildings"]})[0],i=this.buildingsStore.getBuildingsByOsmId(parseInt(t.properties.osm_id));if(0!==i.addresses.length){this.fitCoordinates(t.geometry.coordinates[0]),this.map.setFilter("buildings-highlighted",["in","osm_id",t.properties.osm_id]);const e=[];for(const s of i.addresses){const t=this.addressesStore.getAddressesById(s._key.path.segments[6]);e.push({id:t.id,street:t.street,housenumber:t.housenumber,postcode:t.postcode,city:t.city,party_quantity:t.party_quantity,osm_id:t.osm_id})}this.addressesStore.selectedAddresses=e,this.buildingsStore.selectedBuilding=i,this.$refs.modal.setIsOpen(!0)}})),this.map.on("mouseenter","buildings",(()=>{this.map.getCanvas().style.cursor="pointer"})),this.map.on("mouseleave","buildings",(()=>{this.map.getCanvas().style.cursor=""})),this.updateFilter()})),this.map.addControl(new(B().GeolocateControl)({positionOptions:{enableHighAccuracy:!0},fitBoundsOptions:{maxZoom:16},trackUserLocation:!0,showUserHeading:!0,showAccuracyCircle:!1}))},methods:{onModalClose(){this.map.setFilter("buildings-highlighted",["in","osm_id",""])},buildingNotDone(){const e=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingPartial.push(this.buildingsStore.selectedBuilding.osm_id.toString()),this.buildingComplete=this.buildingComplete.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingsStore.buildingItems[e].record_status="partial",this.updateFilter()},buildingDone(){const e=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingComplete.push(this.buildingsStore.selectedBuilding.osm_id.toString()),this.buildingPartial=this.buildingPartial.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingsStore.buildingItems[e].record_status="complete",this.updateFilter()},reset(){const e=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingComplete=this.buildingComplete.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingPartial=this.buildingPartial.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingsStore.buildingItems[e].record_status="empty",this.updateFilter()},updateFilter(e){switch(e){case"complete":this.buildingDone();break;case"partial":this.buildingNotDone();break;case"empty":this.reset();break}this.map.setFilter("buildings-no-address",["in","osm_id",...this.buildingNoAddress]),this.map.setFilter("buildings-complete",["in","osm_id",...this.buildingComplete]),this.map.setFilter("buildings-partial",["in","osm_id",...this.buildingPartial])},fitCoordinates(e){const s=new(B().LngLatBounds)(e[0],e[0]);for(const t of e)s.extend(t);this.map.fitBounds(s,{zoom:17.5,offset:[0,-60]})}}};const le=(0,x.Z)(de,[["render",k],["__scopeId","data-v-3d4f7f42"]]);var oe=le,ae={name:"Map",components:{Mapbox:oe}};const ue=(0,x.Z)(ae,[["render",S]]);var ce=ue;function ge(e,s,t,i,n,d){const l=(0,r.up)("address-list");return(0,r.wg)(),(0,r.j4)(l)}const me={class:"max-w-7xl mx-auto"},pe={class:"flex items-center justify-between py-6 px-4 sm:px-6 lg:px-8"},he={class:"flex-1 min-w-0"},be=(0,r._)("h2",{class:"text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:truncate"}," Erfasste Adressen ",-1),fe={class:"flex flex-row sm:flex-wrap mt-0 space-x-6"},ye={class:"mt-2 flex items-center text-sm text-gray-500"},xe={class:"mt-2 flex items-center text-sm text-gray-500"},ve={class:"xl:px-8","aria-label":"Adressen"},_e={class:"z-10 sticky top-0 border-t border-b border-gray-200 bg-gray-50 px-6 py-1 text-sm font-medium text-gray-500"},we={role:"list",class:"relative z-0 divide-y divide-gray-200"},Se={class:"relative px-6 py-5 flex items-center space-x-3 hover:bg-gray-50 focus-within:ring-2 focus-within:ring-inset focus-within:ring-indigo-500"},Ie={class:"flex-shrink-0"},Ae={class:"flex h-10 w-10 bg-gray-100 rounded-full items-center justify-center"},ke={class:"flex-1 min-w-0"},Ce={href:"#",class:"focus:outline-none"},Be=(0,r._)("span",{class:"absolute inset-0","aria-hidden":"true"},null,-1),Oe={class:"text-sm font-medium text-gray-900"},Le={class:"text-sm text-gray-500 truncate"};function Me(e,s,t,i,d,l){const o=(0,r.up)("HomeIcon"),a=(0,r.up)("UsersIcon");return(0,r.wg)(),(0,r.iD)("div",me,[(0,r._)("div",pe,[(0,r._)("div",he,[be,(0,r._)("div",fe,[(0,r._)("div",ye,[(0,r.Wm)(o,{class:"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400","aria-hidden":"true"}),(0,r.Uk)(" "+(0,n.zw)(e.addressCount)+" Adressen ",1)]),(0,r._)("div",xe,[(0,r.Wm)(a,{class:"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400","aria-hidden":"true"}),(0,r.Uk)(" "+(0,n.zw)(e.partyCount)+" Parteien ",1)])])])]),(0,r._)("nav",ve,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(Object.keys(e.addresses),(s=>((0,r.wg)(),(0,r.iD)("div",{key:s,class:"relative"},[(0,r._)("div",_e,[(0,r._)("h3",null,(0,n.zw)(s),1)]),(0,r._)("ul",we,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.addresses[s],(s=>((0,r.wg)(),(0,r.iD)("li",{key:s.id,class:"bg-white"},[(0,r._)("div",Se,[(0,r._)("div",Ie,[(0,r._)("div",Ae,[(0,r.Wm)(o,{class:"h-6 w-6 text-gray-500"})])]),(0,r._)("div",ke,[(0,r._)("a",Ce,[Be,(0,r._)("p",Oe,(0,n.zw)(e.fullAddress(s)),1),(0,r._)("p",Le,(0,n.zw)(s.party_quantity)+" "+(0,n.zw)(1===s.party_quantity?"Partei":"Parteien"),1)])])])])))),128))])])))),128))])])}var je=t(529),De=t(624),Ze=(0,r.aZ)({name:"AddressList",components:{HomeIcon:je.Z,UsersIcon:De.Z},setup(){const e=ee(),s=(0,H.Fl)((()=>e.getSortedAddresses)),t=(0,H.Fl)((()=>{if(!s.value)return{};const e={};return s.value.forEach((s=>{const t=s.street.charAt(0);t in e||(e[t]=[]),e[t].push(s)})),e})),i=(0,H.Fl)((()=>Object.values(t.value).reduce(((e,s)=>e+s.length),0))),r=(0,H.Fl)((()=>Object.values(t.value).reduce(((e,s)=>e+s.reduce(((e,{party_quantity:s})=>e+s),0)),0))),n=e=>`${e.street||"{Strasse}"} ${e.housenumber||"{Hausnummer}"}, ${e.postcode||"{PLZ}"} ${e.city||"{Ortschaft}"}`;return{addresses:t,addressCount:i,partyCount:r,fullAddress:n}}});const Fe=(0,x.Z)(Ze,[["render",Me]]);var Pe=Fe,qe={name:"Addresses",components:{AddressList:Pe}};const ze=(0,x.Z)(qe,[["render",ge]]);var Te=ze;const We=[{path:"/",name:"Map",component:ce},{path:"/adressen",name:"Addresses",component:Te}],He=(0,w.p7)({history:(0,w.PO)("/Mailblox/"),routes:We});var Ue=He;(0,i.ri)(_).use(Ue).use((0,K.WB)()).mount("#app")}},s={};function t(i){var r=s[i];if(void 0!==r)return r.exports;var n=s[i]={exports:{}};return e[i].call(n.exports,n,n.exports,t),n.exports}t.m=e,function(){var e=[];t.O=function(s,i,r,n){if(!i){var d=1/0;for(u=0;u=n)&&Object.keys(t.O).every((function(e){return t.O[e](i[o])}))?i.splice(o--,1):(l=!1,n0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[i,r,n]}}(),function(){t.n=function(e){var s=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(s,{a:s}),s}}(),function(){t.d=function(e,s){for(var i in s)t.o(s,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:s[i]})}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,s){return Object.prototype.hasOwnProperty.call(e,s)}}(),function(){t.p="/Mailblox/"}(),function(){var e={143:0};t.O.j=function(s){return 0===e[s]};var s=function(s,i){var r,n,d=i[0],l=i[1],o=i[2],a=0;if(d.some((function(s){return 0!==e[s]}))){for(r in l)t.o(l,r)&&(t.m[r]=l[r]);if(o)var u=o(t)}for(s&&s(i);a\n
\n \n
\n
\n
\n
\n \"Mailblox\"\n \"Mailblox\"\n
\n
\n \n \n Karte\n \n \n \n \n Adressen\n \n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n
\n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=779d3c64\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n\n\n","\n\n\n","import { initializeApp } from 'firebase/app'\nimport { getFirestore } from 'firebase/firestore'\nimport firebaseConfig from '@/config/firebase'\n\nconst firebase = initializeApp(firebaseConfig)\nconst firestore = getFirestore(firebase)\n\nexport default firestore\n","import firestore from '@/helpers/firebase'\nimport { collection, doc, getDocs, updateDoc } from 'firebase/firestore'\n\nexport default {\n async fetch () {\n return await getDocs(collection(firestore, 'addresses'))\n },\n async update (address) {\n return await updateDoc(doc(firestore, 'addresses', address.id), {\n party_quantity: address.party_quantity\n })\n }\n}\n","import { defineStore } from 'pinia'\nimport address from '@/resources/address'\nimport { useLocalStorage } from '@vueuse/core'\n\nexport const useAddressesStore = defineStore('addresses', {\n state: () => {\n return {\n addressItems: useLocalStorage('addresses', []),\n addressesLoaded: useLocalStorage('addressesLoaded', false),\n selectedAddresses: null\n }\n },\n\n getters: {\n getAddresses: (state) => state.addressItems,\n getAddressesById: (state) => (id) => state.addressItems.find(address => address.id === id),\n getSortedAddresses: (state) => state.addressItems.sort((a, b) => a.street < b.street ? -1 : a.street > b.street ? 1 : 0),\n isAddressesLoaded: (state) => state.addressesLoaded\n },\n\n actions: {\n fetchAddresses () {\n return new Promise((resolve, reject) => {\n if (this.addressesLoaded) {\n resolve(this.addressItems)\n } else {\n address.fetch().then(snapshot => {\n const addresses = snapshot.docs.map(doc => ({\n id: doc.id,\n ...doc.data()\n }))\n\n console.log('Addresses Loaded', addresses)\n\n this.addressItems = addresses\n this.addressesLoaded = true\n\n resolve(addresses)\n }).catch(error => {\n reject(error)\n })\n }\n })\n },\n saveAddress (addresses) {\n for (const currentAddress of addresses) {\n address.update(currentAddress)\n }\n }\n }\n})\n","import firestore from '@/helpers/firebase'\nimport { collection, doc, getDocs, updateDoc } from 'firebase/firestore'\n\nexport default {\n async fetch () {\n console.log('firestore', firestore)\n return await getDocs(collection(firestore, 'buildings'))\n },\n async update (building, status) {\n return await updateDoc(doc(firestore, 'buildings', building.id), {\n record_status: status\n })\n }\n}\n","import { defineStore } from 'pinia'\nimport building from '@/resources/building'\nimport { useLocalStorage } from '@vueuse/core'\n\nexport const useBuildingsStore = defineStore('buildings', {\n state: () => {\n return {\n buildingItems: useLocalStorage('buildings', []),\n buildingsLoaded: useLocalStorage('buildingsLoaded', false),\n selectedBuilding: null\n }\n },\n\n getters: {\n getBuildings: (state) => state.buildingItems,\n getBuildingsByOsmId: (state) => (osmId) => state.buildingItems.find(building => building.osm_id === osmId),\n isBuildingsLoaded: (state) => state.buildingsLoaded\n },\n\n actions: {\n fetchBuildings () {\n return new Promise((resolve, reject) => {\n if (this.buildingsLoaded) {\n resolve(this.buildingItems)\n } else {\n console.log('Fetching buildings')\n building.fetch().then(snapshot => {\n console.log(snapshot)\n const buildings = snapshot.docs.map(doc => ({\n id: doc.id,\n ...doc.data()\n }))\n\n console.log('buildings loaded', buildings)\n\n this.buildingItems = buildings\n this.buildingsLoaded = true\n\n resolve(buildings)\n }).catch(error => {\n reject(error)\n })\n }\n })\n },\n saveBuilding (currentBuilding, status) {\n building.update(currentBuilding, status)\n }\n }\n})\n","import { render } from \"./Modal.vue?vue&type=template&id=433a06fc\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Mapbox.vue?vue&type=template&id=3d4f7f42&scoped=true\"\nimport script from \"./Mapbox.vue?vue&type=script&lang=js\"\nexport * from \"./Mapbox.vue?vue&type=script&lang=js\"\n\nimport \"./Mapbox.vue?vue&type=style&index=0&id=3d4f7f42&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3d4f7f42\"]])\n\nexport default __exports__","import { render } from \"./Map.vue?vue&type=template&id=56bf7ede\"\nimport script from \"./Map.vue?vue&type=script&lang=js\"\nexport * from \"./Map.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n","import { render } from \"./AddressList.vue?vue&type=template&id=e207f662\"\nimport script from \"./AddressList.vue?vue&type=script&lang=js\"\nexport * from \"./AddressList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Addresses.vue?vue&type=template&id=3aac8973\"\nimport script from \"./Addresses.vue?vue&type=script&lang=js\"\nexport * from \"./Addresses.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/runner/work/mailblox-app/mailblox-app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory } from 'vue-router'\nimport Map from '@/views/Map'\nimport Addresses from '@/views/Addresses'\n\nconst routes = [\n {\n path: '/',\n name: 'Map',\n component: Map\n },\n {\n path: '/adressen',\n name: 'Addresses',\n component: Addresses\n }\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes\n})\n\nexport default router\n","import { createApp } from 'vue'\nimport App from '@/App'\nimport router from '@/router'\nimport { createPinia } from 'pinia'\nimport '@/assets/css/index.css'\n\ncreateApp(App)\n .use(router)\n .use(createPinia())\n .mount('#app')\n\n// TODO: better Caching strategy\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.p = \"/Mailblox/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmailblox_app\"] = self[\"webpackChunkmailblox_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(735); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["module","exports","apiKey","process","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","class","src","alt","as","to","custom","href","navigate","isActive","undefined","Component","include","components","Disclosure","__exports__","render","id","ref","onModalClose","updateFilter","show","open","closeModal","enter","leave","type","addressesStore","selectedAddresses","address","index","key","selectAddress","getAddressText","selectedIndex","length","for","party_quantity","attrs","min","center","controls","saveModal","firebase","initializeApp","firebaseConfig","firestore","getFirestore","async","getDocs","collection","updateDoc","doc","useAddressesStore","defineStore","state","addressItems","useLocalStorage","addressesLoaded","getters","getAddresses","getAddressesById","find","getSortedAddresses","sort","a","b","street","isAddressesLoaded","actions","fetchAddresses","Promise","resolve","reject","this","fetch","then","snapshot","addresses","docs","map","data","console","log","catch","error","saveAddress","currentAddress","update","building","status","record_status","useBuildingsStore","buildingItems","buildingsLoaded","selectedBuilding","getBuildings","getBuildingsByOsmId","osmId","osm_id","isBuildingsLoaded","fetchBuildings","buildings","saveBuilding","currentBuilding","Dialog","DialogTitle","TransitionChild","TransitionRoot","XIcon","VueNumberInput","setup","buildingsStore","setIsOpen","value","methods","$emit","counter","item","indexOf","housenumber","name","Modal","buildingNoAddress","buildingComplete","buildingPartial","forEach","push","toString","modalAddresses","Object","beforeMount","mounted","Map","container","style","zoom","on","addSource","url","addLayer","source","paint","filter","point","bbox","x","y","queryRenderedFeatures","layers","foundBuilding","parseInt","properties","fitCoordinates","geometry","coordinates","setFilter","allAddresses","_key","path","segments","postcode","city","$refs","modal","getCanvas","cursor","addControl","positionOptions","enableHighAccuracy","fitBoundsOptions","maxZoom","trackUserLocation","showUserHeading","showAccuracyCircle","buildingNotDone","buildingDone","reset","bounds","coordinate","extend","fitBounds","offset","Mapbox","role","addressCount","partyCount","keys","letter","fullAddress","HomeIcon","UsersIcon","items","directory","charAt","values","reduce","total","quantity","AddressList","routes","component","Addresses","router","createRouter","history","createWebHistory","createApp","App","use","createPinia","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.ed88ccd3.js b/js/app.ed88ccd3.js new file mode 100644 index 0000000..2d7f8c5 --- /dev/null +++ b/js/app.ed88ccd3.js @@ -0,0 +1,2 @@ +(function(){var e={5885:function(e){e.exports={apiKey:"AIzaSyDap-HKdYEixb8w4ZXZd8izJqSTmKthvIU",authDomain:"mailblox.firebaseapp.com",projectId:"mailblox",storageBucket:"mailblox.appspot.com",messagingSenderId:"12664572144",appId:"1:12664572144:web:e80b93bb73c3e7b9a2da35",measurementId:"G-7QZSQFT6KP"}},4633:function(e,s,t){"use strict";var i=t(3751),r=t(641),n=t(33),d=t.p+"img/mailblox-logo.10f937a6.svg",l=t.p+"img/mailblox-logo-text.ff3b8377.svg";const o={class:"min-h-screen bg-white"},a={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"},u={class:"flex justify-between h-16"},c={class:"flex"},g=(0,r.Lk)("div",{class:"flex-shrink-0 flex items-center"},[(0,r.Lk)("img",{class:"block lg:hidden h-8 w-auto",src:d,alt:"Mailblox"}),(0,r.Lk)("img",{class:"hidden lg:block h-8 w-auto",src:l,alt:"Mailblox"})],-1),m={class:"flex -my-px ml-6 space-x-8"},p=["href","aria-current","onClick"],h=["href","aria-current","onClick"];function b(e,s,t,i,d,l){const b=(0,r.g2)("router-link"),f=(0,r.g2)("Disclosure"),y=(0,r.g2)("router-view");return(0,r.uX)(),(0,r.CE)("div",o,[(0,r.bF)(f,{as:"nav",class:"bg-white border-b border-gray-200"},{default:(0,r.k6)((()=>[(0,r.Lk)("div",a,[(0,r.Lk)("div",u,[(0,r.Lk)("div",c,[g,(0,r.Lk)("div",m,[(0,r.bF)(b,{to:{name:"Map"},custom:""},{default:(0,r.k6)((({href:e,navigate:s,isActive:t})=>[(0,r.Lk)("a",{href:e,class:(0,n.C4)([t?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"]),"aria-current":t?"page":void 0,onClick:s}," Karte ",10,p)])),_:1}),(0,r.bF)(b,{to:{name:"Addresses"},custom:""},{default:(0,r.k6)((({href:e,navigate:s,isActive:t})=>[(0,r.Lk)("a",{href:e,class:(0,n.C4)([t?"border-indigo-500 text-gray-900":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700","inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium"]),"aria-current":t?"page":void 0,onClick:s}," Adressen ",10,h)])),_:1})])])])])])),_:1}),(0,r.bF)(y,null,{default:(0,r.k6)((({Component:e})=>[((0,r.uX)(),(0,r.Wv)(r.PR,{include:"Map"},[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e)))],1024))])),_:1})])}var f=t(1149),y={components:{Disclosure:f.EN}},v=t(6262);const x=(0,v.A)(y,[["render",b]]);var k=x,L=t(5220);function _(e,s,t,i,n,d){const l=(0,r.g2)("mapbox");return(0,r.uX)(),(0,r.Wv)(l)}const S=e=>((0,r.Qi)("data-v-3d4f7f42"),e=e(),(0,r.jt)(),e),w=S((()=>(0,r.Lk)("div",{id:"map"},null,-1)));function A(e,s,t,i,n,d){const l=(0,r.g2)("Modal");return(0,r.uX)(),(0,r.CE)(r.FK,null,[w,(0,r.bF)(l,{ref:"modal",onClose:d.onModalClose,onSave:d.updateFilter},null,8,["onClose","onSave"])],64)}t(4114);var I=t(842),C=t.n(I);const B={class:"flex items-end justify-center min-h-screen pt-2 px-2 pb-2 text-center"},M={class:"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle md:max-w-lg w-full sm:p-6"},F={class:"block absolute top-0 right-0 pt-4 pr-4"},O=(0,r.Lk)("span",{class:"sr-only"},"Schliessen",-1),j={class:"sm:mt-0 sm:text-left"},E={class:"mt-2"},X=["onClick"],P={key:0},T=["for"],q={class:"mt-5 sm:mt-4"};function W(e,s,t,i,d,l){const o=(0,r.g2)("XIcon"),a=(0,r.g2)("DialogTitle"),u=(0,r.g2)("vue-number-input"),c=(0,r.g2)("TransitionChild"),g=(0,r.g2)("Dialog"),m=(0,r.g2)("TransitionRoot");return(0,r.uX)(),(0,r.Wv)(m,{as:"template",show:e.open},{default:(0,r.k6)((()=>[(0,r.bF)(g,{as:"div",class:"fixed z-10 inset-0 overflow-y-auto",onClose:e.closeModal},{default:(0,r.k6)((()=>[(0,r.Lk)("div",B,[(0,r.bF)(c,{as:"template",enter:"ease-out duration-300","enter-from":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95","enter-to":"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200","leave-from":"opacity-100 translate-y-0 sm:scale-100","leave-to":"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"},{default:(0,r.k6)((()=>[(0,r.Lk)("div",M,[(0,r.Lk)("div",F,[(0,r.Lk)("button",{type:"button",class:"bg-white rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",onClick:s[0]||(s[0]=(...s)=>e.closeModal&&e.closeModal(...s))},[O,(0,r.bF)(o,{class:"h-6 w-6","aria-hidden":"true"})])]),(0,r.Lk)("div",j,[(0,r.bF)(a,{as:"h3",class:"text-lg leading-6 font-medium text-gray-900"},{default:(0,r.k6)((()=>[(0,r.eW)(" Adressen ")])),_:1}),(0,r.Lk)("div",E,[(0,r.Lk)("ul",null,[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.addressesStore.selectedAddresses,((s,t)=>((0,r.uX)(),(0,r.CE)("li",{key:t,class:"cursor-pointer py-2",onClick:s=>e.selectAddress(t)},[(0,r.Lk)("p",null,(0,n.v_)(e.getAddressText(s)),1),e.selectedIndex===t||1===e.addressesStore.selectedAddresses.length?((0,r.uX)(),(0,r.CE)("div",P,[(0,r.Lk)("label",{for:"form-number-parties-"+t,class:"w-full text-gray-700 text-sm font-semibold"},"Anzahl Parteien",8,T),(0,r.bF)(u,{modelValue:s.party_quantity,"onUpdate:modelValue":e=>s.party_quantity=e,attrs:{id:"form-number-parties-"+t},min:0,center:"",controls:""},null,8,["modelValue","onUpdate:modelValue","attrs"])])):(0,r.Q3)("",!0)],8,X)))),128))])])]),(0,r.Lk)("div",q,[(0,r.Lk)("button",{type:"button",class:"w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-green-600 text-base font-medium text-white hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500",onClick:s[1]||(s[1]=(...s)=>e.saveModal&&e.saveModal(...s))}," Speichern ")])])])),_:1})])])),_:1},8,["onClose"])])),_:1},8,["show"])}var D=t(953),K=t(491),$=t(4232),Z=t(8353),z=t(3049),G=t(810),N=t(223),H=t(6430),U=t(5885),R=t.n(U);const J=(0,N.Wp)(R()),V=(0,H.aU)(J);var Q=V,Y={async fetch(){return await(0,H.GG)((0,H.rJ)(Q,"addresses"))},async update(e){return await(0,H.mZ)((0,H.H9)(Q,"addresses",e.id),{party_quantity:e.party_quantity})}},ee=t(3513);const se=(0,G.nY)("addresses",{state:()=>({addressItems:(0,ee.Mjh)("addresses",[]),addressesLoaded:(0,ee.Mjh)("addressesLoaded",!1),selectedAddresses:null}),getters:{getAddresses:e=>e.addressItems,getAddressesById:e=>s=>e.addressItems.find((e=>e.id===s)),getSortedAddresses:e=>e.addressItems.sort(((e,s)=>e.streets.street?1:0)),isAddressesLoaded:e=>e.addressesLoaded},actions:{fetchAddresses(){return new Promise(((e,s)=>{this.addressesLoaded?e(this.addressItems):Y.fetch().then((s=>{const t=s.docs.map((e=>({id:e.id,...e.data()})));console.log("Addresses Loaded",t),this.addressItems=t,this.addressesLoaded=!0,e(t)})).catch((e=>{s(e)}))}))},saveAddress(e){for(const s of e)Y.update(s)}}});var te={async fetch(){return console.log("firestore",Q),await(0,H.GG)((0,H.rJ)(Q,"buildings"))},async update(e,s){return await(0,H.mZ)((0,H.H9)(Q,"buildings",e.id),{record_status:s})}};const ie=(0,G.nY)("buildings",{state:()=>({buildingItems:(0,ee.Mjh)("buildings",[]),buildingsLoaded:(0,ee.Mjh)("buildingsLoaded",!1),selectedBuilding:null}),getters:{getBuildings:e=>e.buildingItems,getBuildingsByOsmId:e=>s=>e.buildingItems.find((e=>e.osm_id===s)),isBuildingsLoaded:e=>e.buildingsLoaded},actions:{fetchBuildings(){return new Promise(((e,s)=>{this.buildingsLoaded?e(this.buildingItems):(console.log("Fetching buildings"),te.fetch().then((s=>{console.log(s);const t=s.docs.map((e=>({id:e.id,...e.data()})));console.log("buildings loaded",t),this.buildingItems=t,this.buildingsLoaded=!0,e(t)})).catch((e=>{s(e)})))}))},saveBuilding(e,s){te.update(e,s)}}});var re=(0,r.pM)({components:{Dialog:K.lG,DialogTitle:K.L3,TransitionChild:$._,TransitionRoot:$.O,XIcon:Z.A,VueNumberInput:z.A},setup(){const e=se(),s=ie(),t=(0,D.KR)(!1),i=(0,D.KR)(null);return{open:t,addressesStore:e,buildingsStore:s,selectedIndex:i,setIsOpen(e){t.value=e},selectAddress(e){i.value=e}}},methods:{closeModal(){this.setIsOpen(!1),this.$emit("close"),this.addressesStore.selectedAddresses=null,this.buildingsStore.selectedBuilding=null,this.selectedIndex=null},saveModal(){let e=0;for(const s of this.addressesStore.selectedAddresses){const t=this.addressesStore.addressItems.find((e=>e.id===s.id)),i=this.addressesStore.addressItems.indexOf(t);this.addressesStore.addressItems[i].party_quantity=s.party_quantity,s.party_quantity>0&&e++}e===this.addressesStore.selectedAddresses.length?(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"complete"),this.$emit("save","complete")):e>0?(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"partial"),this.$emit("save","partial")):(this.buildingsStore.saveBuilding(this.buildingsStore.selectedBuilding,"empty"),this.$emit("save","empty")),this.addressesStore.saveAddress(this.addressesStore.selectedAddresses),this.closeModal()},getAddressText(e){return e.street||e.housenumber?`${e.street} ${e.housenumber||""}`:"Keine eindeutige Adresse"}}});const ne=(0,v.A)(re,[["render",W]]);var de=ne,le={name:"Mapbox",components:{Modal:de},setup(){const e=se(),s=ie(),t=[],i=[],r=[];return s.getBuildings.forEach((e=>{0===e.addresses.length&&t.push(e.osm_id.toString()),"complete"===e.record_status&&i.push(e.osm_id.toString()),"partial"===e.record_status&&r.push(e.osm_id.toString())})),{buildingNoAddress:t,buildingComplete:i,buildingPartial:r,addressesStore:e,buildingsStore:s}},data(){return{modalAddresses:[],building:Object}},beforeMount(){this.addressesStore.fetchAddresses(),this.buildingsStore.fetchBuildings()},mounted(){C().accessToken="pk.eyJ1Ijoid3Zpc2lvbiIsImEiOiJjbTBkaXNmNjcwYWZjMmlxdGljdTR5MzlxIn0.tZax7GukcL3-dETMcNA2vw",this.map=new(C().Map)({container:"map",style:"mapbox://styles/mapbox/streets-v11",center:[8.109,47.174],zoom:14}),this.map.on("load",(()=>{this.map.addSource("buildings",{type:"vector",url:"mapbox://wvision.bd5gcv6m"}),this.map.addLayer({id:"buildings",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(0, 0, 0, 0.1)"}},"settlement-label"),this.map.addLayer({id:"buildings-no-address",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(255,0,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),this.map.addLayer({id:"buildings-complete",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(0,255,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),this.map.addLayer({id:"buildings-partial",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"rgba(0, 0, 0, 0.1)","fill-color":"rgba(255,255,0,0.1)"},filter:["in","osm_id",""]},"settlement-label"),this.map.addLayer({id:"buildings-highlighted",type:"fill",source:"buildings","source-layer":"buildings-sursee-bthp8h",paint:{"fill-outline-color":"#484896","fill-color":"#6e599f","fill-opacity":.75},filter:["in","osm_id",""]},"settlement-label"),this.map.on("click","buildings",(({point:e})=>{const s=[[e.x,e.y],[e.x,e.y]],t=this.map.queryRenderedFeatures(s,{layers:["buildings"]})[0],i=this.buildingsStore.getBuildingsByOsmId(parseInt(t.properties.osm_id));if(0!==i.addresses.length){this.fitCoordinates(t.geometry.coordinates[0]),this.map.setFilter("buildings-highlighted",["in","osm_id",t.properties.osm_id]);const e=[];for(const s of i.addresses){const t=this.addressesStore.getAddressesById(s._key.path.segments[6]);e.push({id:t.id,street:t.street,housenumber:t.housenumber,postcode:t.postcode,city:t.city,party_quantity:t.party_quantity,osm_id:t.osm_id})}this.addressesStore.selectedAddresses=e,this.buildingsStore.selectedBuilding=i,this.$refs.modal.setIsOpen(!0)}})),this.map.on("mouseenter","buildings",(()=>{this.map.getCanvas().style.cursor="pointer"})),this.map.on("mouseleave","buildings",(()=>{this.map.getCanvas().style.cursor=""})),this.updateFilter()})),this.map.addControl(new(C().GeolocateControl)({positionOptions:{enableHighAccuracy:!0},fitBoundsOptions:{maxZoom:16},trackUserLocation:!0,showUserHeading:!0,showAccuracyCircle:!1}))},methods:{onModalClose(){this.map.setFilter("buildings-highlighted",["in","osm_id",""])},buildingNotDone(){const e=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingPartial.push(this.buildingsStore.selectedBuilding.osm_id.toString()),this.buildingComplete=this.buildingComplete.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingsStore.buildingItems[e].record_status="partial",this.updateFilter()},buildingDone(){const e=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingComplete.push(this.buildingsStore.selectedBuilding.osm_id.toString()),this.buildingPartial=this.buildingPartial.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingsStore.buildingItems[e].record_status="complete",this.updateFilter()},reset(){const e=this.buildingsStore.buildingItems.indexOf(this.buildingsStore.selectedBuilding);this.buildingComplete=this.buildingComplete.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingPartial=this.buildingPartial.filter((e=>e!==this.buildingsStore.selectedBuilding.osm_id.toString())),this.buildingsStore.buildingItems[e].record_status="empty",this.updateFilter()},updateFilter(e){switch(e){case"complete":this.buildingDone();break;case"partial":this.buildingNotDone();break;case"empty":this.reset();break}this.map.setFilter("buildings-no-address",["in","osm_id",...this.buildingNoAddress]),this.map.setFilter("buildings-complete",["in","osm_id",...this.buildingComplete]),this.map.setFilter("buildings-partial",["in","osm_id",...this.buildingPartial])},fitCoordinates(e){const s=new(C().LngLatBounds)(e[0],e[0]);for(const t of e)s.extend(t);this.map.fitBounds(s,{zoom:17.5,offset:[0,-60]})}}};const oe=(0,v.A)(le,[["render",A],["__scopeId","data-v-3d4f7f42"]]);var ae=oe,ue={name:"Map",components:{Mapbox:ae}};const ce=(0,v.A)(ue,[["render",_]]);var ge=ce;function me(e,s,t,i,n,d){const l=(0,r.g2)("address-list");return(0,r.uX)(),(0,r.Wv)(l)}const pe={class:"max-w-7xl mx-auto"},he={class:"flex items-center justify-between py-6 px-4 sm:px-6 lg:px-8"},be={class:"flex-1 min-w-0"},fe=(0,r.Lk)("h2",{class:"text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:truncate"}," Erfasste Adressen ",-1),ye={class:"flex flex-row sm:flex-wrap mt-0 space-x-6"},ve={class:"mt-2 flex items-center text-sm text-gray-500"},xe={class:"mt-2 flex items-center text-sm text-gray-500"},ke={class:"xl:px-8","aria-label":"Adressen"},Le={class:"z-10 sticky top-0 border-t border-b border-gray-200 bg-gray-50 px-6 py-1 text-sm font-medium text-gray-500"},_e={role:"list",class:"relative z-0 divide-y divide-gray-200"},Se={class:"relative px-6 py-5 flex items-center space-x-3 hover:bg-gray-50 focus-within:ring-2 focus-within:ring-inset focus-within:ring-indigo-500"},we={class:"flex-shrink-0"},Ae={class:"flex h-10 w-10 bg-gray-100 rounded-full items-center justify-center"},Ie={class:"flex-1 min-w-0"},Ce={href:"#",class:"focus:outline-none"},Be=(0,r.Lk)("span",{class:"absolute inset-0","aria-hidden":"true"},null,-1),Me={class:"text-sm font-medium text-gray-900"},Fe={class:"text-sm text-gray-500 truncate"};function Oe(e,s,t,i,d,l){const o=(0,r.g2)("HomeIcon"),a=(0,r.g2)("UsersIcon");return(0,r.uX)(),(0,r.CE)("div",pe,[(0,r.Lk)("div",he,[(0,r.Lk)("div",be,[fe,(0,r.Lk)("div",ye,[(0,r.Lk)("div",ve,[(0,r.bF)(o,{class:"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400","aria-hidden":"true"}),(0,r.eW)(" "+(0,n.v_)(e.addressCount)+" Adressen ",1)]),(0,r.Lk)("div",xe,[(0,r.bF)(a,{class:"flex-shrink-0 mr-1.5 h-5 w-5 text-gray-400","aria-hidden":"true"}),(0,r.eW)(" "+(0,n.v_)(e.partyCount)+" Parteien ",1)])])])]),(0,r.Lk)("nav",ke,[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(Object.keys(e.addresses),(s=>((0,r.uX)(),(0,r.CE)("div",{key:s,class:"relative"},[(0,r.Lk)("div",Le,[(0,r.Lk)("h3",null,(0,n.v_)(s),1)]),(0,r.Lk)("ul",_e,[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.addresses[s],(s=>((0,r.uX)(),(0,r.CE)("li",{key:s.id,class:"bg-white"},[(0,r.Lk)("div",Se,[(0,r.Lk)("div",we,[(0,r.Lk)("div",Ae,[(0,r.bF)(o,{class:"h-6 w-6 text-gray-500"})])]),(0,r.Lk)("div",Ie,[(0,r.Lk)("a",Ce,[Be,(0,r.Lk)("p",Me,(0,n.v_)(e.fullAddress(s)),1),(0,r.Lk)("p",Fe,(0,n.v_)(s.party_quantity)+" "+(0,n.v_)(1===s.party_quantity?"Partei":"Parteien"),1)])])])])))),128))])])))),128))])])}var je=t(5847),Ee=t(8252),Xe=(0,r.pM)({name:"AddressList",components:{HomeIcon:je.A,UsersIcon:Ee.A},setup(){const e=se(),s=(0,r.EW)((()=>e.getSortedAddresses)),t=(0,r.EW)((()=>{if(!s.value)return{};const e={};return s.value.forEach((s=>{const t=s.street.charAt(0);t in e||(e[t]=[]),e[t].push(s)})),e})),i=(0,r.EW)((()=>Object.values(t.value).reduce(((e,s)=>e+s.length),0))),n=(0,r.EW)((()=>Object.values(t.value).reduce(((e,s)=>e+s.reduce(((e,{party_quantity:s})=>e+s),0)),0))),d=e=>`${e.street||"{Strasse}"} ${e.housenumber||"{Hausnummer}"}, ${e.postcode||"{PLZ}"} ${e.city||"{Ortschaft}"}`;return{addresses:t,addressCount:i,partyCount:n,fullAddress:d}}});const Pe=(0,v.A)(Xe,[["render",Oe]]);var Te=Pe,qe={name:"Addresses",components:{AddressList:Te}};const We=(0,v.A)(qe,[["render",me]]);var De=We;const Ke=[{path:"/",name:"Map",component:ge},{path:"/adressen",name:"Addresses",component:De}],$e=(0,L.aE)({history:(0,L.LA)("/Mailblox/"),routes:Ke});var Ze=$e;(0,i.Ef)(k).use(Ze).use((0,G.Ey)()).mount("#app")}},s={};function t(i){var r=s[i];if(void 0!==r)return r.exports;var n=s[i]={exports:{}};return e[i].call(n.exports,n,n.exports,t),n.exports}t.m=e,function(){var e=[];t.O=function(s,i,r,n){if(!i){var d=1/0;for(u=0;u=n)&&Object.keys(t.O).every((function(e){return t.O[e](i[o])}))?i.splice(o--,1):(l=!1,n0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[i,r,n]}}(),function(){t.n=function(e){var s=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(s,{a:s}),s}}(),function(){t.d=function(e,s){for(var i in s)t.o(s,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:s[i]})}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,s){return Object.prototype.hasOwnProperty.call(e,s)}}(),function(){t.p="/Mailblox/"}(),function(){var e={524:0};t.O.j=function(s){return 0===e[s]};var s=function(s,i){var r,n,d=i[0],l=i[1],o=i[2],a=0;if(d.some((function(s){return 0!==e[s]}))){for(r in l)t.o(l,r)&&(t.m[r]=l[r]);if(o)var u=o(t)}for(s&&s(i);a\n
\n \n
\n
\n
\n
\n \"Mailblox\"\n \"Mailblox\"\n
\n
\n \n \n Karte\n \n \n \n \n Adressen\n \n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n
\n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=779d3c64\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n\n\n","\n\n\n","import { initializeApp } from 'firebase/app'\nimport { getFirestore } from 'firebase/firestore'\nimport firebaseConfig from '@/config/firebase'\n\nconst firebase = initializeApp(firebaseConfig)\nconst firestore = getFirestore(firebase)\n\nexport default firestore\n","import firestore from '@/helpers/firebase'\nimport { collection, doc, getDocs, updateDoc } from 'firebase/firestore'\n\nexport default {\n async fetch () {\n return await getDocs(collection(firestore, 'addresses'))\n },\n async update (address) {\n return await updateDoc(doc(firestore, 'addresses', address.id), {\n party_quantity: address.party_quantity\n })\n }\n}\n","import { defineStore } from 'pinia'\nimport address from '@/resources/address'\nimport { useLocalStorage } from '@vueuse/core'\n\nexport const useAddressesStore = defineStore('addresses', {\n state: () => {\n return {\n addressItems: useLocalStorage('addresses', []),\n addressesLoaded: useLocalStorage('addressesLoaded', false),\n selectedAddresses: null\n }\n },\n\n getters: {\n getAddresses: (state) => state.addressItems,\n getAddressesById: (state) => (id) => state.addressItems.find(address => address.id === id),\n getSortedAddresses: (state) => state.addressItems.sort((a, b) => a.street < b.street ? -1 : a.street > b.street ? 1 : 0),\n isAddressesLoaded: (state) => state.addressesLoaded\n },\n\n actions: {\n fetchAddresses () {\n return new Promise((resolve, reject) => {\n if (this.addressesLoaded) {\n resolve(this.addressItems)\n } else {\n address.fetch().then(snapshot => {\n const addresses = snapshot.docs.map(doc => ({\n id: doc.id,\n ...doc.data()\n }))\n\n console.log('Addresses Loaded', addresses)\n\n this.addressItems = addresses\n this.addressesLoaded = true\n\n resolve(addresses)\n }).catch(error => {\n reject(error)\n })\n }\n })\n },\n saveAddress (addresses) {\n for (const currentAddress of addresses) {\n address.update(currentAddress)\n }\n }\n }\n})\n","import firestore from '@/helpers/firebase'\nimport { collection, doc, getDocs, updateDoc } from 'firebase/firestore'\n\nexport default {\n async fetch () {\n console.log('firestore', firestore)\n return await getDocs(collection(firestore, 'buildings'))\n },\n async update (building, status) {\n return await updateDoc(doc(firestore, 'buildings', building.id), {\n record_status: status\n })\n }\n}\n","import { defineStore } from 'pinia'\nimport building from '@/resources/building'\nimport { useLocalStorage } from '@vueuse/core'\n\nexport const useBuildingsStore = defineStore('buildings', {\n state: () => {\n return {\n buildingItems: useLocalStorage('buildings', []),\n buildingsLoaded: useLocalStorage('buildingsLoaded', false),\n selectedBuilding: null\n }\n },\n\n getters: {\n getBuildings: (state) => state.buildingItems,\n getBuildingsByOsmId: (state) => (osmId) => state.buildingItems.find(building => building.osm_id === osmId),\n isBuildingsLoaded: (state) => state.buildingsLoaded\n },\n\n actions: {\n fetchBuildings () {\n return new Promise((resolve, reject) => {\n if (this.buildingsLoaded) {\n resolve(this.buildingItems)\n } else {\n console.log('Fetching buildings')\n building.fetch().then(snapshot => {\n console.log(snapshot)\n const buildings = snapshot.docs.map(doc => ({\n id: doc.id,\n ...doc.data()\n }))\n\n console.log('buildings loaded', buildings)\n\n this.buildingItems = buildings\n this.buildingsLoaded = true\n\n resolve(buildings)\n }).catch(error => {\n reject(error)\n })\n }\n })\n },\n saveBuilding (currentBuilding, status) {\n building.update(currentBuilding, status)\n }\n }\n})\n","import { render } from \"./Modal.vue?vue&type=template&id=433a06fc\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Mapbox.vue?vue&type=template&id=3d4f7f42&scoped=true\"\nimport script from \"./Mapbox.vue?vue&type=script&lang=js\"\nexport * from \"./Mapbox.vue?vue&type=script&lang=js\"\n\nimport \"./Mapbox.vue?vue&type=style&index=0&id=3d4f7f42&scoped=true&lang=css\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3d4f7f42\"]])\n\nexport default __exports__","import { render } from \"./Map.vue?vue&type=template&id=56bf7ede\"\nimport script from \"./Map.vue?vue&type=script&lang=js\"\nexport * from \"./Map.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n\n","import { render } from \"./AddressList.vue?vue&type=template&id=e207f662\"\nimport script from \"./AddressList.vue?vue&type=script&lang=js\"\nexport * from \"./AddressList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Addresses.vue?vue&type=template&id=3aac8973\"\nimport script from \"./Addresses.vue?vue&type=script&lang=js\"\nexport * from \"./Addresses.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory } from 'vue-router'\nimport Map from '@/views/Map'\nimport Addresses from '@/views/Addresses'\n\nconst routes = [\n {\n path: '/',\n name: 'Map',\n component: Map\n },\n {\n path: '/adressen',\n name: 'Addresses',\n component: Addresses\n }\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes\n})\n\nexport default router\n","import { createApp } from 'vue'\nimport App from '@/App'\nimport router from '@/router'\nimport { createPinia } from 'pinia'\nimport '@/assets/css/index.css'\n\ncreateApp(App)\n .use(router)\n .use(createPinia())\n .mount('#app')\n\n// TODO: better Caching strategy\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.p = \"/Mailblox/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmailblox_app\"] = self[\"webpackChunkmailblox_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(4633); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["module","exports","apiKey","process","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","class","_createElementVNode","src","_imports_0","alt","_imports_1","_createElementBlock","_hoisted_1","_createVNode","_component_Disclosure","as","default","_withCtx","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_component_router_link","to","name","custom","href","navigate","isActive","_normalizeClass","undefined","onClick","_hoisted_7","_","_hoisted_8","_component_router_view","Component","_createBlock","_KeepAlive","include","_resolveDynamicComponent","components","Disclosure","__exports__","render","_component_mapbox","id","_Fragment","_component_Modal","ref","onClose","$options","onModalClose","onSave","updateFilter","key","_component_TransitionRoot","show","_ctx","open","_component_Dialog","closeModal","_component_TransitionChild","enter","leave","type","_cache","args","_component_XIcon","_component_DialogTitle","_createTextVNode","_renderList","addressesStore","selectedAddresses","address","index","$event","selectAddress","_toDisplayString","getAddressText","selectedIndex","length","for","_hoisted_9","_component_vue_number_input","modelValue","party_quantity","attrs","min","center","controls","_createCommentVNode","_hoisted_10","saveModal","firebase","initializeApp","firebaseConfig","firestore","getFirestore","fetch","getDocs","collection","update","updateDoc","doc","useAddressesStore","defineStore","state","addressItems","useLocalStorage","addressesLoaded","getters","getAddresses","getAddressesById","find","getSortedAddresses","sort","a","b","street","isAddressesLoaded","actions","fetchAddresses","Promise","resolve","reject","this","then","snapshot","addresses","docs","map","data","console","log","catch","error","saveAddress","currentAddress","building","status","record_status","useBuildingsStore","buildingItems","buildingsLoaded","selectedBuilding","getBuildings","getBuildingsByOsmId","osmId","osm_id","isBuildingsLoaded","fetchBuildings","buildings","saveBuilding","currentBuilding","defineComponent","Dialog","DialogTitle","TransitionChild","TransitionRoot","XIcon","VueNumberInput","setup","buildingsStore","setIsOpen","value","methods","$emit","counter","item","indexOf","housenumber","Modal","buildingNoAddress","buildingComplete","buildingPartial","forEach","push","toString","modalAddresses","Object","beforeMount","mounted","MapboxGL","container","style","zoom","on","addSource","url","addLayer","source","paint","filter","point","bbox","x","y","queryRenderedFeatures","layers","foundBuilding","parseInt","properties","fitCoordinates","geometry","coordinates","setFilter","allAddresses","_key","path","segments","postcode","city","$refs","modal","getCanvas","cursor","addControl","positionOptions","enableHighAccuracy","fitBoundsOptions","maxZoom","trackUserLocation","showUserHeading","showAccuracyCircle","buildingNotDone","buildingDone","reset","bounds","coordinate","extend","fitBounds","offset","Mapbox","_component_address_list","role","_component_HomeIcon","addressCount","_component_UsersIcon","partyCount","keys","letter","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","fullAddress","_hoisted_18","HomeIcon","UsersIcon","items","computed","directory","charAt","values","reduce","total","quantity","AddressList","routes","component","Map","Addresses","router","createRouter","history","createWebHistory","createApp","App","use","createPinia","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-vendors-legacy.0d8e7c03.js b/js/chunk-vendors-legacy.0d8e7c03.js deleted file mode 100644 index dd3ad72..0000000 --- a/js/chunk-vendors-legacy.0d8e7c03.js +++ /dev/null @@ -1,2063 +0,0 @@ -(self["webpackChunkmailblox_app"]=self["webpackChunkmailblox_app"]||[]).push([[998],{7939:function(t,e,n){"use strict";var i=n(6252); -/*! vue-number-input v2.0.0-rc | (c) 2018-present Chen Fengyuan | MIT */const r=Number.isNaN||window.isNaN,o=/^-?(?:\d+|\d+\.\d+|\.\d+)(?:[eE][-+]?\d+)?$/,s=/\.\d*(?:0|9){10}\d*$/,a=(t,e=1e11)=>s.test(String(t))?Math.round(t*e)/e:t;var l=(0,i.aZ)({name:"VueNumberInput",props:{attrs:{type:Object,default:void 0},center:Boolean,controls:Boolean,disabled:Boolean,inputtable:{type:Boolean,default:!0},inline:Boolean,max:{type:Number,default:1/0},min:{type:Number,default:-1/0},name:{type:String,default:void 0},placeholder:{type:String,default:void 0},readonly:Boolean,rounded:Boolean,size:{type:String,default:void 0},step:{type:Number,default:1},modelValue:{type:Number,default:NaN}},emits:["update:modelValue"],data(){return{value:NaN}},computed:{increasable(){return r(this.value)||this.valuethis.min}},watch:{modelValue:{immediate:!0,handler(t,e){r(t)&&"undefined"===typeof e||t===this.value||this.setValue(t)}}},methods:{change(t){this.setValue(t.target.value)},paste(t){const e=t.clipboardData||window.clipboardData;e&&!o.test(e.getData("text"))&&t.preventDefault()},decrease(){if(this.decreasable){let{value:t}=this;r(t)&&(t=0),this.setValue(a(t-this.step))}},increase(){if(this.increasable){let{value:t}=this;r(t)&&(t=0),this.setValue(a(t+this.step))}},setValue(t){const e=this.value;let n="number"!==typeof t?parseFloat(t):t;r(n)||(this.min<=this.max&&(n=Math.min(this.max,Math.max(this.min,n))),this.rounded&&(n=Math.round(t))),this.value=n,n===e&&(this.$refs.input.value=String(n)),this.$emit("update:modelValue",n)}}});const c=(0,i.HX)("data-v-1169c0e7"),u=c(((t,e,n,r,o,s)=>((0,i.wg)(),(0,i.j4)("div",{class:["vue-number-input",{"vue-number-input--inline":t.inline,"vue-number-input--center":t.center,"vue-number-input--controls":t.controls,[`vue-number-input--${t.size}`]:t.size}]},[t.controls?((0,i.wg)(),(0,i.j4)("button",{key:0,class:"vue-number-input__button vue-number-input__button--minus",type:"button",tabindex:"-1",disabled:t.disabled||t.readonly||!t.decreasable,onClick:e[1]||(e[1]=(...e)=>t.decrease&&t.decrease(...e))},null,8,["disabled"])):(0,i.kq)("v-if",!0),(0,i.Wm)("input",(0,i.dG)({ref:"input",class:"vue-number-input__input"},t.attrs,{type:"number",name:t.name,value:t.value,min:t.min,max:t.max,step:t.step,readonly:t.readonly||!t.inputtable,disabled:t.disabled||!t.decreasable&&!t.increasable,placeholder:t.placeholder,autocomplete:"off",onChange:e[2]||(e[2]=(...e)=>t.change&&t.change(...e)),onPaste:e[3]||(e[3]=(...e)=>t.paste&&t.paste(...e))}),null,16,["name","value","min","max","step","readonly","disabled","placeholder"]),t.controls?((0,i.wg)(),(0,i.j4)("button",{key:1,class:"vue-number-input__button vue-number-input__button--plus",type:"button",tabindex:"-1",disabled:t.disabled||t.readonly||!t.increasable,onClick:e[4]||(e[4]=(...e)=>t.increase&&t.increase(...e))},null,8,["disabled"])):(0,i.kq)("v-if",!0)],2))));function h(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&"undefined"!==typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=t:r.appendChild(document.createTextNode(t))}}var d='.vue-number-input[data-v-1169c0e7]{display:block;font-size:0;max-width:100%;overflow:hidden;position:relative}.vue-number-input__button[data-v-1169c0e7]{background-color:#fff;border:0;border-radius:.25rem;bottom:1px;position:absolute;top:1px;width:2.5rem;z-index:1}.vue-number-input__button[data-v-1169c0e7]:focus{outline:none}.vue-number-input__button[data-v-1169c0e7]:hover:after,.vue-number-input__button[data-v-1169c0e7]:hover:before{background-color:#0074d9}.vue-number-input__button[data-v-1169c0e7]:disabled{opacity:.65}.vue-number-input__button[data-v-1169c0e7]:disabled:after,.vue-number-input__button[data-v-1169c0e7]:disabled:before{background-color:#ddd}.vue-number-input__button[data-v-1169c0e7]:after,.vue-number-input__button[data-v-1169c0e7]:before{background-color:#111;content:"";left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:background-color .15s}.vue-number-input__button[data-v-1169c0e7]:before{height:1px;width:50%}.vue-number-input__button[data-v-1169c0e7]:after{height:50%;width:1px}.vue-number-input__button--minus[data-v-1169c0e7]{border-bottom-right-radius:0;border-right:1px solid #ddd;border-top-right-radius:0;left:1px}.vue-number-input__button--minus[data-v-1169c0e7]:after{visibility:hidden}.vue-number-input__button--plus[data-v-1169c0e7]{border-bottom-left-radius:0;border-left:1px solid #ddd;border-top-left-radius:0;right:1px}.vue-number-input__input[data-v-1169c0e7]{-moz-appearance:textfield;background-color:#fff;border:1px solid #ddd;border-radius:.25rem;display:block;font-size:1rem;line-height:1.5;max-width:100%;min-height:1.5rem;min-width:3rem;padding:.4375rem .875rem;transition:border-color .15s;width:100%}.vue-number-input__input[data-v-1169c0e7]::-webkit-inner-spin-button,.vue-number-input__input[data-v-1169c0e7]::-webkit-outer-spin-button{-webkit-appearance:none}.vue-number-input__input[data-v-1169c0e7]:focus{border-color:#0074d9;outline:none}.vue-number-input__input[data-v-1169c0e7]:disabled,.vue-number-input__input[readonly][data-v-1169c0e7]{background-color:#f8f8f8}.vue-number-input--inline[data-v-1169c0e7]{display:inline-block}.vue-number-input--inline>input[data-v-1169c0e7]{display:inline-block;width:12.5rem}.vue-number-input--center>input[data-v-1169c0e7]{text-align:center}.vue-number-input--controls>input[data-v-1169c0e7]{padding-left:3.375rem;padding-right:3.375rem}.vue-number-input--small>input[data-v-1169c0e7]{border-radius:.1875rem;font-size:.875rem;padding:.25rem .5rem}.vue-number-input--small.vue-number-input--inline>input[data-v-1169c0e7]{width:10rem}.vue-number-input--small.vue-number-input--controls>button[data-v-1169c0e7]{width:2rem}.vue-number-input--small.vue-number-input--controls>input[data-v-1169c0e7]{padding-left:2.5rem;padding-right:2.5rem}.vue-number-input--large>input[data-v-1169c0e7]{border-radius:.3125rem;font-size:1.25rem;padding:.5rem 1rem}.vue-number-input--large.vue-number-input--inline>input[data-v-1169c0e7]{width:15rem}.vue-number-input--large.vue-number-input--controls>button[data-v-1169c0e7]{width:3rem}.vue-number-input--large.vue-number-input--controls>input[data-v-1169c0e7]{padding-left:4rem;padding-right:4rem}';h(d),l.render=u,l.__scopeId="data-v-1169c0e7",e["Z"]=l},4258:function(t,e,n){"use strict";n.d(e,{Jn:function(){return Z},qX:function(){return j},Xd:function(){return V},Mq:function(){return X},ZF:function(){return H},KN:function(){return W}});var i=n(552),r=n(6934),o=n(4444); -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -class s{constructor(t){this.container=t}getPlatformInfoString(){const t=this.container.getProviders();return t.map((t=>{if(a(t)){const e=t.getImmediate();return`${e.library}/${e.version}`}return null})).filter((t=>t)).join(" ")}}function a(t){const e=t.getComponent();return"VERSION"===(null===e||void 0===e?void 0:e.type)}const l="@firebase/app",c="0.7.4",u=new r.Yd("@firebase/app"),h="@firebase/app-compat",d="@firebase/analytics-compat",p="@firebase/analytics",f="@firebase/app-check-compat",m="@firebase/app-check",g="@firebase/auth",y="@firebase/auth-compat",_="@firebase/database",v="@firebase/database-compat",x="@firebase/functions",b="@firebase/functions-compat",w="@firebase/installations",T="@firebase/installations-compat",E="@firebase/messaging",S="@firebase/messaging-compat",A="@firebase/performance",I="@firebase/performance-compat",C="@firebase/remote-config",k="@firebase/remote-config-compat",M="@firebase/storage",D="@firebase/storage-compat",P="@firebase/firestore",z="@firebase/firestore-compat",L="firebase",R="9.1.3",O="[DEFAULT]",F={[l]:"fire-core",[h]:"fire-core-compat",[p]:"fire-analytics",[d]:"fire-analytics-compat",[m]:"fire-app-check",[f]:"fire-app-check-compat",[g]:"fire-auth",[y]:"fire-auth-compat",[_]:"fire-rtdb",[v]:"fire-rtdb-compat",[x]:"fire-fn",[b]:"fire-fn-compat",[w]:"fire-iid",[T]:"fire-iid-compat",[E]:"fire-fcm",[S]:"fire-fcm-compat",[A]:"fire-perf",[I]:"fire-perf-compat",[C]:"fire-rc",[k]:"fire-rc-compat",[M]:"fire-gcs",[D]:"fire-gcs-compat",[P]:"fire-fst",[z]:"fire-fst-compat","fire-js":"fire-js",[L]:"fire-js-all"},B=new Map,N=new Map;function U(t,e){try{t.container.addComponent(e)}catch(n){u.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function V(t){const e=t.name;if(N.has(e))return u.debug(`There were multiple attempts to register component ${e}.`),!1;N.set(e,t);for(const n of B.values())U(n,t);return!0}function j(t,e){return t.container.getProvider(e)} -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const $={["no-app"]:"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()",["bad-app-name"]:"Illegal App name: '{$appName}",["duplicate-app"]:"Firebase App named '{$appName}' already exists with different options or config",["app-deleted"]:"Firebase App named '{$appName}' already deleted",["invalid-app-argument"]:"firebase.{$appName}() takes either no argument or a Firebase App instance.",["invalid-log-argument"]:"First argument to `onLog` must be null or a function."},G=new o.LL("app","Firebase",$); -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -class q{constructor(t,e,n){this._isDeleted=!1,this._options=Object.assign({},t),this._config=Object.assign({},e),this._name=e.name,this._automaticDataCollectionEnabled=e.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new i.wA("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(t){this.checkDestroyed(),this._automaticDataCollectionEnabled=t}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(t){this._isDeleted=t}checkDestroyed(){if(this.isDeleted)throw G.create("app-deleted",{appName:this._name})}} -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */const Z=R;function H(t,e={}){if("object"!==typeof e){const t=e;e={name:t}}const n=Object.assign({name:O,automaticDataCollectionEnabled:!1},e),r=n.name;if("string"!==typeof r||!r)throw G.create("bad-app-name",{appName:String(r)});const s=B.get(r);if(s){if((0,o.vZ)(t,s.options)&&(0,o.vZ)(n,s.config))return s;throw G.create("duplicate-app",{appName:r})}const a=new i.H0(r);for(const i of N.values())a.addComponent(i);const l=new q(t,n,a);return B.set(r,l),l}function X(t=O){const e=B.get(t);if(!e)throw G.create("no-app",{appName:t});return e}function W(t,e,n){var r;let o=null!==(r=F[t])&&void 0!==r?r:t;n&&(o+=`-${n}`);const s=o.match(/\s|\//),a=e.match(/\s|\//);if(s||a){const t=[`Unable to register library "${o}" with version "${e}":`];return s&&t.push(`library name "${o}" contains illegal characters (whitespace or "/")`),s&&a&&t.push("and"),a&&t.push(`version name "${e}" contains illegal characters (whitespace or "/")`),void u.warn(t.join(" "))}V(new i.wA(`${o}-version`,(()=>({library:o,version:e})),"VERSION"))} -/** - * @license - * Copyright 2019 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function K(t){V(new i.wA("platform-logger",(t=>new s(t)),"PRIVATE")),W(l,c,t),W(l,c,"esm2017"),W("fire-js","")}K("")},552:function(t,e,n){"use strict";n.d(e,{wA:function(){return c},H0:function(){return f}});function i(t,e,n,i){function r(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,o){function s(t){try{l(i.next(t))}catch(e){o(e)}}function a(t){try{l(i["throw"](t))}catch(e){o(e)}}function l(t){t.done?n(t.value):r(t.value).then(s,a)}l((i=i.apply(t,e||[])).next())}))}function r(t,e){var n,i,r,o,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(t){return function(e){return l([t,e])}}function l(o){if(n)throw new TypeError("Generator is already executing.");while(s)try{if(n=1,i&&(r=2&o[0]?i["return"]:o[0]?i["throw"]||((r=i["return"])&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,i=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(r=s.trys,!(r=r.length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(t,e){var n="function"===typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,r,o=n.call(t),s=[];try{while((void 0===e||e-- >0)&&!(i=o.next()).done)s.push(i.value)}catch(a){r={error:a}}finally{try{i&&!i.done&&(n=o["return"])&&n.call(o)}finally{if(r)throw r.error}}return s}function a(t,e,n){if(n||2===arguments.length)for(var i,r=0,o=e.length;r{if(e>6|192,e[n++]=63&r|128):55296===(64512&r)&&i+1>18|240,e[n++]=r>>12&63|128,e[n++]=r>>6&63|128,e[n++]=63&r|128):(e[n++]=r>>12|224,e[n++]=r>>6&63|128,e[n++]=63&r|128)}return e},r=function(t){const e=[];let n=0,i=0;while(n191&&r<224){const o=t[n++];e[i++]=String.fromCharCode((31&r)<<6|63&o)}else if(r>239&&r<365){const o=t[n++],s=t[n++],a=t[n++],l=((7&r)<<18|(63&o)<<12|(63&s)<<6|63&a)-65536;e[i++]=String.fromCharCode(55296+(l>>10)),e[i++]=String.fromCharCode(56320+(1023&l))}else{const o=t[n++],s=t[n++];e[i++]=String.fromCharCode((15&r)<<12|(63&o)<<6|63&s)}}return e.join("")}; -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -class o{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}wrapCallback(t){return(e,n)=>{e?this.reject(e):this.resolve(n),"function"===typeof t&&(this.promise.catch((()=>{})),1===t.length?t(e):t(e,n))}}} -/** - * @license - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function s(){return"undefined"!==typeof navigator&&"string"===typeof navigator["userAgent"]?navigator["userAgent"]:""}function a(){return"undefined"!==typeof window&&!!(window["cordova"]||window["phonegap"]||window["PhoneGap"])&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(s())}function l(){const t="object"===typeof chrome?chrome.runtime:"object"===typeof browser?browser.runtime:void 0;return"object"===typeof t&&void 0!==t.id}function c(){return"object"===typeof navigator&&"ReactNative"===navigator["product"]}function u(){return s().indexOf("Electron/")>=0}function h(){const t=s();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}function d(){return s().indexOf("MSAppHost/")>=0} -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const p="FirebaseError";class f extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name=p,Object.setPrototypeOf(this,f.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,m.prototype.create)}}class m{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},i=`${this.service}/${t}`,r=this.errors[t],o=r?g(r,n):"Error",s=`${this.serviceName}: ${o} (${i}).`,a=new f(i,s,n);return a}}function g(t,e){return t.replace(y,((t,n)=>{const i=e[n];return null!=i?String(i):`<${n}?>`}))}const y=/\{\$([^}]+)}/g; -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */function _(t,e){if(t===e)return!0;const n=Object.keys(t),i=Object.keys(e);for(const r of n){if(!i.includes(r))return!1;const n=t[r],o=e[r];if(v(n)&&v(o)){if(!_(n,o))return!1}else if(n!==o)return!1}for(const r of i)if(!n.includes(r))return!1;return!0}function v(t){return null!==t&&"object"===typeof t} -/** - * @license - * Copyright 2017 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @license - * Copyright 2021 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function x(t){return t&&t._delegate?t._delegate:t}},2106:function(t,e,n){"use strict";n.d(e,{Vq:function(){return ut},$N:function(){return ht},pJ:function(){return xt},xY:function(){return ue},Qm:function(){return he}});var i,r,o,s=n(6252),a=n(2262);function l(){return l=Object.assign||function(t){for(var e=1;e=0||(r[n]=t[n]);return r}function u(t,e){if(t){if("string"===typeof t)return h(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(t,e):void 0}}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return n=t[Symbol.iterator](),n.next.bind(n)}function p(t,e){if(t in e){for(var n=e[t],i=arguments.length,r=new Array(i>2?i-2:0),o=2;o0||Object.keys(n).length>0){var d=null!=h?h:[],p=d[0],f=d.slice(1);if(!y(p)||f.length>0)throw new Error(['Passing props on "template"!',"","The current component <"+o+' /> is rendering a "template".',"However we need to passthrough the following props:",Object.keys(u).concat(Object.keys(n)).map((function(t){return" - "+t})).join("\n"),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map((function(t){return" - "+t})).join("\n")].join("\n"));return(0,s.Ho)(p,u)}return Array.isArray(h)&&1===h.length?h[0]:h}return(0,s.h)(l,u,h)}function g(t,e){void 0===e&&(e=[]);for(var n,i=Object.assign({},t),r=d(e);!(n=r()).done;){var o=n.value;o in i&&delete i[o]}return i}function y(t){return null!=t&&("string"===typeof t.type||("object"===typeof t.type||"function"===typeof t.type))}(function(t){t[t["None"]=0]="None",t[t["RenderStrategy"]=1]="RenderStrategy",t[t["Static"]=2]="Static"})(i||(i={})),function(t){t[t["Unmount"]=0]="Unmount",t[t["Hidden"]=1]="Hidden"}(r||(r={})),function(t){t["Space"]=" ",t["Enter"]="Enter",t["Escape"]="Escape",t["Backspace"]="Backspace",t["ArrowLeft"]="ArrowLeft",t["ArrowUp"]="ArrowUp",t["ArrowRight"]="ArrowRight",t["ArrowDown"]="ArrowDown",t["Home"]="Home",t["End"]="End",t["PageUp"]="PageUp",t["PageDown"]="PageDown",t["Tab"]="Tab"}(o||(o={}));var _=0;function v(){return++_}function x(){return v()}var b,w,T,E,S=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map((function(t){return t+":not([tabindex='-1'])"})).join(",");function A(t){return void 0===t&&(t=document.body),null==t?[]:Array.from(t.querySelectorAll(S))}function I(t,e){var n;return void 0===e&&(e=E.Strict),t!==document.body&&p(e,(n={},n[E.Strict]=function(){return t.matches(S)},n[E.Loose]=function(){var e=t;while(null!==e){if(e.matches(S))return!0;e=e.parentElement}return!1},n))}function C(t){null==t||t.focus({preventScroll:!0})}function k(t,e){var n=Array.isArray(t)?t:A(t),i=document.activeElement,r=function(){if(e&(b.First|b.Next))return T.Next;if(e&(b.Previous|b.Last))return T.Previous;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),o=function(){if(e&b.First)return 0;if(e&b.Previous)return Math.max(0,n.indexOf(i))-1;if(e&b.Next)return Math.max(0,n.indexOf(i))+1;if(e&b.Last)return n.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")}(),s=e&b.NoScroll?{preventScroll:!0}:{},a=0,l=n.length,c=void 0;do{var u;if(a>=l||a+l<=0)return w.Error;var h=o+a;if(e&b.WrapAround)h=(h+l)%l;else{if(h<0)return w.Underflow;if(h>=l)return w.Overflow}c=n[h],null==(u=c)||u.focus(s),a+=r}while(c!==document.activeElement);return c.hasAttribute("tabindex")||c.setAttribute("tabindex","0"),w.Success}function M(t,e,n){window.addEventListener(t,e,n),(0,s.Ah)((function(){return window.removeEventListener(t,e,n)}))}function D(t,e){for(var n,i=d(t);!(n=i()).done;){var r=n.value;if(r.contains(e))return!0}return!1}function P(t,e,n){void 0===e&&(e=(0,a.iH)(!0)),void 0===n&&(n=(0,a.iH)({}));var i=(0,a.iH)("undefined"!==typeof window?document.activeElement:null),r=(0,a.iH)(null);function l(){if(e.value&&1===t.value.size){var o=n.value.initialFocus,s=document.activeElement;if(o){if(o===s)return}else if(D(t.value,s))return;if(i.value=s,o)C(o);else{for(var a,l=!1,c=d(t.value);!(a=c()).done;){var u=a.value,h=k(u,b.First);if(h===w.Success){l=!0;break}}l||console.warn("There are no focusable elements inside the ")}r.value=document.activeElement}}function c(){C(i.value),i.value=null,r.value=null}(0,s.m0)(l),(0,s.ic)((function(){e.value?l():c()})),(0,s.Ah)(c),M("keydown",(function(n){if(e.value&&n.key===o.Tab&&document.activeElement&&1===t.value.size){n.preventDefault();for(var i,s=d(t.value);!(i=s()).done;){var a=i.value,l=k(a,(n.shiftKey?b.Previous:b.Next)|b.WrapAround);if(l===w.Success){r.value=document.activeElement;break}}}})),M("focus",(function(n){if(e.value&&1===t.value.size){var i=r.value;if(i){var o=n.target;o&&o instanceof HTMLElement?D(t.value,o)?(r.value=o,C(o)):(n.preventDefault(),n.stopPropagation(),C(i)):C(r.value)}}}),!0)}(function(t){t[t["First"]=1]="First",t[t["Previous"]=2]="Previous",t[t["Next"]=4]="Next",t[t["Last"]=8]="Last",t[t["WrapAround"]=16]="WrapAround",t[t["NoScroll"]=32]="NoScroll"})(b||(b={})),function(t){t[t["Error"]=0]="Error",t[t["Overflow"]=1]="Overflow",t[t["Success"]=2]="Success",t[t["Underflow"]=3]="Underflow"}(w||(w={})),function(t){t[t["Previous"]=-1]="Previous",t[t["Next"]=1]="Next"}(T||(T={})),function(t){t[t["Strict"]=0]="Strict",t[t["Loose"]=1]="Loose"}(E||(E={}));var z="body > *",L=new Set,R=new Map;function O(t){t.setAttribute("aria-hidden","true"),t.inert=!0}function F(t){var e=R.get(t);e&&(null===e["aria-hidden"]?t.removeAttribute("aria-hidden"):t.setAttribute("aria-hidden",e["aria-hidden"]),t.inert=e.inert)}function B(t,e){void 0===e&&(e=(0,a.iH)(!0)),(0,s.m0)((function(n){if(e.value&&t.value){var i=t.value;L.add(i);for(var r,o=d(R.keys());!(r=o()).done;){var s=r.value;s.contains(i)&&(F(s),R["delete"](s))}document.querySelectorAll(z).forEach((function(t){if(t instanceof HTMLElement){for(var e,n=d(L);!(e=n()).done;){var i=e.value;if(t.contains(i))return}1===L.size&&(R.set(t,{"aria-hidden":t.getAttribute("aria-hidden"),inert:t.inert}),O(t))}})),n((function(){if(L["delete"](i),L.size>0)document.querySelectorAll(z).forEach((function(t){if(t instanceof HTMLElement&&!R.has(t)){for(var e,n=d(L);!(e=n()).done;){var i=e.value;if(t.contains(i))return}R.set(t,{"aria-hidden":t.getAttribute("aria-hidden"),inert:t.inert}),O(t)}}));else for(var t,e=d(R.keys());!(t=e()).done;){var n=t.value;F(n),R["delete"](n)}}))}}))}var N,U=Symbol("StackContext");function V(){return(0,s.f3)(U,(function(){}))}function j(t){var e=V();(0,s.m0)((function(n){var i=null==t?void 0:t.value;i&&(e(N.AddElement,i),n((function(){return e(N.RemoveElement,i)})))}))}function $(t){var e=V();function n(){for(var n=arguments.length,i=new Array(n),r=0;r0?u.value.join(" "):void 0}))}function Q(t){var e;return null==t||null==t.value?null:null!=(e=t.value.$el)?e:t.value}var tt,et,nt=Symbol("Context");function it(){return null!==rt()}function rt(){return(0,s.f3)(nt,null)}function ot(t){(0,s.JJ)(nt,t)}(function(t){t[t["Open"]=0]="Open",t[t["Closed"]=1]="Closed"})(tt||(tt={})),function(t){t[t["Open"]=0]="Open",t[t["Closed"]=1]="Closed"}(et||(et={}));var st=Symbol("DialogContext");function at(t){var e=(0,s.f3)(st,null);if(null===e){var n=new Error("<"+t+" /> is missing a parent component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,at),n}return e}var lt,ct="DC8F892D-2EBD-447C-A4C8-A03058436FF4",ut=(0,s.aZ)({name:"Dialog",inheritAttrs:!1,props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},open:{type:[Boolean,String],default:ct},initialFocus:{type:Object,default:null}},emits:{close:function(t){return!0}},render:function(){var t=this,e=l({},this.$attrs,{ref:"el",id:this.id,role:"dialog","aria-modal":this.dialogState===et.Open||void 0,"aria-labelledby":this.titleId,"aria-describedby":this.describedby,onClick:this.handleClick}),n=this.$props,r=c(n,["open","initialFocus"]),o={open:this.dialogState===et.Open};return(0,s.h)(Z,{force:!0},(function(){return(0,s.h)(X,(function(){return(0,s.h)(K,{target:t.dialogRef},(function(){return(0,s.h)(Z,{force:!1},(function(){return f({props:l({},r,e),slot:o,attrs:t.$attrs,slots:t.$slots,visible:t.visible,features:i.RenderStrategy|i.Static,name:"Dialog"})}))}))}))}))},setup:function(t,e){var n=e.emit,i=(0,a.iH)(new Set),r=rt(),l=(0,a.Fl)((function(){var e;return t.open===ct&&null!==r?p(r.value,(e={},e[tt.Open]=!0,e[tt.Closed]=!1,e)):t.open})),c=t.open!==ct||null!==r;if(!c)throw new Error("You forgot to provide an `open` prop to the `Dialog`.");if("boolean"!==typeof l.value)throw new Error("You provided an `open` prop to the `Dialog`, but the value is not a boolean. Received: "+(l.value===ct?void 0:t.open));var u=(0,a.Fl)((function(){return t.open?et.Open:et.Closed})),h=(0,a.Fl)((function(){return null!==r?r.value===tt.Open:u.value===et.Open})),f=(0,a.iH)(null),m=(0,a.iH)(u.value===et.Open);(0,s.ic)((function(){m.value=u.value===et.Open}));var g="headlessui-dialog-"+x(),y=(0,a.Fl)((function(){return{initialFocus:t.initialFocus}}));P(i,m,y),B(f,m),$((function(t,e){var n;return p(t,(n={},n[N.AddElement]=function(){i.value.add(e)},n[N.RemoveElement]=function(){i.value["delete"](e)},n))}));var _=J({name:"DialogDescription",slot:(0,a.Fl)((function(){return{open:l.value}}))}),v=(0,a.iH)(null),b={titleId:v,dialogState:u,setTitleId:function(t){v.value!==t&&(v.value=t)},close:function(){n("close",!1)}};return(0,s.JJ)(st,b),M("mousedown",(function(t){var e=t.target;u.value===et.Open&&1===i.value.size&&(D(i.value,e)||(b.close(),(0,s.Y3)((function(){return null==e?void 0:e.focus()}))))})),M("keydown",(function(t){t.key===o.Escape&&u.value===et.Open&&(i.value.size>1||(t.preventDefault(),t.stopPropagation(),b.close()))})),(0,s.m0)((function(t){if(u.value===et.Open){var e=document.documentElement.style.overflow,n=document.documentElement.style.paddingRight,i=window.innerWidth-document.documentElement.clientWidth;document.documentElement.style.overflow="hidden",document.documentElement.style.paddingRight=i+"px",t((function(){document.documentElement.style.overflow=e,document.documentElement.style.paddingRight=n}))}})),(0,s.m0)((function(t){if(u.value===et.Open){var e=Q(f);if(e){var n=new IntersectionObserver((function(t){for(var e,n=d(t);!(e=n()).done;){var i=e.value;0===i.boundingClientRect.x&&0===i.boundingClientRect.y&&0===i.boundingClientRect.width&&0===i.boundingClientRect.height&&b.close()}}));n.observe(e),t((function(){return n.disconnect()}))}}})),{id:g,el:f,dialogRef:f,containers:i,dialogState:u,titleId:v,describedby:_,visible:h,open:l,handleClick:function(t){t.stopPropagation()}}}}),ht=(0,s.aZ)({name:"DialogTitle",props:{as:{type:[Object,String],default:"h2"}},render:function(){var t=at("DialogTitle"),e={id:this.id},n=this.$props;return f({props:l({},n,e),slot:{open:t.dialogState.value===et.Open},attrs:this.$attrs,slots:this.$slots,name:"DialogTitle"})},setup:function(){var t=at("DialogTitle"),e="headlessui-dialog-title-"+x();return(0,s.bv)((function(){t.setTitleId(e),(0,s.Ah)((function(){return t.setTitleId(null)}))})),{id:e}}});function dt(t,e){if(t)return t;var n=null!=e?e:"button";return"string"===typeof n&&"button"===n.toLowerCase()?"button":void 0}function pt(t,e){var n=(0,a.iH)(dt(t.value.type,t.value.as));return(0,s.bv)((function(){n.value=dt(t.value.type,t.value.as)})),(0,s.m0)((function(){var t;n.value||Q(e)&&Q(e)instanceof HTMLButtonElement&&!(null==(t=Q(e))?void 0:t.hasAttribute("type"))&&(n.value="button")})),n}(function(t){t[t["Open"]=0]="Open",t[t["Closed"]=1]="Closed"})(lt||(lt={}));var ft=Symbol("DisclosureContext");function mt(t){var e=(0,s.f3)(ft,null);if(null===e){var n=new Error("<"+t+" /> is missing a parent component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,mt),n}return e}var gt=Symbol("DisclosurePanelContext");function yt(){return(0,s.f3)(gt,null)}var _t,vt,xt=(0,s.aZ)({name:"Disclosure",props:{as:{type:[Object,String],default:"template"},defaultOpen:{type:[Boolean],default:!1}},setup:function(t,e){var n=e.slots,i=e.attrs,r="headlessui-disclosure-button-"+x(),o="headlessui-disclosure-panel-"+x(),l=(0,a.iH)(t.defaultOpen?lt.Open:lt.Closed),u=(0,a.iH)(null),h=(0,a.iH)(null),d={buttonId:r,panelId:o,disclosureState:l,panel:u,button:h,toggleDisclosure:function(){var t;l.value=p(l.value,(t={},t[lt.Open]=lt.Closed,t[lt.Closed]=lt.Open,t))},closeDisclosure:function(){l.value!==lt.Closed&&(l.value=lt.Closed)},close:function(t){d.closeDisclosure();var e=function(){return t?t instanceof HTMLElement?t:t.value instanceof HTMLElement?Q(t):Q(d.button):Q(d.button)}();null==e||e.focus()}};return(0,s.JJ)(ft,d),ot((0,a.Fl)((function(){var t;return p(l.value,(t={},t[lt.Open]=tt.Open,t[lt.Closed]=tt.Closed,t))}))),function(){var e=c(t,["defaultOpen"]),r={open:l.value===lt.Open,close:d.close};return f({props:e,slot:r,slots:n,attrs:i,name:"Disclosure"})}}});Boolean,Boolean,Boolean;function bt(t){throw new Error("Unexpected object: "+t)}function wt(t,e){var n=e.resolveItems();if(n.length<=0)return null;var i=e.resolveActiveIndex(),r=null!=i?i:-1,o=function(){switch(t.focus){case _t.First:return n.findIndex((function(t){return!e.resolveDisabled(t)}));case _t.Previous:var i=n.slice().reverse().findIndex((function(t,n,i){return!(-1!==r&&i.length-n-1>=r)&&!e.resolveDisabled(t)}));return-1===i?i:n.length-1-i;case _t.Next:return n.findIndex((function(t,n){return!(n<=r)&&!e.resolveDisabled(t)}));case _t.Last:var o=n.slice().reverse().findIndex((function(t){return!e.resolveDisabled(t)}));return-1===o?o:n.length-1-o;case _t.Specific:return n.findIndex((function(n){return e.resolveId(n)===t.id}));case _t.Nothing:return null;default:bt(t)}}();return-1===o?i:o}(function(t){t[t["First"]=0]="First",t[t["Previous"]=1]="Previous",t[t["Next"]=2]="Next",t[t["Last"]=3]="Last",t[t["Specific"]=4]="Specific",t[t["Nothing"]=5]="Nothing"})(_t||(_t={})),function(t){t[t["Open"]=0]="Open",t[t["Closed"]=1]="Closed"}(vt||(vt={}));var Tt=Symbol("ListboxContext");function Et(t){var e=(0,s.f3)(Tt,null);if(null===e){var n=new Error("<"+t+" /> is missing a parent component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,Et),n}return e}var St;Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;function At(t){var e=t.container,n=t.accept,i=t.walk,r=t.enabled;(0,s.m0)((function(){var t=e.value;if(t&&(void 0===r||r.value)){var o=Object.assign((function(t){return n(t)}),{acceptNode:n}),s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,o,!1);while(s.nextNode())i(s.currentNode)}}))}function It(t){requestAnimationFrame((function(){return requestAnimationFrame(t)}))}(function(t){t[t["Open"]=0]="Open",t[t["Closed"]=1]="Closed"})(St||(St={}));var Ct=Symbol("MenuContext");function kt(t){var e=(0,s.f3)(Ct,null);if(null===e){var n=new Error("<"+t+" /> is missing a parent component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,kt),n}return e}var Mt;Boolean,Boolean,Boolean,Boolean;(function(t){t[t["Open"]=0]="Open",t[t["Closed"]=1]="Closed"})(Mt||(Mt={}));var Dt=Symbol("PopoverContext");function Pt(t){var e=(0,s.f3)(Dt,null);if(null===e){var n=new Error("<"+t+" /> is missing a parent <"+Ft.name+" /> component.");throw Error.captureStackTrace&&Error.captureStackTrace(n,Pt),n}return e}var zt=Symbol("PopoverGroupContext");function Lt(){return(0,s.f3)(zt,null)}var Rt=Symbol("PopoverPanelContext");function Ot(){return(0,s.f3)(Rt,null)}var Ft=(0,s.aZ)({name:"Popover",props:{as:{type:[Object,String],default:"div"}},setup:function(t,e){var n=e.slots,i=e.attrs,r="headlessui-popover-button-"+x(),o="headlessui-popover-panel-"+x(),l=(0,a.iH)(Mt.Closed),c=(0,a.iH)(null),u=(0,a.iH)(null),h={popoverState:l,buttonId:r,panelId:o,panel:u,button:c,togglePopover:function(){var t;l.value=p(l.value,(t={},t[Mt.Open]=Mt.Closed,t[Mt.Closed]=Mt.Open,t))},closePopover:function(){l.value!==Mt.Closed&&(l.value=Mt.Closed)},close:function(t){h.closePopover();var e=function(){return t?t instanceof HTMLElement?t:t.value instanceof HTMLElement?Q(t):Q(h.button):Q(h.button)}();null==e||e.focus()}};(0,s.JJ)(Dt,h),ot((0,a.Fl)((function(){var t;return p(l.value,(t={},t[Mt.Open]=tt.Open,t[Mt.Closed]=tt.Closed,t))})));var d={buttonId:r,panelId:o,close:function(){h.closePopover()}},m=Lt(),g=null==m?void 0:m.registerPopover;function y(){var t,e,n;return null!=(t=null==m?void 0:m.isFocusWithinPopoverGroup())?t:(null==(e=Q(c))?void 0:e.contains(document.activeElement))||(null==(n=Q(u))?void 0:n.contains(document.activeElement))}return(0,s.m0)((function(){return null==g?void 0:g(d)})),M("focus",(function(){l.value===Mt.Open&&(y()||c&&u&&h.closePopover())}),!0),M("mousedown",(function(t){var e,n,i,r=t.target;l.value===Mt.Open&&((null==(e=Q(c))?void 0:e.contains(r))||(null==(n=Q(u))?void 0:n.contains(r))||(h.closePopover(),I(r,E.Loose)||(t.preventDefault(),null==(i=Q(c))||i.focus())))})),function(){var e={open:l.value===Mt.Open,close:h.close};return f({props:t,slot:e,slots:n,attrs:i,name:"Popover"})}}}),Bt=(Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Symbol("LabelContext"));function Nt(){var t=(0,s.f3)(Bt,null);if(null===t){var e=new Error("You used a