{"version":3,"file":"js/app-legacy.81b0edd5.js","mappings":"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","sources":["webpack://client-app/./src/App.vue?cace","webpack://client-app/./src/components/ModalBase.vue?6c20","webpack://client-app/./src/components/ModalBase.vue?093f","webpack://client-app/./src/components/ModalBase.vue","webpack://client-app/./src/components/layout/Sidebar.vue?0c49","webpack://client-app/./src/components/layout/SidebarContent.vue?dee2","webpack://client-app/./src/components/layout/SidebarContent.vue?979c","webpack://client-app/./src/components/layout/SidebarContent.vue","webpack://client-app/./src/components/layout/Sidebar.vue?5324","webpack://client-app/./src/components/layout/Sidebar.vue","webpack://client-app/./src/components/forms/ResetPassword.vue?b0d6","webpack://client-app/./src/components/forms/ResetPassword.vue?5e5d","webpack://client-app/./src/components/forms/ResetPassword.vue","webpack://client-app/./src/App.vue?847a","webpack://client-app/./src/App.vue","webpack://client-app/./src/router/index.ts","webpack://client-app/./src/main.ts","webpack://client-app/./src/store/actions.ts","webpack://client-app/./src/store/state.ts","webpack://client-app/./src/store/getters.ts","webpack://client-app/./src/store/index.ts","webpack://client-app/./src/store/mutations.ts","webpack://client-app/./src/types/types.ts","webpack://client-app/./src/utils/api/apiService.ts","webpack://client-app/./src/utils/localStorageService.ts","webpack://client-app/./src/utils/sessionStorageService.ts","webpack://client-app/./src/utils/validation/validators.ts","webpack://client-app/./src/components/NominateButton.vue?006e","webpack://client-app/./src/components/NominateButton.vue?78fc","webpack://client-app/./src/components/NominateButton.vue","webpack://client-app/./src/components/forms/FormSuccsess.vue?e369","webpack://client-app/./src/components/forms/FormSuccsess.vue?fa2c","webpack://client-app/./src/components/forms/FormSuccsess.vue","webpack://client-app/./src/components/forms/LoginForm.vue?538e","webpack://client-app/./src/components/forms/LoginForm.vue?9d7e","webpack://client-app/./src/components/forms/LoginForm.vue","webpack://client-app/./src/components/forms/SignUpForm.vue?a89b","webpack://client-app/./src/components/composables/useSignUpValidation.ts","webpack://client-app/./src/components/forms/SignUpForm.vue?9eb2","webpack://client-app/./src/components/forms/SignUpForm.vue","webpack://client-app/./src/components/ui/NFormButton.vue?ce60","webpack://client-app/./src/components/ui/NFormButton.vue?726b","webpack://client-app/./src/components/ui/NFormButton.vue","webpack://client-app/./src/components/ui/NFormInput.vue?75d5","webpack://client-app/./src/components/ui/NFormInput.vue?5903","webpack://client-app/./src/components/ui/NFormInput.vue","webpack://client-app/./src/components/ui/NFormSelect.vue?8553","webpack://client-app/./src/components/ui/NFormSelect.vue?827a","webpack://client-app/./src/components/ui/NFormSelect.vue","webpack://client-app/./src/components/ui/NSwitch.vue?8d0c","webpack://client-app/./src/components/ui/NSwitch.vue?5fbf","webpack://client-app/./src/components/ui/NSwitch.vue","webpack://client-app/./src/components/ui/NTitle.vue?817a","webpack://client-app/./src/components/ui/NTitle.vue?350a","webpack://client-app/./src/components/ui/NTitle.vue","webpack://client-app/webpack/bootstrap","webpack://client-app/webpack/runtime/chunk loaded","webpack://client-app/webpack/runtime/compat get default export","webpack://client-app/webpack/runtime/define property getters","webpack://client-app/webpack/runtime/ensure chunk","webpack://client-app/webpack/runtime/get javascript chunk filename","webpack://client-app/webpack/runtime/get mini-css chunk filename","webpack://client-app/webpack/runtime/global","webpack://client-app/webpack/runtime/hasOwnProperty shorthand","webpack://client-app/webpack/runtime/load script","webpack://client-app/webpack/runtime/make namespace object","webpack://client-app/webpack/runtime/publicPath","webpack://client-app/webpack/runtime/jsonp chunk loading","webpack://client-app/webpack/startup"],"sourcesContent":["import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Suspense as _Suspense, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"antialiased font-normal section font-openSans\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SignUpForm = _resolveComponent(\"SignUpForm\")!\n const _component_LoginForm = _resolveComponent(\"LoginForm\")!\n const _component_ResetPassword = _resolveComponent(\"ResetPassword\")!\n const _component_ModalBase = _resolveComponent(\"ModalBase\")!\n const _component_Sidebar = _resolveComponent(\"Sidebar\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_ModalBase, null, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_Suspense, null, {\n default: _withCtx(() => [\n (_ctx.showSignUpModal)\n ? (_openBlock(), _createBlock(_component_SignUpForm, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })),\n (_ctx.showLogInModal)\n ? (_openBlock(), _createBlock(_component_LoginForm, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_ctx.showResetPasswordModal)\n ? (_openBlock(), _createBlock(_component_ResetPassword, { key: 1 }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(_component_Sidebar),\n _createVNode(_component_router_view)\n ])\n ]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, renderSlot as _renderSlot, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"fixed inset-0 z-50 overflow-y-auto\" }\nconst _hoisted_2 = { class: \"min-h-screen sm:px-4 text-center\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"inline-block h-screen align-top sm:align-middle\",\n \"aria-hidden\": \"true\"\n}, \" ​ \", -1)\nconst _hoisted_4 = { class: \"inline-block w-full max-w-md p-2 sm:p-6 my-4 sm:my-8 overflow-hidden text-left align-middle transition-all transform bg-white bg-opacity-80 backdrop-filter backdrop-blur shadow-xl rounded-sm lg:rounded-sm lg:min-w-30\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-5 w-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M6 18L18 6M6 6l12 12\"\n })\n], -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DialogOverlay = _resolveComponent(\"DialogOverlay\")!\n const _component_TransitionChild = _resolveComponent(\"TransitionChild\")!\n const _component_Dialog = _resolveComponent(\"Dialog\")!\n const _component_TransitionRoot = _resolveComponent(\"TransitionRoot\")!\n\n return (_openBlock(), _createBlock(_component_TransitionRoot, {\n appear: \"\",\n show: _ctx.isOpen,\n as: \"template\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Dialog, {\n as: \"div\",\n static: \"\",\n open: _ctx.isOpen,\n onClose: _ctx.closeModal\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_TransitionChild, {\n as: \"template\",\n enter: \"duration-300 ease-out\",\n \"enter-from\": \"opacity-0\",\n \"enter-to\": \"opacity-100\",\n leave: \"duration-200 ease-in\",\n \"leave-from\": \"opacity-100\",\n \"leave-to\": \"opacity-0\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_DialogOverlay, { class: \"fixed inset-0 bg-opacity-25 bg-gray-900 backdrop-filter backdrop-blur-sm\" })\n ]),\n _: 1\n }),\n _hoisted_3,\n _createVNode(_component_TransitionChild, {\n as: \"template\",\n enter: \"duration-300 ease-out\",\n \"enter-from\": \"opacity-0 translate-y-10 scale-95\",\n \"enter-to\": \"opacity-100 translate-y-0 scale-100\",\n leave: \"duration-200 ease-in\",\n \"leave-from\": \"opacity-100 translate-y-0 scale-100\",\n \"leave-to\": \"opacity-0 translate-y-10 sm:-translate-y-10 scale-95\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"text-black opacity-80 hover:opacity-100 absolute top-3 right-3 sm:top-4 sm:right-4 focus:outline-none cursor-pointer transform transition hover:scale-125 hover:rotate-90\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.closeModal && _ctx.closeModal(...args)))\n }, _hoisted_6),\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ]),\n _: 3\n })\n ])\n ])\n ]),\n _: 3\n }, 8, [\"open\", \"onClose\"])\n ]),\n _: 3\n }, 8, [\"show\"]))\n}","\nimport { defineComponent, computed } from 'vue';\nimport { useStore } from '../store';\nimport { ActionTypes } from '../store/actions';\nimport { TransitionRoot, TransitionChild, Dialog, DialogOverlay } from '@headlessui/vue';\n\nexport default defineComponent({\n name: 'ModalBase',\n components: {\n TransitionRoot,\n TransitionChild,\n Dialog,\n DialogOverlay,\n },\n\n setup() {\n const store = useStore();\n const isOpen = computed(() => store.state.showModal);\n\n return {\n isOpen,\n closeModal() {\n store.dispatch(ActionTypes.HideModal);\n },\n };\n },\n});\n","import { render } from \"./ModalBase.vue?vue&type=template&id=0900d446&ts=true\"\nimport script from \"./ModalBase.vue?vue&type=script&lang=ts\"\nexport * from \"./ModalBase.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"fixed inset-0 z-40 overflow-hidden lg:hidden\",\n \"aria-modal\": \"true\"\n}\nconst _hoisted_2 = { class: \"absolute inset-0 z-40 flex pointer-events-none\" }\nconst _hoisted_3 = { class: \"flex-1 max-w-sm min-w-0 bg-opacity-75 border-r border-white pointer-events-auto border-opacity-10 bg-gray-900 backdrop-filter backdrop-blur firefox:bg-opacity-90\" }\nconst _hoisted_4 = { class: \"py-6 space-y-4 text-gray-500 h-full w-full\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"h-5 w-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M6 18L18 6M6 6l12 12\"\n })\n], -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"w-24 pointer-events-none\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DialogOverlay = _resolveComponent(\"DialogOverlay\")!\n const _component_TransitionChild = _resolveComponent(\"TransitionChild\")!\n const _component_SidebarContent = _resolveComponent(\"SidebarContent\")!\n const _component_Dialog = _resolveComponent(\"Dialog\")!\n const _component_TransitionRoot = _resolveComponent(\"TransitionRoot\")!\n\n return (_openBlock(), _createBlock(_component_TransitionRoot, {\n appear: \"\",\n show: _ctx.isOpen,\n as: \"template\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Dialog, {\n as: \"div\",\n static: \"\",\n open: _ctx.isOpen\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_TransitionChild, {\n as: \"template\",\n enter: \"duration-200 ease-out\",\n \"enter-from\": \"opacity-0\",\n \"enter-to\": \"opacity-100\",\n leave: \"duration-200 ease-in\",\n \"leave-from\": \"opacity-100\",\n \"leave-to\": \"opacity-0\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_DialogOverlay, {\n class: \"bg-gray-900 absolute inset-0 backdrop-filter backdrop-blur bg-opacity-50\",\n \"aria-hidden\": \"true\",\n onClick: _ctx.closeSidebar\n }, null, 8, [\"onClick\"])\n ]),\n _: 1\n }),\n _createVNode(_component_TransitionChild, {\n as: \"template\",\n enter: \"duration-500 ease-in-out\",\n \"enter-from\": \" transform -translate-x-full \",\n \"enter-to\": \" transform translate-x-0 \",\n leave: \"duration-500 ease-in-out\",\n \"leave-from\": \"transform translate-x-0 \",\n \"leave-to\": \"transform -translate-x-full \"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"text-white opacity-80 hover:opacity-100 absolute top-3 right-3 sm:top-4 sm:right-4 focus:outline-none cursor-pointer transform transition hover:scale-125\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.closeSidebar && _ctx.closeSidebar(...args)))\n }, _hoisted_6),\n _createVNode(_component_SidebarContent)\n ])\n ]),\n _hoisted_7\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"open\"])\n ]),\n _: 1\n }, 8, [\"show\"]))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"h-full text-gray-900 lg:space-y-7 lg:text-lg\" }\nconst _hoisted_2 = { class: \"flex justify-center px-6 mb-2 lg:px-0\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\"\n })\n], -1)\nconst _hoisted_4 = { class: \"pl-2\" }\nconst _hoisted_5 = [\"src\"]\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6\"\n })\n], -1)\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \" Home \", -1)\nconst _hoisted_8 = [\n _hoisted_6,\n _hoisted_7\n]\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"1.5\",\n stroke: \"currentColor\",\n class: \"w-5 h-5\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M4.098 19.902a3.75 3.75 0 0 0 5.304 0l6.401-6.402M6.75 21A3.75 3.75 0 0 1 3 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 0 0 3.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88c.438-.439 1.15-.439 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75v-.008Z\"\n })\n], -1)\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \" Competition \", -1)\nconst _hoisted_11 = [\n _hoisted_9,\n _hoisted_10\n]\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\",\n \"stroke-width\": \"1.5\",\n stroke: \"currentColor\",\n class: \"w-5 h-5\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n d: \"M16.5 18.75h-9m9 0a3 3 0 013 3h-15a3 3 0 013-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 01-.982-3.172M9.497 14.25a7.454 7.454 0 00.981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 007.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 002.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 012.916.52 6.003 6.003 0 01-5.395 4.972m0 0a6.726 6.726 0 01-2.749 1.35m0 0a6.772 6.772 0 01-3.044 0\"\n })\n], -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \" OGAE \", -1)\nconst _hoisted_14 = [\n _hoisted_12,\n _hoisted_13\n]\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M8 14v3m4-3v3m4-3v3M3 21h18M3 10h18M3 7l9-4 9 4M4 10h16v11H4V10z\"\n })\n], -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \"History \", -1)\nconst _hoisted_17 = [\n _hoisted_15,\n _hoisted_16\n]\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-6 h-6\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01\"\n })\n], -1)\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \" Rules \", -1)\nconst _hoisted_20 = [\n _hoisted_18,\n _hoisted_19\n]\nconst _hoisted_21 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.656 7.343A7.975 7.975 0 0120 13a7.975 7.975 0 01-2.343 5.657z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M9.879 16.121A3 3 0 1012.015 11L11 14H9c0 .768.293 1.536.879 2.121z\"\n })\n], -1)\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \"Admin Dashboard\", -1)\nconst _hoisted_23 = [\n _hoisted_21,\n _hoisted_22\n]\nconst _hoisted_24 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1\"\n })\n], -1)\nconst _hoisted_25 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \"Logout\", -1)\nconst _hoisted_26 = [\n _hoisted_24,\n _hoisted_25\n]\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M8 9a3 3 0 100-6 3 3 0 000 6zM8 11a6 6 0 016 6H2a6 6 0 016-6zM16 7a1 1 0 10-2 0v1h-1a1 1 0 100 2h1v1a1 1 0 102 0v-1h1a1 1 0 100-2h-1V7z\" })\n], -1)\nconst _hoisted_28 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \"Sign Up\", -1)\nconst _hoisted_29 = [\n _hoisted_27,\n _hoisted_28\n]\nconst _hoisted_30 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M3 3a1 1 0 011 1v12a1 1 0 11-2 0V4a1 1 0 011-1zm7.707 3.293a1 1 0 010 1.414L9.414 9H17a1 1 0 110 2H9.414l1.293 1.293a1 1 0 01-1.414 1.414l-3-3a1 1 0 010-1.414l3-3a1 1 0 011.414 0z\",\n \"clip-rule\": \"evenodd\"\n })\n], -1)\nconst _hoisted_31 = /*#__PURE__*/_createElementVNode(\"a\", { class: \"pl-2\" }, \"Login\", -1)\nconst _hoisted_32 = [\n _hoisted_30,\n _hoisted_31\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NominateButton = _resolveComponent(\"NominateButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_NominateButton)\n ]),\n (_ctx.isLoggedIn)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([_ctx.$route.path == '/profile' ? 'text-white' : 'text-gray-400', \"flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goToProfile && _ctx.goToProfile(...args)))\n }, [\n _hoisted_3,\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.user.userName), 1)\n ], 2))\n : _createCommentVNode(\"\", true),\n (_ctx.isLoggedIn)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([[\r\n _ctx.$route.path == _ctx.usersCountryPath ? 'text-white ' : 'text-gray-400 ',\r\n _ctx.user.country.name.length > 24 ? 'text-xs lg:text-sm' : '',\r\n ], \"flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.goToUsersCountry && _ctx.goToUsersCountry(...args)))\n }, [\n _createElementVNode(\"img\", {\n class: _normalizeClass([_ctx.$route.path == _ctx.usersCountryPath ? ' border-opacity-100' : 'border-opacity-20 border-1', \"object-cover w-5 h-4 border-white rounded-sm border-1\"]),\n src: 'https://flagcdn.com/w160/' + _ctx.user.country.icon.toLowerCase() + '.png'\n }, null, 10, _hoisted_5),\n _createElementVNode(\"p\", {\n class: _normalizeClass([_ctx.$route.path == _ctx.usersCountryPath ? 'text-white' : 'text-gray-400', \"pl-2 transition-colors duration-200 hover:text-white\"])\n }, _toDisplayString(_ctx.user.country.name), 3)\n ], 2))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([_ctx.$route.path == '/' ? 'text-white' : 'text-gray-400', \"flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.goHome && _ctx.goHome(...args)))\n }, _hoisted_8, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([_ctx.$route.path.includes('competition') ? 'text-white' : 'text-gray-400', \"flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.goToCompetition && _ctx.goToCompetition(...args)))\n }, _hoisted_11, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([_ctx.$route.path == '/ogae/countries' ? 'text-white' : 'text-gray-400', \"cursor-pointer flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.goToOgae && _ctx.goToOgae(...args)))\n }, _hoisted_14, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([_ctx.$route.path.includes('/history') ? 'text-white' : 'text-gray-400', \"flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.goToHistory && _ctx.goToHistory(...args)))\n }, _hoisted_17, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([_ctx.$route.path == '/rules' ? 'text-white' : 'text-gray-400', \"flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.goToRules && _ctx.goToRules(...args)))\n }, _hoisted_20, 2),\n (_ctx.isUserAdmin)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: _normalizeClass([_ctx.$route.path == '/admin' ? 'text-white' : 'text-gray-400', \"flex items-center px-6 py-2 mb-2 font-medium transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\"]),\n onClick: _cache[7] || (_cache[7] = \n//@ts-ignore\n(...args) => (_ctx.goToAdmin && _ctx.goToAdmin(...args)))\n }, _hoisted_23, 2))\n : _createCommentVNode(\"\", true),\n (_ctx.isLoggedIn)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 3,\n class: \"flex items-center px-6 py-2 mb-2 font-medium text-gray-400 transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\",\n onClick: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.logOut && _ctx.logOut(...args)))\n }, _hoisted_26))\n : _createCommentVNode(\"\", true),\n (!_ctx.isLoggedIn)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 4,\n class: \"flex items-center px-6 py-2 mb-2 font-medium text-gray-400 transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\",\n onClick: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (_ctx.goToSignUp && _ctx.goToSignUp(...args)))\n }, _hoisted_29))\n : _createCommentVNode(\"\", true),\n (!_ctx.isLoggedIn)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 5,\n class: \"flex items-center px-6 py-2 mb-2 font-medium text-gray-400 transition-colors duration-200 rounded whitespace-nowrap lg:py-0 lg:px-0 hover:text-white\",\n onClick: _cache[10] || (_cache[10] = \n//@ts-ignore\n(...args) => (_ctx.goToLogin && _ctx.goToLogin(...args)))\n }, _hoisted_32))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { defineComponent, computed } from 'vue';\r\nimport { useStore } from '../../store';\r\nimport { useRouter } from 'vue-router';\r\nimport { ActionTypes } from '../../store/actions';\r\nimport { PhaseType } from '@/types/types';\r\nimport NominateButton from '../NominateButton.vue';\r\n\r\nexport default defineComponent({\r\n components: { NominateButton },\r\n\r\n setup() {\r\n const store = useStore();\r\n const router = useRouter();\r\n\r\n const isLoggedIn = computed(() => store.state.isLoggedIn);\r\n const user = computed(() => store.state.user);\r\n const isUserAdmin = user.value.isAdmin;\r\n const isGlobalPhase = computed(() => store.state.currentPhase.type === PhaseType.Global);\r\n\r\n const usersCountryPath = computed(() => {\r\n if (user.value != undefined && user.value != null) return '/country/' + user.value.country.icon;\r\n else return '/country/US';\r\n });\r\n\r\n function logOut() {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n store.dispatch(ActionTypes.Logout);\r\n router.push('/');\r\n }\r\n function goHome() {\r\n router.push('/');\r\n store.dispatch(ActionTypes.HideSidebar);\r\n }\r\n function goToProfile() {\r\n router.push('/profile');\r\n store.dispatch(ActionTypes.HideSidebar);\r\n }\r\n function goToUsersCountry() {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/country/' + user.value.country.icon);\r\n }\r\n function goToSignUp() {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/signup');\r\n }\r\n function goToLogin() {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/login');\r\n }\r\n const goToRules = () => {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/rules');\r\n };\r\n const goToAdmin = () => {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/admin');\r\n };\r\n const goToHistory = () => {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/history');\r\n };\r\n\r\n const goToOgae = () => {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/ogae/countries');\r\n };\r\n\r\n const goToCompetition = () => {\r\n store.dispatch(ActionTypes.HideSidebar);\r\n router.push('/competition');\r\n };\r\n return {\r\n isLoggedIn,\r\n isUserAdmin,\r\n user,\r\n isGlobalPhase,\r\n logOut,\r\n goToLogin,\r\n goToSignUp,\r\n goHome,\r\n goToProfile,\r\n goToRules,\r\n goToAdmin,\r\n goToCompetition,\r\n goToHistory,\r\n goToUsersCountry,\r\n goToOgae,\r\n usersCountryPath,\r\n };\r\n },\r\n});\r\n","import { render } from \"./SidebarContent.vue?vue&type=template&id=7736b20c&ts=true\"\nimport script from \"./SidebarContent.vue?vue&type=script&lang=ts\"\nexport * from \"./SidebarContent.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, computed } from 'vue';\nimport { useStore } from '../../store';\nimport { ActionTypes } from '../../store/actions';\nimport SidebarContent from '../layout/SidebarContent.vue';\nimport { TransitionRoot, TransitionChild, Dialog, DialogOverlay } from '@headlessui/vue';\n\nexport default defineComponent({\n name: 'Sidebar',\n components: {\n TransitionRoot,\n TransitionChild,\n Dialog,\n DialogOverlay,\n SidebarContent,\n },\n\n setup() {\n const store = useStore();\n\n const isOpen = computed(() => store.state.showSidebar);\n function closeSidebar() {\n store.dispatch(ActionTypes.HideSidebar);\n }\n return {\n isOpen,\n closeSidebar,\n };\n },\n});\n","import { render } from \"./Sidebar.vue?vue&type=template&id=8e039eb8&ts=true\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=ts\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createVNode as _createVNode, toDisplayString as _toDisplayString, withKeys as _withKeys, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"text-gray-900 font-openSans\" }\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = { class: \"pt-5 pb-3 m-1\" }\nconst _hoisted_4 = { class: \"flex flex-row text-sm md:text-base xl:text-lg\" }\nconst _hoisted_5 = { class: \"flex items-center justify-center w-2/12\" }\nconst _hoisted_6 = {\n key: 2,\n class: \"mt-2 -mb-5 text-xs font-semibold text-center text-nominee-danger lg:-mb-7 sm:text-sm\"\n}\nconst _hoisted_7 = { class: \"flex flex-col m-auto mt-1 text-xs text-center sm:flex-row\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"pr-1 text-gray-900\" }, \"I remembered my password. \", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NTitle = _resolveComponent(\"NTitle\")!\n const _component_NSwitch = _resolveComponent(\"NSwitch\")!\n const _component_NFormInput = _resolveComponent(\"NFormInput\")!\n const _component_NFormButton = _resolveComponent(\"NFormButton\")!\n const _component_FormSuccsess = _resolveComponent(\"FormSuccsess\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_ctx.requestSuccsess)\n ? (_openBlock(), _createBlock(_component_NTitle, {\n key: 0,\n class: \"mb-2 text-2xl sm:mb-6 sm:text-3xl\",\n tag: \"h2\",\n content: \"Reset password\"\n }))\n : _createCommentVNode(\"\", true),\n (!_ctx.requestSuccsess)\n ? (_openBlock(), _createElementBlock(\"hr\", _hoisted_2))\n : _createCommentVNode(\"\", true),\n (!_ctx.requestSuccsess)\n ? (_openBlock(), _createElementBlock(\"form\", {\n key: 2,\n class: \"flex flex-col px-3 pt-4 pb-3 sm:pb-4 sm:pt-4 md:px-3 md:pb-6 lg:px-3 md:pt-5\",\n onKeyup: _cache[6] || (_cache[6] = _withKeys(\n//@ts-ignore\n(...args) => (_ctx.submitForm && _ctx.submitForm(...args)), [\"enter\"])),\n onSubmit: _cache[7] || (_cache[7] = _withModifiers(() => {}, [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([{\n 'text-gray-900 font-semibold border-gray-900': !_ctx.useUsername,\n }, \"flex items-center justify-center w-5/12 px-1 py-1 rounded-md cursor-pointer select-none border-1 text-md lg:text-base\"]),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.emailButtonClick && _ctx.emailButtonClick(...args)))\n }, \" Email \", 2),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_NSwitch, {\n modelValue: _ctx.useUsername,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.useUsername) = $event)),\n onClick: _ctx.resetAllErrors\n }, null, 8, [\"modelValue\", \"onClick\"])\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([{\n 'text-gray-900 font-semibold border-gray-900': _ctx.useUsername,\n }, \"flex items-center justify-center w-5/12 px-1 py-1 border-gray-400 rounded-md cursor-pointer select-none border-1 text-md lg:text-base\"]),\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.usernameButtonClick && _ctx.usernameButtonClick(...args)))\n }, \" Username \", 2)\n ])\n ]),\n (_ctx.useUsername)\n ? (_openBlock(), _createBlock(_component_NFormInput, {\n key: 0,\n modelValue: _ctx.usernameInput,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.usernameInput) = $event)),\n class: \"\",\n type: \"text\",\n error: _ctx.usernameStatus.message,\n placeholder: \"Username\",\n onInputChanged: _ctx.resetUsernameStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]))\n : _createCommentVNode(\"\", true),\n (!_ctx.useUsername)\n ? (_openBlock(), _createBlock(_component_NFormInput, {\n key: 1,\n modelValue: _ctx.emailInput,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.emailInput) = $event)),\n class: \"\",\n type: \"text\",\n error: _ctx.emailStatus.message,\n placeholder: \"example@mail.com\",\n onInputChanged: _ctx.resetEmailStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.resetPasswordResponseError.detail != '')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_6, _toDisplayString(_ctx.resetPasswordResponseError.detail), 1))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_NFormButton, {\n disabled: (!_ctx.usernameStatus.valid && !_ctx.emailStatus.valid) || _ctx.isProcessingRequest,\n type: \"submit\",\n class: \"w-full h-10 mt-8 lg:mt-10 sm:h-12\",\n name: \"Reset Password\",\n loading: _ctx.isProcessingRequest,\n onClick: _ctx.submitForm\n }, null, 8, [\"disabled\", \"loading\", \"onClick\"]),\n _createElementVNode(\"p\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"span\", {\n class: \"font-bold text-black cursor-pointer\",\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.goToLogin && _ctx.goToLogin(...args)))\n }, \"Take me to Login!\")\n ])\n ], 32))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_FormSuccsess, {\n \"button-name\": \"Ok\",\n title: \"Reset email sent!\",\n message: \"Check your inbox and follow instructions to reset your password.\",\n \"show-succsess\": _ctx.requestSuccsess,\n onButtonClick: _ctx.closeModal\n }, null, 8, [\"show-succsess\", \"onButtonClick\"])\n ]))\n}","\nimport { defineComponent, ref, computed } from 'vue';\nimport { Api, ApiStatus } from '../../utils/api/apiService';\nimport FormSuccsess from './FormSuccsess.vue';\nimport { ActionTypes } from '../../store/actions';\nimport { useStore } from '../../store';\nimport { validate, length, username, email } from '../../utils/validation/validators';\nimport { ErrorResponse } from '../../utils/api/types';\nimport { Status } from '../../utils/validation/types';\nimport NFormInput from '../ui/NFormInput.vue';\nimport NFormButton from '../ui/NFormButton.vue';\nimport NTitle from '../ui/NTitle.vue';\nimport NSwitch from '../ui/NSwitch.vue';\n\nexport default defineComponent({\n name: 'ResetPassword',\n components: { NFormInput, NFormButton, NTitle, NSwitch, FormSuccsess },\n setup() {\n const store = useStore();\n\n const usernameInput = ref('');\n const emailInput = ref('');\n\n const submitButtonClicked = ref(false);\n const isProcessingRequest = ref(false);\n const requestSuccsess = ref(false);\n const useUsername = ref(false);\n\n const resetPasswordResponseError = ref({ detail: '' });\n\n const usernameStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n else return validate(usernameInput.value, [length({ min: 1, max: 20 }), username()]);\n });\n const emailStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n else return validate(emailInput.value, [length({ min: 1, max: 200 }), email()]);\n });\n\n function resetUsernameStatus() {\n if (resetPasswordResponseError.value.detail) {\n resetPasswordResponseError.value.detail = '';\n usernameStatus.value.message = '';\n usernameStatus.value.valid = true;\n }\n }\n function resetEmailStatus() {\n if (resetPasswordResponseError.value.detail) {\n resetPasswordResponseError.value.detail = '';\n emailStatus.value.message = '';\n emailStatus.value.valid = true;\n }\n }\n function resetAllErrors() {\n resetPasswordResponseError.value.detail = '';\n usernameStatus.value.message = '';\n emailStatus.value.message = '';\n usernameStatus.value.valid = true;\n emailStatus.value.valid = true;\n }\n function emailButtonClick() {\n useUsername.value = false;\n resetAllErrors();\n }\n function usernameButtonClick() {\n useUsername.value = true;\n resetAllErrors();\n }\n\n function closeModal() {\n store.dispatch(ActionTypes.HideModal);\n }\n\n function goToLogin() {\n store.dispatch(ActionTypes.HideModal);\n setTimeout(() => store.dispatch(ActionTypes.ShowLogInModal), 300);\n }\n\n async function submitForm() {\n isProcessingRequest.value = true;\n setTimeout(\n async () => {\n if (submitButtonClicked.value === false) submitButtonClicked.value = true;\n if (useUsername.value && usernameStatus.value.valid) {\n var resUsername = await Api.ResetPasswordWithUsername(usernameInput.value);\n if (resUsername.status == ApiStatus.OK) {\n requestSuccsess.value = true;\n } else if (\n resUsername.status == ApiStatus.CaughtError &&\n resUsername.data &&\n typeof resUsername.data === typeof resetPasswordResponseError.value\n ) {\n resetPasswordResponseError.value = resUsername.data;\n usernameStatus.value.message = ' ';\n usernameStatus.value.valid = false;\n } else {\n alert('Something went wrong. :(');\n }\n } else if (!useUsername.value && emailStatus.value.valid) {\n var resEmail = await Api.ResetPasswordWithEmail(emailInput.value);\n if (resEmail.status == ApiStatus.OK) {\n requestSuccsess.value = true;\n } else if (\n resEmail.status == ApiStatus.CaughtError &&\n resEmail.data &&\n typeof resEmail.data === typeof resetPasswordResponseError.value\n ) {\n resetPasswordResponseError.value = resEmail.data;\n emailStatus.value.message = ' ';\n emailStatus.value.valid = false;\n } else {\n alert('Something went wrong. :(');\n }\n }\n isProcessingRequest.value = false;\n },\n submitButtonClicked.value ? 3000 : 0\n );\n }\n\n return {\n submitForm,\n resetAllErrors,\n closeModal,\n goToLogin,\n requestSuccsess,\n\n emailButtonClick,\n usernameButtonClick,\n submitButtonClicked,\n isProcessingRequest,\n useUsername,\n\n resetPasswordResponseError,\n usernameInput,\n emailInput,\n usernameStatus,\n emailStatus,\n resetUsernameStatus,\n resetEmailStatus,\n };\n },\n});\n","import { render } from \"./ResetPassword.vue?vue&type=template&id=0f20c349&ts=true\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { defineComponent, computed } from 'vue';\nimport { useStore } from './store';\nimport ModalBase from './components/ModalBase.vue';\nimport Sidebar from './components/layout/Sidebar.vue';\nimport SignUpForm from './components/forms/SignUpForm.vue';\nimport LoginForm from './components/forms/LoginForm.vue';\nimport ResetPassword from './components/forms/ResetPassword.vue';\nimport { ActionTypes } from './store/actions';\n\nexport default defineComponent({\n name: 'App',\n\n components: {\n ModalBase,\n SignUpForm,\n LoginForm,\n ResetPassword,\n Sidebar,\n },\n\n setup() {\n const store = useStore();\n\n const showSignUpModal = computed(() => store.state.showSignUpModal);\n const showLogInModal = computed(() => store.state.showLogInModal);\n const showResetPasswordModal = computed(() => store.state.showResetPasswordModal);\n\n store.dispatch(ActionTypes.GetCurrentPhase);\n store.dispatch(ActionTypes.CheckIfLoggedIn);\n\n return {\n showSignUpModal,\n showLogInModal,\n showResetPasswordModal,\n };\n },\n});\n","import { render } from \"./App.vue?vue&type=template&id=71ad1768&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=71ad1768&lang=css\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { PhaseType } from '@/types/types';\r\nimport { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';\r\nimport { useStore } from '../store';\r\n\r\n// route level code-splitting\r\n// this generates a separate chunk (about.[hash].js) for this route\r\n// which is lazy-loaded when the route is visited.\r\n// When using a bundler like webpack, this will automatically benefit from code splitting\r\n// When using Babel, you will need to add the syntax-dynamic-import plugin so that Babel can properly parse the syntax.\r\n// (https://next.router.vuejs.org/guide/advanced/lazy-loading.html)\r\n\r\nconst routes: Array = [\r\n {\r\n path: '/notice/:noticeType',\r\n name: 'Notice',\r\n component: () => import(/* webpackChunkName: \"Notice\" */ '../pages/Notice.vue'),\r\n props: true,\r\n },\r\n {\r\n path: '/',\r\n name: 'LandingPage',\r\n component: () => import(/* webpackChunkName: \"LandingPage\" */ '../pages/LandingPage.vue'),\r\n },\r\n {\r\n path: '/',\r\n name: 'Base',\r\n component: () => import(/* webpackChunkName: \"Base\" */ '../pages/Base.vue'),\r\n children: [\r\n {\r\n path: '/competition',\r\n name: 'CompetitionBase',\r\n component: () => import(/* webpackChunkName: \"CompetitionBase\" */ '../pages/competition/CompetitionBase.vue'),\r\n children: [\r\n {\r\n path: 'nominations',\r\n name: 'Nominations',\r\n component: () =>\r\n import(/* webpackChunkName: \"Nominations\" */ '../pages/competition/components/Nominations.vue'),\r\n },\r\n {\r\n path: 'nationals',\r\n name: 'Nationals',\r\n component: () =>\r\n import(/* webpackChunkName: \"Nationals\" */ '../pages/competition/components/Nationals.vue'),\r\n },\r\n {\r\n path: 'finals',\r\n name: 'Finals',\r\n component: () => import(/* webpackChunkName: \"Finals\" */ '../pages/competition/components/Finals.vue'),\r\n },\r\n ],\r\n },\r\n {\r\n path: 'country/:icon',\r\n name: 'Country',\r\n component: () => import(/* webpackChunkName: \"Country\" */ '../pages/Country.vue'),\r\n props: true,\r\n },\r\n {\r\n path: 'nominate',\r\n name: 'NominateSong',\r\n component: () => import(/* webpackChunkName: \"NominateSong\" */ '../pages/NominateSong.vue'),\r\n meta: { requiresAuth: true, onlyNationalPhase: true, checkIfUserAlreadyNominatedSong: true },\r\n },\r\n {\r\n path: 'rules',\r\n name: 'Rules',\r\n component: () => import(/* webpackChunkName: \"Rules\" */ '../pages/rules/Rules.vue'),\r\n },\r\n {\r\n path: 'history',\r\n name: 'HistoryBase',\r\n component: () => import(/* webpackChunkName: \"HistoryBase\" */ '../pages/history/HistoryBase.vue'),\r\n children: [\r\n {\r\n path: '',\r\n name: 'HistoryCycles',\r\n component: () => import(/* webpackChunkName: \"HistoryCycles\" */ '../pages/history/HistoryCycles.vue'),\r\n },\r\n {\r\n path: 'cycle/:cycleId',\r\n name: 'HistoryCycle',\r\n component: () => import(/* webpackChunkName: \"HistoryCycle\" */ '../pages/history/HistoryCycle.vue'),\r\n props: true,\r\n },\r\n {\r\n path: 'countries',\r\n name: 'HistoryCountries',\r\n component: () => import(/* webpackChunkName: \"HistoryCountries\" */ '../pages/history/HistoryCountries.vue'),\r\n props: true,\r\n },\r\n {\r\n path: 'country/:countryId',\r\n name: 'HistoryCountry',\r\n component: () => import(/* webpackChunkName: \"HistoryCountry\" */ '../pages/history/HistoryCountry.vue'),\r\n props: true,\r\n },\r\n {\r\n path: 'national/country/:countryId?/cycle/:cycleId?',\r\n name: 'HistorySearch',\r\n component: () => import(/* webpackChunkName: \"HistorySearch\" */ '../pages/history/HistorySearch.vue'),\r\n alias: 'custom-search',\r\n props: true,\r\n },\r\n ],\r\n },\r\n {\r\n path: 'ogae',\r\n name: 'OgaeBase',\r\n component: () => import(/* webpackChunkName: \"OgaeBase\" */ '../pages/ogae/OgaeBase.vue'),\r\n children: [\r\n {\r\n path: 'countries',\r\n name: 'OgaeCountries',\r\n component: () => import(/* webpackChunkName: \"OgaeCountries\" */ '../pages/ogae/OgaeCountries.vue'),\r\n },\r\n {\r\n path: 'organization/:organizationId',\r\n name: 'OgaeCountry',\r\n component: () => import(/* webpackChunkName: \"OgaeCountry\" */ '../pages/ogae/OgaeCountry.vue'),\r\n props: true,\r\n },\r\n ],\r\n },\r\n {\r\n path: '/signup',\r\n name: 'SignUp',\r\n\r\n component: () => import(/* webpackChunkName: \"signUp\" */ '../pages/SignUp.vue'),\r\n },\r\n {\r\n path: '/login',\r\n name: 'Login',\r\n\r\n component: () => import(/* webpackChunkName: \"Login\" */ '../pages/Login.vue'),\r\n },\r\n {\r\n path: '/SetNewPassword/:username/:token(.*)',\r\n name: 'SetNewPassword',\r\n component: () => import(/* webpackChunkName: \"SetNewPassword\" */ '../pages/SetNewPassword.vue'),\r\n props: true,\r\n },\r\n {\r\n path: 'profile',\r\n name: 'Profile',\r\n component: () => import(/* webpackChunkName: \"Profile\" */ '../pages/profile/Profile.vue'),\r\n meta: { requiresAuth: true },\r\n },\r\n {\r\n path: 'admin',\r\n name: 'Admin',\r\n component: () => import(/* webpackChunkName: \"SetNewPassword\" */ '../pages/admin/Admin.vue'),\r\n children: [\r\n {\r\n path: 'votes',\r\n name: 'Votes',\r\n component: () => import(/* webpackChunkName: \"AdminVotes\" */ '../pages/admin/AdminVotes.vue'),\r\n children: [\r\n {\r\n path: 'search/country/:countryId?/edition/:cycleId?',\r\n name: 'AdminVotesUsersSearch',\r\n props: true,\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"AdminVotesUsersSearch\" */ '../pages/admin/votes/AdminVotesUsersSearch.vue'\r\n ),\r\n },\r\n {\r\n path: 'search/users/:userName?',\r\n name: 'AdminVotesUsersByUsername',\r\n props: true,\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"AdminVotesUsersByUsername\" */ '../pages/admin/votes/AdminVotesUsersByUsername.vue'\r\n ),\r\n },\r\n {\r\n path: 'search/edition/:cycleId?',\r\n name: 'AdminVotesUsersByCountry',\r\n props: true,\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"AdminVotesUsersByCountry\" */ '../pages/admin/votes/AdminVotesUsersByCountry.vue'\r\n ),\r\n },\r\n {\r\n path: 'votes/edit/user/:userName/edition/:cycleId?',\r\n name: 'AdminUserVotesEdit',\r\n component: () =>\r\n import(/* webpackChunkName: \"AdminUserVotesEdit\" */ '../pages/admin/votes/AdminUserVotesEdit.vue'),\r\n props: true,\r\n },\r\n ],\r\n },\r\n\r\n {\r\n path: 'settings',\r\n name: 'AdminSettings',\r\n component: () => import(/* webpackChunkName: \"AdminSettings\" */ '../pages/admin/AdminSettings.vue'),\r\n },\r\n ],\r\n meta: { requiresAdminRole: true },\r\n },\r\n ],\r\n },\r\n // {\r\n // path: '/:pathMatch(.*)*',\r\n // redirect: '/Notice/404',\r\n // },\r\n];\r\n\r\nconst router = createRouter({\r\n // history: createWebHashHistory(),\r\n history: createWebHistory(),\r\n routes,\r\n});\r\n\r\nconst store = useStore();\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.meta.requiresAuth) {\r\n if (!store.state.isLoggedIn)\r\n return next({\r\n name: 'Login',\r\n });\r\n }\r\n if (to.meta.onlyNationalPhase) {\r\n if (store.state.currentPhase.type == PhaseType.Global)\r\n return next({\r\n name: 'LandingPage',\r\n });\r\n }\r\n if (to.meta.onlyGlobalPhase) {\r\n if (store.state.currentPhase.type == PhaseType.National)\r\n return next({\r\n name: 'LandingPage',\r\n });\r\n }\r\n if (to.meta.checkIfUserAlreadyNominatedSong) {\r\n if (store.state.user.nominatedSong)\r\n return next({\r\n name: 'LandingPage',\r\n });\r\n }\r\n if (to.meta.requiresAdminRole) {\r\n if (!store.state.user.isAdmin)\r\n return next({\r\n name: 'LandingPage',\r\n });\r\n }\r\n next();\r\n});\r\n\r\nexport default router;\r\n","import { createApp } from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport { store } from './store';\nimport { VueQueryPlugin } from 'vue-query';\nimport './styles/main.css';\nimport ToastPlugin from 'vue-toast-notification';\nimport 'vue-toast-notification/dist/theme-bootstrap.css';\n\ncreateApp(App)\n .use(store)\n .use(router)\n .use(VueQueryPlugin)\n .use(ToastPlugin, {\n position: 'top-right',\n })\n .mount('#app');\n","import { ActionContext, ActionTree } from 'vuex';\nimport { Mutations, MutationType } from './mutations';\nimport { State, Country } from '../types/types';\nimport { Api, ApiStatus } from '../utils/api/apiService';\nimport { LocalStorage } from '../utils/localStorageService';\nimport { SessionStorage } from '../utils/sessionStorageService';\nimport { store } from '.';\n\nexport enum ActionTypes {\n HideModal = 'HIDE_MODAL',\n HideSidebar = 'HIDE_SIDEBAR',\n ShowSidebar = 'SHOW_SIDEBAR',\n ShowSignUpModal = 'SHOW_SIGN_UP_MODAL',\n ShowLogInModal = 'SHOW_LOG_IN_MODAL',\n ShowResetPasswordModal = 'SHOW_RESET_PASSWORD_MODAL',\n\n Login = 'LOGIN',\n Logout = 'LOGOUT',\n CheckIfLoggedIn = 'CHECK_IF_LOGGED_IN',\n\n GetCurrentPhase = 'GET_CURRENT_PHASE',\n GetAllCountries = 'GET_ALL_COUNTRIES',\n GetActiveCountries = 'GET_ACTIVE_COUNTRIES',\n GetAccessToken = 'GET_ACCESS_TOKEN',\n RefreshLoggedInUserData = 'REFRESH_LOGGED_IN_USER_DATA',\n}\n\ntype ActionAugments = Omit, 'commit'> & {\n commit(key: K, payload: Parameters[1]): ReturnType;\n};\n\nexport type Actions = {\n [ActionTypes.HideModal](context: ActionAugments): void;\n [ActionTypes.HideSidebar](context: ActionAugments): void;\n [ActionTypes.ShowSidebar](context: ActionAugments): void;\n [ActionTypes.ShowSignUpModal](context: ActionAugments): void;\n [ActionTypes.ShowLogInModal](context: ActionAugments): void;\n [ActionTypes.ShowResetPasswordModal](context: ActionAugments): void;\n\n [ActionTypes.Login](\n context: ActionAugments,\n payload: { username: string; password: string; stayLoggedIn: boolean }\n ): Promise;\n [ActionTypes.Logout](context: ActionAugments): void;\n [ActionTypes.CheckIfLoggedIn](context: ActionAugments): Promise;\n\n [ActionTypes.GetCurrentPhase](context: ActionAugments): void;\n [ActionTypes.GetAllCountries](context: ActionAugments): Promise;\n [ActionTypes.GetActiveCountries](context: ActionAugments): Promise;\n [ActionTypes.GetAccessToken](context: ActionAugments): string | undefined;\n [ActionTypes.RefreshLoggedInUserData](context: ActionAugments): Promise;\n};\n\nexport const actions: ActionTree & Actions = {\n //_____________________________________________________________________ HideModal\n [ActionTypes.HideModal]({ commit }) {\n commit(MutationType.SetShowModal, false);\n },\n //_____________________________________________________________________ HideSidebar\n [ActionTypes.HideSidebar]({ commit }) {\n commit(MutationType.SetShowSidebar, false);\n },\n //_____________________________________________________________________ ShowSidebar\n [ActionTypes.ShowSidebar]({ commit }) {\n commit(MutationType.SetShowSidebar, true);\n },\n //_____________________________________________________________________ ShowSignUpModal\n async [ActionTypes.ShowSignUpModal]({ commit }) {\n commit(MutationType.SetLogInModal, false);\n commit(MutationType.SetResetPasswordModal, false);\n commit(MutationType.SetSignUpModal, true);\n commit(MutationType.SetShowModal, true);\n },\n //_____________________________________________________________________ ShowLogInModal\n [ActionTypes.ShowLogInModal]({ commit }) {\n commit(MutationType.SetSignUpModal, false);\n commit(MutationType.SetResetPasswordModal, false);\n commit(MutationType.SetLogInModal, true);\n commit(MutationType.SetShowModal, true);\n },\n //_____________________________________________________________________ ShowResetPasswordModal\n [ActionTypes.ShowResetPasswordModal]({ commit }) {\n commit(MutationType.SetShowSidebar, false);\n commit(MutationType.SetSignUpModal, false);\n commit(MutationType.SetLogInModal, false);\n commit(MutationType.SetResetPasswordModal, true);\n commit(MutationType.SetShowModal, true);\n },\n\n //_____________________________________________________________________ Login\n async [ActionTypes.Login]({ commit }, { username, password, stayLoggedIn }) {\n const result = await Api.Login(username, password);\n\n if (result.status == ApiStatus.OK) {\n if (stayLoggedIn == true) {\n LocalStorage.SetAccessToken(result.data.accessToken);\n } else {\n SessionStorage.SetAccessToken(result.data.accessToken);\n }\n\n commit(MutationType.SetUser, result.data.user);\n commit(MutationType.SetAccessToken, result.data.accessToken);\n commit(MutationType.SetIsLoggedIn, true);\n\n return true;\n } else {\n return false;\n }\n },\n //_____________________________________________________________________ Logout\n [ActionTypes.Logout]({ commit }) {\n commit(MutationType.DeleteAccesToken, {});\n commit(MutationType.DeleteUser, {});\n commit(MutationType.SetIsLoggedIn, false);\n\n SessionStorage.DeleteAccessToken();\n SessionStorage.DeleteLoggedInUser();\n\n LocalStorage.DeleteAccessToken();\n LocalStorage.DeleteLoggedInUser();\n },\n //_____________________________________________________________________ CheckIfLoggedIn // BUMP REDUNDANT CODE ALL OVER THE PLACE IN THIS ONE\n async [ActionTypes.CheckIfLoggedIn]({ commit }) {\n const userData = store.state.user;\n if (!userData.userName) {\n const result = await Api.GetLoggedInUserData();\n if ('user' in result.data) {\n // BUMP is this a good solution to union problems?\n commit(MutationType.SetUser, result.data.user);\n }\n }\n\n const accessTokenLocalStorage = LocalStorage.GetAccessToken();\n if (accessTokenLocalStorage) {\n commit(MutationType.SetAccessToken, accessTokenLocalStorage);\n commit(MutationType.SetIsLoggedIn, true);\n return true;\n }\n\n const accessTokenSessionStorage = SessionStorage.GetAccessToken();\n if (accessTokenSessionStorage) {\n commit(MutationType.SetAccessToken, accessTokenSessionStorage);\n commit(MutationType.SetIsLoggedIn, true);\n return true;\n }\n\n commit(MutationType.DeleteAccesToken, null);\n commit(MutationType.DeleteUser, null);\n commit(MutationType.SetIsLoggedIn, false);\n\n if (accessTokenLocalStorage) LocalStorage.DeleteAccessToken();\n if (accessTokenSessionStorage) SessionStorage.DeleteAccessToken();\n return false;\n },\n //_____________________________________________________________________ GetCurrentPhase\n async [ActionTypes.GetCurrentPhase]({ commit }) {\n const currentPhaseLocalStorage = LocalStorage.GetCurrentPhase();\n if (currentPhaseLocalStorage) commit(MutationType.SetCurrentPhase, currentPhaseLocalStorage);\n\n const result = await Api.GetCurrentPhase();\n if (result.status == ApiStatus.OK) {\n LocalStorage.SetCurrentPhase(result.data);\n commit(MutationType.SetCurrentPhase, result.data);\n } else return;\n },\n //_____________________________________________________________________ GetAllCountries\n async [ActionTypes.GetAllCountries]({ commit }) {\n const countriesFromStore = store.state.allCountries;\n if (!Array.isArray(countriesFromStore) || !countriesFromStore?.length) {\n const countriesFromLocalStorage = LocalStorage.GetCountryList();\n if (!countriesFromLocalStorage.length) {\n const result = await Api.GetAllCountries();\n commit(MutationType.SetAllCountries, result.data.countryList);\n LocalStorage.SetCountryList(result.data.countryList);\n\n return result.data.countryList;\n } else {\n commit(MutationType.SetAllCountries, countriesFromLocalStorage);\n\n return countriesFromLocalStorage;\n }\n } else {\n return countriesFromStore;\n }\n },\n //_____________________________________________________________________ GetActiveCountries\n async [ActionTypes.GetActiveCountries]() {\n const result = await Api.GetAllActiveCountries();\n\n if (result.status !== ApiStatus.OK) return [];\n return result.data.countryList;\n },\n //_____________________________________________________________________ GetAccessToken\n [ActionTypes.GetAccessToken]({ commit }) {\n const tokenFromStore = store.state.accessToken;\n if (tokenFromStore) return tokenFromStore;\n else if (LocalStorage.GetAccessToken()) {\n const tokenFromLocalStorage = LocalStorage.GetAccessToken();\n if (tokenFromLocalStorage) {\n commit(MutationType.SetAccessToken, tokenFromLocalStorage);\n return tokenFromLocalStorage;\n }\n } else {\n const tokenFromSessionStorage = SessionStorage.GetAccessToken();\n if (tokenFromSessionStorage) {\n commit(MutationType.SetAccessToken, tokenFromSessionStorage);\n return tokenFromSessionStorage;\n }\n }\n },\n //_____________________________________________________________________ RefreshLoggedInUserData\n async [ActionTypes.RefreshLoggedInUserData]({ commit }) {\n const result = await Api.GetLoggedInUserData();\n if ('user' in result.data) {\n // BUMP is this a good solution to union problems?\n commit(MutationType.SetUser, result.data.user);\n }\n },\n};\n","import { State, User, Phase, Country } from '../types/types';\n\nexport const state: State = {\n // _______________________________________ Modals\n showModal: false,\n showSidebar: false,\n showSignUpModal: false,\n showLogInModal: false,\n showResetPasswordModal: false,\n\n isLoggedIn: false,\n\n user: {} as User,\n currentPhase: {} as Phase,\n accessToken: {} as string,\n\n allCountries: [] as Country[],\n};\n","import { GetterTree } from 'vuex';\nimport { State, Phase } from '../types/types';\n\nexport type Getters = {\n getCurrentPhase(state: State): Phase;\n};\n\nexport const getters: GetterTree & Getters = {\n getCurrentPhase(state) {\n return state.currentPhase;\n },\n};\n","import { createStore, Store as VuexStore, CommitOptions, DispatchOptions, createLogger } from 'vuex';\nimport { State } from '../types/types';\nimport { state } from './state';\nimport { Mutations, mutations } from './mutations';\nimport { Actions, actions } from './actions';\nimport { Getters, getters } from './getters';\n\nexport const store = createStore({\n plugins: process.env.NODE_ENV === 'development' ? [createLogger()] : [],\n state,\n mutations,\n actions,\n getters,\n});\nexport function useStore(): Store {\n return store as Store;\n}\n\nexport type Store = Omit, 'getters' | 'commit' | 'dispatch'> & {\n commit[1]>(\n key: K,\n payload: P,\n options?: CommitOptions\n ): ReturnType;\n} & {\n dispatch(\n key: K,\n payload?: Parameters[1],\n options?: DispatchOptions\n ): ReturnType;\n} & {\n getters: {\n [K in keyof Getters]: ReturnType;\n };\n};\n","import { MutationTree } from 'vuex';\nimport { State, User, Phase, Country } from '../types/types';\n\nexport enum MutationType {\n SetShowModal = 'SET_SHOW_MODAL',\n SetShowSidebar = 'SET_SHOW_SIDEBAR',\n SetSignUpModal = 'SET_SIGN_UP_MODAL',\n SetLogInModal = 'SET_LOG_IN_MODAL',\n SetResetPasswordModal = 'SET_RESET_PASSWORD_MODAL',\n\n SetIsLoggedIn = 'SET_IS_LOGGED_IN',\n\n SetUser = 'SET_USER',\n SetAccessToken = 'SET_ACCESS_TOKEN',\n SetCurrentPhase = 'SET_CURRENT_PHASE',\n\n DeleteUser = 'DELETE_USER',\n DeleteAccesToken = 'DELETE_ACCESS_TOKEN',\n DeleteCurrentPhase = 'DELETE_CURRENT_PHASE',\n\n SetAllCountries = 'SET_ALL_COUNTRIES',\n}\n\nexport type Mutations = {\n [MutationType.SetShowModal](state: State, showModalValue: boolean): void;\n [MutationType.SetShowSidebar](state: State, showSidebarValue: boolean): void;\n [MutationType.SetSignUpModal](state: State, ShowSignUpModalValue: boolean): void;\n [MutationType.SetLogInModal](state: State, ShowLogInModalValue: boolean): void;\n [MutationType.SetResetPasswordModal](state: State, ShowResetPasswordModalValue: boolean): void;\n\n [MutationType.SetIsLoggedIn](state: State, isLoggedIn: boolean): void;\n\n [MutationType.SetUser](state: State, user: User): void;\n [MutationType.SetAccessToken](state: State, accessToken: string): void;\n [MutationType.SetCurrentPhase](state: State, currentPhase: Phase): void;\n // eslint-disable-next-line\n [MutationType.DeleteUser](state: State, payload: any): void;\n // eslint-disable-next-line\n [MutationType.DeleteAccesToken](state: State, payload: any): void;\n // eslint-disable-next-line\n [MutationType.DeleteCurrentPhase](state: State, payload: any): void;\n\n [MutationType.SetAllCountries](state: State, countryList: Country[]): void;\n};\n\nexport const mutations: MutationTree & Mutations = {\n [MutationType.SetShowModal](state, showModalValue) {\n state.showModal = showModalValue;\n },\n [MutationType.SetShowSidebar](state, showSidebarValue) {\n state.showSidebar = showSidebarValue;\n },\n [MutationType.SetSignUpModal](state, ShowSignUpModalValue) {\n state.showSignUpModal = ShowSignUpModalValue;\n },\n [MutationType.SetLogInModal](state, ShowLogInModalValue) {\n state.showLogInModal = ShowLogInModalValue;\n },\n [MutationType.SetResetPasswordModal](state, ShowResetPasswordModalValue) {\n state.showResetPasswordModal = ShowResetPasswordModalValue;\n },\n\n [MutationType.SetIsLoggedIn](state, isLoggedIn) {\n state.isLoggedIn = isLoggedIn;\n },\n\n [MutationType.SetUser](state, user) {\n state.user = user;\n },\n [MutationType.SetAccessToken](state, accessToken) {\n state.accessToken = accessToken;\n },\n [MutationType.SetCurrentPhase](state, currentPhase) {\n state.currentPhase = currentPhase;\n },\n\n [MutationType.DeleteUser](state) {\n state.user = {} as User;\n },\n [MutationType.DeleteAccesToken](state) {\n state.accessToken = '';\n },\n [MutationType.DeleteCurrentPhase](state) {\n state.currentPhase = {} as Phase;\n },\n\n [MutationType.SetAllCountries](state, countryList) {\n state.allCountries = countryList;\n },\n};\n","import { OrganizationType } from '@/enums/OgranizationType';\r\n\r\nexport interface Cycle {\r\n id: number;\r\n startDate: string;\r\n nationalHalfPoint: string;\r\n globaPhaseStartDate: string;\r\n endDate: string;\r\n scoreWizLink: string;\r\n}\r\n\r\nexport interface User {\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n nominatedSong: Song;\r\n country: Country;\r\n votes?: Vote[] | null;\r\n isAdmin: boolean;\r\n organizations?: Organization[];\r\n emailConfirmed?: boolean;\r\n}\r\n\r\nexport interface Organization {\r\n id: number;\r\n organizationType: OrganizationType;\r\n country: Country;\r\n}\r\n\r\nexport interface Song {\r\n id: string;\r\n nominatorName: string;\r\n songName: string;\r\n songLink: string;\r\n nationalPointSum: number;\r\n globalPointSum: number;\r\n country?: Country;\r\n cycle?: Cycle;\r\n}\r\n\r\nexport interface OgaeSong extends Pick {\r\n nominator: Pick;\r\n pointSum: number;\r\n orgCycleId: number;\r\n organizationId: number;\r\n}\r\n\r\nexport interface Country {\r\n id: number;\r\n name: string;\r\n icon: string;\r\n numberOfSongsInCurrentCycle?: number;\r\n}\r\n\r\nexport interface Vote {\r\n songId?: string | null;\r\n voteWeight: number;\r\n}\r\n\r\nexport interface Phase {\r\n id: number;\r\n startDate: string;\r\n endDate: string;\r\n nominationsOnly: boolean;\r\n nationalHalfPoint: string;\r\n globaPhaseStartDate: string;\r\n type: PhaseType;\r\n scoreWizLink: string;\r\n}\r\n\r\nexport enum PhaseType {\r\n National,\r\n Global,\r\n}\r\n\r\nexport type State = {\r\n showModal: boolean;\r\n showSidebar: boolean;\r\n showSignUpModal: boolean;\r\n showLogInModal: boolean;\r\n showResetPasswordModal: boolean;\r\n\r\n isLoggedIn: boolean;\r\n\r\n user: User;\r\n currentPhase: Phase;\r\n accessToken: string;\r\n\r\n allCountries: Country[];\r\n};\r\n\r\nexport interface WinningSong {\r\n country: Country;\r\n song: Song;\r\n}\r\n\r\nexport interface HistoryCycleDto {\r\n cycle: Cycle;\r\n songs: Song[];\r\n}\r\n","import axios from 'axios';\nimport { Phase, User, WinningSong } from '../../types/types';\nimport {\n ServerResponse,\n ErrorResponse,\n RegistrationErrorResponse,\n CountryListResponse,\n SongListResponse,\n LoggedInUserResponse,\n GlobalVoteData,\n} from './types';\nimport { NewUser } from './types';\nimport { LocalStorage } from '../localStorageService';\nimport { SessionStorage } from '../sessionStorageService';\n\nconst API_URL = process.env.VUE_APP_API_URL + '/api';\n\nexport enum ApiStatus {\n OK,\n CaughtError,\n UncaughtError,\n}\n\nfunction authHeader(): HeadersInit {\n const accessTokenLocalStorage = LocalStorage.GetAccessToken();\n const accessTokenSessionStorage = SessionStorage.GetAccessToken();\n\n let accessToken = '';\n\n if (accessTokenLocalStorage) accessToken = JSON.parse(accessTokenLocalStorage ? accessTokenLocalStorage : '');\n else accessToken = JSON.parse(accessTokenSessionStorage ? accessTokenSessionStorage : '');\n if (accessToken) {\n return { Authorization: 'Bearer ' + accessToken };\n } else {\n return {};\n }\n}\n\nexport class Api {\n static async GetCurrentPhase(): Promise> {\n try {\n const response = await axios.get(API_URL + '/phase/current');\n if (response.status == 200) {\n response.status = ApiStatus.OK;\n return response;\n } else {\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n } catch (error) {\n const { response } = error;\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n\n static async Login(\n username: string,\n password: string\n ): Promise<\n ServerResponse<{\n accessToken: string;\n currentPhase: Phase;\n user: User;\n }>\n > {\n try {\n const response = await axios.post(API_URL + '/authentication/login', {\n username,\n password,\n });\n if (response.status === 200) {\n response.status = ApiStatus.OK;\n return response;\n } else {\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 401) {\n response.status = ApiStatus.CaughtError;\n return response;\n }\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n\n public static async SignUp(newUser: NewUser): Promise> {\n try {\n const response = await axios.post>(\n API_URL + '/authentication/register',\n newUser\n );\n if (response.status === 201) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n response.status = ApiStatus.CaughtError;\n return response;\n }\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n\n public static async ResetPasswordWithUsername(username: string): Promise> {\n try {\n const response = await axios.post>(API_URL + '/user/reset/password/username', {\n userName: username,\n });\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n response.status = ApiStatus.CaughtError;\n return response;\n }\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n public static async ResetPasswordWithEmail(email: string): Promise> {\n try {\n const response = await axios.post>(API_URL + '/user/reset/password/email', {\n email: email,\n });\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n response.status = ApiStatus.CaughtError;\n return response;\n }\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n public static async SetNewPassword(\n username: string,\n token: string,\n newPassword: string\n ): Promise> {\n try {\n const response = await axios.post>(API_URL + '/user/set/new/password', {\n userName: username,\n token: token,\n newPassword: newPassword,\n });\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n response.status = ApiStatus.CaughtError;\n return response;\n }\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n\n static async GetAllCountries(): Promise> {\n try {\n const response = await axios.get(API_URL + '/countries/all');\n if (response.status == 200) {\n response.status = ApiStatus.OK;\n return response;\n } else {\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n } catch (error) {\n const { response } = error;\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n static async GetAllActiveCountries(): Promise> {\n try {\n const response = await axios.get(API_URL + '/countries/active');\n if (response.status == 200) {\n response.status = ApiStatus.OK;\n return response;\n } else {\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n } catch (error) {\n const { response } = error;\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n static async GetSongsForCountry(countryId: number): Promise> {\n try {\n const response = await axios.get(API_URL + '/song/' + countryId);\n if (response.status == 200) {\n response.status = ApiStatus.OK;\n return response;\n } else {\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n } catch (error) {\n const { response } = error;\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n\n public static async ChangeName(firstName: string, lastName: string): Promise> {\n try {\n const response = await axios.post(\n API_URL + '/user/change/name',\n { firstName: firstName, lastName: lastName },\n { headers: authHeader() }\n );\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: response.data };\n }\n }\n public static async ChangeEmail(newEmail: string): Promise> {\n try {\n const response = await axios.post(\n API_URL + '/user/change/email',\n { newEmail: newEmail },\n { headers: authHeader() }\n );\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: response.data };\n }\n }\n public static async GetLoggedInUserData(): Promise> {\n try {\n const response = await axios.get(API_URL + '/user/me', {\n headers: authHeader(),\n });\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: response.data };\n } else {\n return { status: ApiStatus.UncaughtError, data: response.data };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: response.data };\n }\n }\n public static async ChangePassword(\n oldPassword: string,\n newPassword: string\n ): Promise> {\n try {\n const response = await axios.post(\n API_URL + '/user/change/password',\n { oldPassword: oldPassword, newPassword: newPassword },\n { headers: authHeader() }\n );\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: null };\n }\n }\n public static async ChangeCountry(newCountryId: number): Promise> {\n try {\n const response = await axios.post(\n API_URL + '/user/change/country',\n { newCountryId: newCountryId },\n { headers: authHeader() }\n );\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: null };\n }\n }\n\n public static async NominateSong(songName: string, songLink: string): Promise> {\n try {\n const response = await axios.post(\n API_URL + '/National/Nominate',\n { songName: songName, songLink: songLink },\n { headers: authHeader() }\n );\n\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: null };\n }\n }\n public static async VoteSongNational(\n songId: string,\n voteWeight: number\n ): Promise> {\n try {\n const response = await axios.post(\n API_URL + '/National/Vote',\n { songId: songId, voteWeight: voteWeight },\n { headers: authHeader() }\n );\n\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: null };\n }\n }\n public static async VoteSongGlobal(\n songId: string,\n voteWeight: number\n ): Promise> {\n try {\n const response = await axios.post(\n API_URL + '/Global/Vote',\n { songId: songId, voteWeight: voteWeight },\n { headers: authHeader() }\n );\n\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: null };\n }\n }\n static async GetWinningSongs(): Promise> {\n try {\n const response = await axios.get(API_URL + '/countries/winners');\n if (response.status == 200) {\n response.status = ApiStatus.OK;\n return response;\n } else {\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n } catch (error) {\n const { response } = error;\n response.status = ApiStatus.UncaughtError;\n return response;\n }\n }\n public static async DeleteSong(songId: string): Promise> {\n try {\n const response = await axios.post(API_URL + '/admin/delete/song', { songId: songId }, { headers: authHeader() });\n\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: null };\n } else {\n return { status: ApiStatus.UncaughtError, data: null };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: null };\n }\n }\n public static async GetGlobalVoteData(cycleId: number): Promise> {\n try {\n const response = await axios.get(API_URL + `/admin/globalvotedata/${cycleId}`, { headers: authHeader() });\n\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: response.data };\n } else {\n return { status: ApiStatus.UncaughtError, data: undefined };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: undefined };\n }\n }\n public static async SetScoreWizLink(\n cycleId: number,\n scoreWizLink: string\n ): Promise> {\n try {\n const response = await axios.post(\n API_URL + `/admin/scorewiz/link`,\n {\n cycleId: cycleId,\n scoreWizLink: scoreWizLink,\n },\n { headers: authHeader() }\n );\n\n if (response.status === 200) {\n return { status: ApiStatus.OK, data: response.data };\n } else {\n return { status: ApiStatus.UncaughtError, data: undefined };\n }\n } catch (error) {\n const { response } = error;\n if (response.status === 400) {\n return { status: ApiStatus.CaughtError, data: response.data };\n }\n return { status: ApiStatus.UncaughtError, data: undefined };\n }\n }\n}\n","import { Phase, Country } from '../types/types';\n\nexport class LocalStorage {\n static SetAccessToken(accessToken: string): void {\n localStorage.setItem('accessToken', JSON.stringify(accessToken));\n }\n static SetCurrentPhase(currentPhase: Phase): void {\n localStorage.setItem('currentPhase', JSON.stringify(currentPhase));\n }\n static SetCountryList(countryList: Country[]): void {\n localStorage.setItem('countryList', JSON.stringify(countryList));\n }\n\n static GetAccessToken(): string | null {\n const accessToken = localStorage.getItem('accessToken');\n if (accessToken && accessToken.length > 10 && accessToken !== undefined) return accessToken;\n else return null;\n }\n static GetCurrentPhase(): Phase | null {\n const currentPhase = localStorage.getItem('currentPhase');\n if (currentPhase && currentPhase.length > 10 && currentPhase !== undefined) return JSON.parse(currentPhase);\n else return null;\n }\n static GetCountryList(): Country[] {\n const countryList = localStorage.getItem('countryList');\n if (countryList === null || !Array.isArray(countryList) || countryList === undefined) return [];\n else return JSON.parse(countryList);\n }\n\n static DeleteLoggedInUser(): void {\n localStorage.removeItem('user');\n }\n static DeleteAccessToken(): void {\n localStorage.removeItem('accessToken');\n }\n static DeleteCurrentPhase(): void {\n localStorage.removeItem('currentPhase');\n }\n}\n","export class SessionStorage {\n static SetAccessToken(accessToken: string): void {\n sessionStorage.setItem('accessToken', JSON.stringify(accessToken));\n }\n\n static GetAccessToken(): string | null {\n const accessToken = sessionStorage.getItem('accessToken');\n if (accessToken) return accessToken;\n else return null;\n }\n\n static DeleteLoggedInUser(): void {\n sessionStorage.removeItem('user');\n }\n static DeleteAccessToken(): void {\n sessionStorage.removeItem('accessToken');\n }\n}\n","import { Validator, Status, Require, MinMaxOptions, Length, Email, Username, Password, SongLink } from './types';\n\nexport function required(): Require {\n return {\n type: 'required',\n };\n}\n\nexport function length(options: MinMaxOptions): Length {\n return {\n type: 'length',\n options,\n };\n}\n\nexport function email(): Email {\n return {\n type: 'email',\n };\n}\n\nexport function username(): Username {\n return {\n type: 'username',\n };\n}\n\nexport function password(): Password {\n return {\n type: 'password',\n };\n}\nexport function songLink(): SongLink {\n return {\n type: 'songLink',\n };\n}\n\nexport function validate(value: string, validators: Validator[]): Status {\n for (const validator of validators) {\n if (validator.type === 'required' && (!value || !value.length)) {\n return {\n valid: false,\n message: 'This field is required',\n };\n }\n if (validator.type === 'length' && value.length < validator.options.min) {\n return {\n valid: false,\n message: `This field has a minimum length of ${validator.options.min}.`,\n };\n }\n if (validator.type === 'length' && value.length > validator.options.max) {\n return {\n valid: false,\n message: `This field has a maximum length of ${validator.options.max}.`,\n };\n }\n if (validator.type === 'email') {\n const re =\n // eslint-disable-next-line no-useless-escape\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n if (!re.test(String(value).toLowerCase())) {\n return {\n valid: false,\n message: 'Please enter a valid Email address.',\n };\n }\n }\n\n if (validator.type === 'username') {\n // eslint-disable-next-line no-useless-escape\n const re = /^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/;\n\n if (!re.test(String(value).toLowerCase())) {\n return {\n valid: false,\n message: 'Username can only contain letters, numbers and underscores.',\n };\n }\n }\n\n if (validator.type === 'password') {\n const re = /[0-9]/; //TEST IT\n\n if (!re.test(String(value).toLowerCase())) {\n return {\n valid: false,\n message: 'Password must contain at least one number.',\n };\n }\n }\n if (validator.type === 'songLink') {\n // eslint-disable-next-line no-useless-escape\n const ytLinkRegex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = String(value).toLowerCase().match(ytLinkRegex);\n if (!(match && match[2].length === 11)) {\n return {\n valid: false,\n message: 'Please paste a valid YouTube link.',\n };\n }\n }\n }\n return { valid: true };\n}\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.isLoggedIn && !_ctx.userHasNominatedSong && _ctx.isNationalPhase && _ctx.nominationsOnly)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n class: \"items-center font-bold text-gray-900 transition duration-300 transform bg-white rounded-sm cursor-pointer select-none focus:outline-none text-opacity bg-opacity-90 hover:bg-opacity-100 hover:text-black\",\n style: {\"padding\":\"0.35rem 0.85rem\"},\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.goToNominateSong && _ctx.goToNominateSong(...args)))\n }, \" Nominate a Song \"))\n : _createCommentVNode(\"\", true)\n}","\nimport { defineComponent, computed } from 'vue';\nimport { useStore } from '../store';\nimport { useRouter } from 'vue-router';\nimport { PhaseType } from '../types/types';\nimport { ActionTypes } from '@/store/actions';\n\nexport default defineComponent({\n name: 'NominateButton',\n setup() {\n const store = useStore();\n const router = useRouter();\n const isLoggedIn = computed(() => store.state.isLoggedIn);\n const isNationalPhase = computed(() => store.state.currentPhase.type === PhaseType.National);\n const nominationsOnly = computed(() => store.state.currentPhase.nominationsOnly);\n\n const userHasNominatedSong = computed(() => !!store.state.user.nominatedSong);\n\n function goToNominateSong() {\n router.push('/nominate');\n store.dispatch(ActionTypes.HideSidebar);\n }\n\n return {\n goToNominateSong,\n isNationalPhase,\n userHasNominatedSong,\n isLoggedIn,\n nominationsOnly,\n };\n },\n});\n","import { render } from \"./NominateButton.vue?vue&type=template&id=119034c8&ts=true\"\nimport script from \"./NominateButton.vue?vue&type=script&lang=ts\"\nexport * from \"./NominateButton.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, Transition as _Transition, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-63b0748e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"w-full h-full px-5 py-10\" }\nconst _hoisted_2 = { class: \"mb-14 h-1/3\" }\nconst _hoisted_3 = { class: \"mb-4 text-3xl text-center text-gray-900\" }\nconst _hoisted_4 = { class: \"mb-1 text-xl text-center text-gray-600\" }\nconst _hoisted_5 = { class: \"flex mt-8 flex-wrapmx-auto h-1/3\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NFormButton = _resolveComponent(\"NFormButton\")!\n\n return (_openBlock(), _createBlock(_Transition, {\n \"enter-active-class\": \"transition-all ease-in-out transform duration-400\",\n \"leave-active-class\": \"transition-all ease-in-out transform duration-400\",\n \"enter-from-class\": \"scale-95 opacity-0\",\n \"enter-to-class\": \"scale-100 opacity-100\",\n \"leave-from-class\": \"opacity-100\",\n \"leave-to-class\": \"opacity-0\"\n }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"h1\", _hoisted_4, _toDisplayString(_ctx.message), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_NFormButton, {\n type: \"button\",\n class: \"w-7/12 h-10 mx-auto sm:w-5/12 sm:h-12\",\n name: _ctx.buttonName,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('buttonClick')))\n }, null, 8, [\"name\"])\n ])\n ], 512), [\n [_vShow, _ctx.showSuccsess]\n ])\n ]),\n _: 1\n }))\n}","\nimport { defineComponent } from 'vue';\nimport NFormButton from '../ui/NFormButton.vue';\n\nexport default defineComponent({\n name: 'FormSuccsess',\n components: { NFormButton },\n props: {\n showSuccsess: {\n type: Boolean,\n default: false,\n },\n title: {\n type: String,\n default: 'Title',\n },\n message: {\n type: String,\n default: 'This is a message!',\n },\n buttonName: {\n type: String,\n default: 'I am a button',\n },\n },\n emits: ['buttonClick'],\n});\n","import { render } from \"./FormSuccsess.vue?vue&type=template&id=63b0748e&scoped=true&ts=true\"\nimport script from \"./FormSuccsess.vue?vue&type=script&lang=ts\"\nexport * from \"./FormSuccsess.vue?vue&type=script&lang=ts\"\n\nimport \"./FormSuccsess.vue?vue&type=style&index=0&id=63b0748e&scoped=true&lang=css\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-63b0748e\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withKeys as _withKeys, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-normal font-openSans\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1)\nconst _hoisted_3 = { class: \"flex flex-wrap justify-between mt-1 sm:m-2\" }\nconst _hoisted_4 = { class: \"inline-flex items-center justify-start ml-1\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"ml-1 text-xs font-normal sm:ml-2 text-nominee-black xl:text-sm\" }, \"Stay logged in? \", -1)\nconst _hoisted_6 = { class: \"flex items-center text-right\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"-mb-3 text-xs font-semibold text-center text-nominee-danger sm:p-2 sm:text-sm\"\n}\nconst _hoisted_8 = { class: \"flex content-center m-auto mt-1\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"pr-1 text-xs text-nominee-black xl:text-sm\" }, \"Not a member? \", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NTitle = _resolveComponent(\"NTitle\")!\n const _component_NFormInput = _resolveComponent(\"NFormInput\")!\n const _component_NSwitch = _resolveComponent(\"NSwitch\")!\n const _component_NFormButton = _resolveComponent(\"NFormButton\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_NTitle, {\n class: \"mb-2 text-3xl sm:mb-6 sm:text-4xl\",\n tag: \"h1\",\n content: \"Log In\"\n }),\n _hoisted_2,\n _createElementVNode(\"form\", {\n class: \"flex flex-col px-3 pt-4 pb-2 sm:pb-2 sm:pt-4 md:px-3 md:pb-2 lg:px-3 md:pt-5\",\n onKeyup: _cache[5] || (_cache[5] = _withKeys(\n//@ts-ignore\n(...args) => (_ctx.submitForm && _ctx.submitForm(...args)), [\"enter\"])),\n onSubmit: _cache[6] || (_cache[6] = _withModifiers(() => {}, [\"prevent\"]))\n }, [\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.usernameInput,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.usernameInput) = $event)),\n class: \"mb-2\",\n type: \"text\",\n name: \"username\",\n error: !_ctx.loginFailed ? _ctx.usernameStatus.message : ' ',\n placeholder: \"Username\",\n onInputChanged: _ctx.resetUsernameStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]),\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.passwordInput,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.passwordInput) = $event)),\n class: \"mb-1\",\n type: \"password\",\n name: \"password\",\n error: !_ctx.loginFailed ? _ctx.passwordStatus.message : ' ',\n placeholder: \"Password\",\n onInputChanged: _ctx.resetPasswordStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createVNode(_component_NSwitch, {\n modelValue: _ctx.stayLoggedIn,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.stayLoggedIn) = $event)),\n name: \"Stay logged in?\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_5\n ]),\n _createElementVNode(\"p\", _hoisted_6, [\n _createElementVNode(\"span\", {\n class: \"p-1 text-xs font-bold text-gray-900 cursor-pointer md:text-sm\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.goToForgotPassword && _ctx.goToForgotPassword(...args)))\n }, \"Forgot password?\")\n ])\n ]),\n (_ctx.loginFailed)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, \" Username or password is incorrect! \"))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_NFormButton, {\n disabled: !_ctx.usernameStatus.valid || !_ctx.passwordStatus.valid || _ctx.loginFailed || _ctx.isProcessingLoginRequest,\n type: \"submit\",\n class: \"w-full h-10 mt-3 lg:mt-5 sm:h-12\",\n name: \"LOGIN\",\n loading: _ctx.isProcessingLoginRequest,\n onClick: _ctx.submitForm\n }, null, 8, [\"disabled\", \"loading\", \"onClick\"]),\n _createElementVNode(\"p\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"span\", {\n class: \"text-xs font-bold text-black cursor-pointer xl:text-sm\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.goToSignUp && _ctx.goToSignUp(...args)))\n }, \"Signup now!\")\n ])\n ], 32)\n ]))\n}","\nimport { defineComponent, ref, computed } from 'vue';\nimport { useStore } from '../../store';\nimport { useRouter, useRoute } from 'vue-router';\nimport { ActionTypes } from '../../store/actions';\nimport { validate, required } from '../../utils/validation/validators';\nimport { Status } from '../../utils/validation/types';\nimport NFormInput from '../ui/NFormInput.vue';\nimport NFormButton from '../ui/NFormButton.vue';\nimport NTitle from '../ui/NTitle.vue';\nimport NSwitch from '../ui/NSwitch.vue';\n\nexport default defineComponent({\n name: 'LoginForm',\n components: { NFormInput, NFormButton, NTitle, NSwitch },\n setup() {\n const store = useStore();\n const router = useRouter();\n const route = useRoute();\n\n const submitButtonClicked = ref(false);\n const isProcessingLoginRequest = ref(false);\n const loginFailed = ref(false);\n const stayLoggedIn = ref(true);\n\n const usernameInput = ref('');\n const passwordInput = ref('');\n\n const usernameStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n else return validate(usernameInput.value, [required()]);\n });\n const passwordStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n else return validate(passwordInput.value, [required()]);\n });\n\n function resetUsernameStatus() {\n if (loginFailed.value) {\n loginFailed.value = false;\n usernameStatus.value.message = '';\n usernameStatus.value.valid = true;\n }\n }\n function resetPasswordStatus() {\n if (loginFailed.value) {\n loginFailed.value = false;\n passwordStatus.value.message = '';\n passwordStatus.value.valid = true;\n }\n }\n\n function goToSignUp() {\n if (route.name == 'Login') router.push('/signup');\n else {\n store.dispatch(ActionTypes.HideModal);\n setTimeout(() => store.dispatch(ActionTypes.ShowSignUpModal), 300);\n }\n }\n function goToForgotPassword() {\n store.dispatch(ActionTypes.HideModal);\n setTimeout(() => store.dispatch(ActionTypes.ShowResetPasswordModal), 300);\n }\n\n async function submitForm() {\n isProcessingLoginRequest.value = true;\n setTimeout(\n async () => {\n if (submitButtonClicked.value === false) submitButtonClicked.value = true;\n\n if (usernameStatus.value.valid && passwordStatus.value.valid) {\n loginFailed.value = !(await store.dispatch(ActionTypes.Login, {\n username: usernameInput.value,\n password: passwordInput.value,\n stayLoggedIn: stayLoggedIn.value,\n }));\n } else {\n isProcessingLoginRequest.value = false;\n return;\n }\n if (!loginFailed.value) {\n isProcessingLoginRequest.value = false;\n await store.dispatch(ActionTypes.HideModal);\n router.push('/country/' + store.state.user.country.icon);\n return;\n }\n isProcessingLoginRequest.value = false;\n return;\n },\n submitButtonClicked.value ? 3000 : 0\n );\n }\n\n return {\n submitForm,\n goToSignUp,\n goToForgotPassword,\n loginFailed,\n submitButtonClicked,\n isProcessingLoginRequest,\n stayLoggedIn,\n usernameInput,\n passwordInput,\n usernameStatus,\n passwordStatus,\n resetUsernameStatus,\n resetPasswordStatus,\n };\n },\n});\n","import { render } from \"./LoginForm.vue?vue&type=template&id=615fbe85&ts=true\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=ts\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, createVNode as _createVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-normal font-openSans\" }\nconst _hoisted_2 = { class: \"items-center justify-center flex-1\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"flex flex-col w-full sm:flex-row xl:mb-1\" }\nconst _hoisted_5 = { class: \"m-auto mt-1 sm:mt-1 md:mt-2\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-xs text-gray-900 sm:text-sm\" }, \"Already a member? \", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NTitle = _resolveComponent(\"NTitle\")!\n const _component_NFormInput = _resolveComponent(\"NFormInput\")!\n const _component_NFormSelect = _resolveComponent(\"NFormSelect\")!\n const _component_NFormButton = _resolveComponent(\"NFormButton\")!\n const _component_FormSuccsess = _resolveComponent(\"FormSuccsess\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (!_ctx.signUpIsSuccsessful)\n ? (_openBlock(), _createBlock(_component_NTitle, {\n key: 0,\n class: \"mb-2 text-3xl sm:mb-6 sm:text-4xl\",\n tag: \"h1\",\n content: \"Sign Up\"\n }))\n : _createCommentVNode(\"\", true)\n ]),\n (!_ctx.signUpIsSuccsessful)\n ? (_openBlock(), _createElementBlock(\"hr\", _hoisted_3))\n : _createCommentVNode(\"\", true),\n (!_ctx.signUpIsSuccsessful)\n ? (_openBlock(), _createElementBlock(\"form\", {\n key: 1,\n class: \"flex flex-col p-4 md:p-5 lg:p-7 xl:p-12 xl:px-6\",\n onSubmit: _cache[8] || (_cache[8] = _withModifiers(() => {}, [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.firstNameInput,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.firstNameInput) = $event)),\n class: \"w-full mb-2 sm:mr-1\",\n type: \"text\",\n name: \"First name\",\n error: _ctx.firstNameStatus.message,\n placeholder: \"John\",\n onInputChanged: _ctx.resetFirstNameStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]),\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.lastNameInput,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.lastNameInput) = $event)),\n class: \"w-full mb-2 sm:ml-1\",\n type: \"text\",\n name: \"Last name\",\n error: _ctx.lastNameStatus.message,\n placeholder: \"Doe\",\n onInputChanged: _ctx.resetLastNameStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"])\n ]),\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.usernameInput,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.usernameInput) = $event)),\n class: \"mb-2\",\n type: \"text\",\n name: \"Username\",\n error: _ctx.usernameStatus.message,\n placeholder: \"username\",\n onInputChanged: _ctx.resetUsernameStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]),\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.emailInput,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.emailInput) = $event)),\n class: \"mb-2\",\n type: \"text\",\n name: \"Email\",\n error: _ctx.emailStatus.message,\n placeholder: \"example@mail.com\",\n onInputChanged: _ctx.resetEmailStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]),\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.passwordInput,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.passwordInput) = $event)),\n class: \"mb-2\",\n type: \"password\",\n name: \"Password\",\n error: _ctx.submitButtonClicked && !_ctx.passwordStatus.valid ? ' ' : '',\n placeholder: \"Password\",\n onInputChanged: _ctx.resetPasswordStatus\n }, null, 8, [\"modelValue\", \"error\", \"onInputChanged\"]),\n _createVNode(_component_NFormInput, {\n modelValue: _ctx.passwordConfirmInput,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.passwordConfirmInput) = $event)),\n type: \"password\",\n class: \"mb-2\",\n name: \"\",\n error: _ctx.passwordStatus.message,\n placeholder: \"Confirm Password\"\n }, null, 8, [\"modelValue\", \"error\"]),\n _createVNode(_component_NFormSelect, {\n modelValue: _ctx.selectedCountryInput,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.selectedCountryInput) = $event)),\n items: _ctx.allCountries,\n name: 'Country',\n label: 'Select a country',\n error: _ctx.countryStatus.message,\n \"show-options-above\": true,\n onClick: _ctx.resetCountryStatus\n }, null, 8, [\"modelValue\", \"items\", \"error\", \"onClick\"]),\n _createElementVNode(\"p\", _hoisted_5, [\n _hoisted_6,\n _createElementVNode(\"span\", {\n class: \"text-sm font-bold text-gray-900 cursor-pointer sm:text-base\",\n onClick: _cache[7] || (_cache[7] = \n//@ts-ignore\n(...args) => (_ctx.goToLogin && _ctx.goToLogin(...args)))\n }, \"Log in.\")\n ]),\n _createVNode(_component_NFormButton, {\n disabled: _ctx.submitButtonDisabled,\n type: \"submit\",\n class: \"w-full h-10 mx-auto mt-3 shadow-sm sm:h-12 sm:mt-5 md:mt-6 lg:mt-7 xl:mt-8\",\n name: \"SIGN UP\",\n loading: _ctx.isProcessingSignUpRequest,\n onClick: _ctx.submitForm\n }, null, 8, [\"disabled\", \"loading\", \"onClick\"])\n ], 32))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_FormSuccsess, {\n \"button-name\": \"Login now!\",\n title: \"You have successfully signed up\",\n message: \"Please check your email inbox to verify your email adress.\",\n \"show-succsess\": _ctx.signUpIsSuccsessful,\n onButtonClick: _ctx.goToLogin\n }, null, 8, [\"show-succsess\", \"onButtonClick\"])\n ]))\n}","import { Ref, computed, ComputedRef } from 'vue';\nimport { Status } from '../../utils/validation/types';\nimport { RegistrationErrorResponse } from '../../utils/api/types';\nimport { validate, required, length, email, username, password } from '../../utils/validation/validators';\nimport { Country } from '@/types/types';\n\nexport default function useSignUpValidation(\n firstNameInput: Ref,\n lastNameInput: Ref,\n usernameInput: Ref,\n emailInput: Ref,\n passwordInput: Ref,\n passwordConfirmInput: Ref,\n selectedCountryInput: Ref,\n signUpResponseErrors: Ref,\n submitButtonClicked: Ref\n): {\n firstNameStatus: ComputedRef;\n lastNameStatus: ComputedRef;\n usernameStatus: ComputedRef;\n emailStatus: ComputedRef;\n passwordStatus: ComputedRef;\n countryStatus: ComputedRef;\n} {\n const validateFirstName = (): Status => {\n return validate(firstNameInput.value, [length({ min: 0, max: 35 })]);\n };\n const validateLastName = (): Status => {\n return validate(lastNameInput.value, [length({ min: 0, max: 35 })]);\n };\n const validateUsername = (): Status => {\n return validate(usernameInput.value, [required(), length({ min: 1, max: 20 }), username()]);\n };\n const validateEmail = (): Status => {\n return validate(emailInput.value, [required(), email()]);\n };\n const validatePassword = (): Status => {\n return validate(passwordInput.value, [required(), length({ min: 8, max: 100 }), password()]);\n };\n\n const firstNameStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n const firstNameValidation = validateFirstName();\n if (!firstNameValidation.valid) return firstNameValidation;\n else if (signUpResponseErrors.value.firstName) {\n return { valid: false, message: signUpResponseErrors.value.firstName };\n } else return { valid: true, message: '' };\n });\n const lastNameStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n const lastNameValidation = validateLastName();\n if (!lastNameValidation.valid) return lastNameValidation;\n else if (signUpResponseErrors.value.lastName) return { valid: false, message: signUpResponseErrors.value.lastName };\n else return { valid: true, message: '' };\n });\n const usernameStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n const emailValidation = validateUsername();\n if (!emailValidation.valid) return emailValidation;\n else if (signUpResponseErrors.value.userName) return { valid: false, message: signUpResponseErrors.value.userName };\n else return { valid: true, message: '' };\n });\n const emailStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n const emailValidation = validateEmail();\n if (!emailValidation.valid) return emailValidation;\n else if (signUpResponseErrors.value.email) return { valid: false, message: signUpResponseErrors.value.email };\n else return { valid: true, message: '' };\n });\n const passwordStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n const passwordValidation = validatePassword();\n if (!passwordValidation.valid) return passwordValidation;\n else if (passwordInput.value != passwordConfirmInput.value)\n return { valid: false, message: 'Passwords must match.' };\n else return { valid: true, message: '' };\n });\n\n const countryStatus = computed(() => {\n if (!submitButtonClicked.value) return { valid: true, message: '' };\n if (selectedCountryInput.value.id === 0) return { valid: false, message: 'This field is required.' };\n else if (signUpResponseErrors.value.country) {\n return { valid: false, message: signUpResponseErrors.value.country };\n } else return { valid: true, message: '' };\n });\n\n return {\n firstNameStatus,\n lastNameStatus,\n usernameStatus,\n emailStatus,\n passwordStatus,\n countryStatus,\n };\n}\n","\nimport { defineComponent, ref, computed } from 'vue';\nimport { useStore } from '@/store';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport { ActionTypes } from '../../store/actions';\nimport { Api, ApiStatus } from '../../utils/api/apiService';\nimport { RegistrationErrorResponse } from '../../utils/api/types';\nimport useSignUpValidation from '../composables/useSignUpValidation';\n\nimport FormSuccsess from './FormSuccsess.vue';\nimport NFormSelect from '../ui/NFormSelect.vue';\nimport NFormButton from '../ui/NFormButton.vue';\nimport NFormInput from '../ui/NFormInput.vue';\nimport NTitle from '../ui/NTitle.vue';\nimport { Country } from '@/types/types';\n\nexport default defineComponent({\n name: 'SignUpForm',\n components: {\n NFormSelect,\n NFormInput,\n NFormButton,\n NTitle,\n FormSuccsess,\n },\n async setup() {\n const store = useStore();\n const route = useRoute();\n const router = useRouter();\n\n const firstNameInput = ref('');\n const lastNameInput = ref('');\n const usernameInput = ref('');\n const emailInput = ref('');\n const passwordInput = ref('');\n const passwordConfirmInput = ref('');\n\n const selectedCountryInput = ref({ name: '', id: 0, icon: '' });\n\n const submitButtonClicked = ref(false);\n const isProcessingSignUpRequest = ref(false);\n const signUpIsSuccsessful = ref(false);\n\n const signUpResponseErrors = ref({\n firstName: '',\n lastName: '',\n userName: '',\n email: '',\n password: '',\n country: '',\n });\n\n const allCountries = await store.dispatch(ActionTypes.GetAllCountries);\n\n const { firstNameStatus, lastNameStatus, usernameStatus, emailStatus, passwordStatus, countryStatus } =\n useSignUpValidation(\n firstNameInput,\n lastNameInput,\n usernameInput,\n emailInput,\n passwordInput,\n passwordConfirmInput,\n selectedCountryInput,\n signUpResponseErrors,\n submitButtonClicked\n );\n\n const submitButtonDisabled =\n computed(\n () =>\n (!usernameStatus.value.valid ||\n !emailStatus.value.valid ||\n !passwordStatus.value.valid ||\n !countryStatus.value.valid) &&\n submitButtonClicked.value\n ) || isProcessingSignUpRequest.value;\n\n function resetFirstNameStatus() {\n if (signUpResponseErrors.value.firstName) {\n signUpResponseErrors.value.firstName = '';\n firstNameStatus.value.message = '';\n firstNameStatus.value.valid = true;\n }\n }\n function resetLastNameStatus() {\n if (signUpResponseErrors.value.lastName) {\n signUpResponseErrors.value.lastName = '';\n lastNameStatus.value.message = '';\n lastNameStatus.value.valid = true;\n }\n }\n function resetUsernameStatus() {\n if (signUpResponseErrors.value.userName) {\n signUpResponseErrors.value.userName = '';\n usernameStatus.value.message = '';\n usernameStatus.value.valid = true;\n }\n }\n function resetEmailStatus() {\n if (signUpResponseErrors.value.email) {\n signUpResponseErrors.value.email = '';\n emailStatus.value.message = '';\n emailStatus.value.valid = true;\n }\n }\n function resetPasswordStatus() {\n if (signUpResponseErrors.value.password) {\n signUpResponseErrors.value.password = '';\n passwordStatus.value.message = '';\n passwordStatus.value.valid = true;\n }\n }\n function resetCountryStatus() {\n if (signUpResponseErrors.value.country) {\n signUpResponseErrors.value.country = '';\n countryStatus.value.message = '';\n countryStatus.value.valid = true;\n }\n }\n function goToLogin() {\n if (route.name == 'SignUp') router.push('/login');\n else {\n store.dispatch(ActionTypes.HideModal);\n setTimeout(() => store.dispatch(ActionTypes.ShowLogInModal), 300);\n }\n }\n async function submitForm() {\n isProcessingSignUpRequest.value = true;\n setTimeout(\n async () => {\n if (submitButtonClicked.value === false) submitButtonClicked.value = true;\n\n if (\n usernameStatus.value.valid &&\n emailStatus.value.valid &&\n passwordStatus.value.valid &&\n countryStatus.value.valid\n ) {\n var res = await Api.SignUp({\n firstname: firstNameInput.value,\n lastname: lastNameInput.value,\n username: usernameInput.value,\n password: passwordInput.value,\n email: emailInput.value,\n countryid: selectedCountryInput.value.id,\n });\n\n if (res.status == ApiStatus.OK) {\n signUpIsSuccsessful.value = true;\n isProcessingSignUpRequest.value = false;\n } else if (res.status == ApiStatus.CaughtError) {\n if (res.data && typeof res.data === typeof signUpResponseErrors.value)\n signUpResponseErrors.value = res.data;\n } else if (res.status == ApiStatus.UncaughtError) alert('Something went wrong. :(');\n }\n isProcessingSignUpRequest.value = false;\n return;\n },\n submitButtonClicked.value ? 3000 : 0\n );\n }\n\n return {\n allCountries,\n\n submitForm,\n goToLogin,\n signUpIsSuccsessful,\n isProcessingSignUpRequest,\n\n submitButtonClicked,\n submitButtonDisabled,\n\n firstNameInput,\n lastNameInput,\n usernameInput,\n emailInput,\n passwordInput,\n passwordConfirmInput,\n selectedCountryInput,\n\n firstNameStatus,\n lastNameStatus,\n usernameStatus,\n emailStatus,\n passwordStatus,\n countryStatus,\n\n resetFirstNameStatus,\n resetLastNameStatus,\n resetUsernameStatus,\n resetEmailStatus,\n resetPasswordStatus,\n signUpResponseErrors,\n resetCountryStatus,\n };\n },\n});\n","import { render } from \"./SignUpForm.vue?vue&type=template&id=e9d6c594&ts=true\"\nimport script from \"./SignUpForm.vue?vue&type=script&lang=ts\"\nexport * from \"./SignUpForm.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, renderSlot as _renderSlot, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"type\"]\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = {\n key: 1,\n class: \"flex flex-wrap justify-center\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"svg\", {\n class: \"w-5 h-5 animate-spin text-nominee-white\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"circle\", {\n class: \"opacity-25\",\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n stroke: \"currentColor\",\n \"stroke-width\": \"4\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"opacity-75\",\n fill: \"currentColor\",\n d: \"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n })\n], -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: _normalizeClass([\n _ctx.color ? _ctx.color : 'bg-gray-800',\n 'inline-block text-xs font-semibold tracking-wider text-center text-white border-white border-opacity-50 rounded-sm shadow-md cursor-pointer select-none hover:bg-opacity-90 border-1 disabled:opacity-70 focus:outline-none hover:border-gray-900 lg:text-sm text-opacity-90 hover:text-opacity-100',\n ]),\n type: _ctx.type\n }, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, [\n _createTextVNode(_toDisplayString(_ctx.name) + \" \", 1),\n _renderSlot(_ctx.$slots, \"default\")\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_1))\n}","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'NFormButton',\n props: {\n type: {\n type: String,\n default: 'Button',\n },\n name: {\n type: String,\n required: true,\n default: 'Button',\n },\n loading: {\n type: Boolean,\n default: false,\n },\n color: {\n type: String,\n required: false,\n default: null,\n },\n },\n});\n","import { render } from \"./NFormButton.vue?vue&type=template&id=716ebba4&ts=true\"\nimport script from \"./NFormButton.vue?vue&type=script&lang=ts\"\nexport * from \"./NFormButton.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withKeys as _withKeys, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex flex-col w-full\" }\nconst _hoisted_2 = {\n class: \"text-sm font-semibold tracking-normal text-black capitalize md:text-sm\",\n for: \"name\"\n}\nconst _hoisted_3 = { class: \"\" }\nconst _hoisted_4 = [\"id\", \"type\", \"value\", \"placeholder\"]\nconst _hoisted_5 = { class: \"flex justify-end\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"w-10/12 -mb-2 text-xs text-right text-nominee-danger lg:-mb-4\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", _hoisted_2, _toDisplayString(_ctx.name), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"input\", {\n id: _ctx.name,\n class: _normalizeClass([{\n 'focus:border-nominee-danger border-1 border-nominee-danger ': _ctx.error,\n 'focus:border-gray-900 border-gray-400 ': !_ctx.error,\n }, \"w-full px-3 text-base font-light bg-transparent rounded-sm shadow text-nominee-black md:text-base focus:outline-none h-9 md:h-10 border-1\"]),\n autocomplete: \"on\",\n tag: \"required\",\n type: _ctx.type,\n value: _ctx.modelValue,\n placeholder: _ctx.placeholder,\n onInput: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleInput && _ctx.handleInput(...args))),\n onKeyup: _cache[1] || (_cache[1] = _withKeys(\n//@ts-ignore\n(...args) => (_ctx.handleInput && _ctx.handleInput(...args)), [\"delete\"]))\n }, null, 42, _hoisted_4)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.error && _ctx.error != ' ')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_6, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'NFormInput',\n props: {\n error: {\n type: String,\n default: '',\n },\n type: {\n type: String,\n default: 'text',\n },\n name: {\n type: String,\n required: false,\n default: null,\n },\n placeholder: {\n type: String,\n default: null,\n },\n modelValue: {\n type: [String, Number],\n required: true,\n },\n },\n emits: ['inputChanged', 'update:modelValue'],\n setup(props, context) {\n // eslint-disable-next-line\n const handleInput = (event: any) => {\n context.emit('inputChanged', event.target.value);\n context.emit('update:modelValue', event.target.value);\n };\n\n return { handleInput };\n },\n});\n","import { render } from \"./NFormInput.vue?vue&type=template&id=6b6793b3&ts=true\"\nimport script from \"./NFormInput.vue?vue&type=script&lang=ts\"\nexport * from \"./NFormInput.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, createCommentVNode as _createCommentVNode, createBlock as _createBlock, Transition as _Transition, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-04590346\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"relative\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n class: \"w-5 h-5 text-gray-400\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"black\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M8 9l4-4 4 4m0 6l-4 4-4-4\"\n })\n ])\n], -1))\nconst _hoisted_3 = {\n key: 0,\n class: \"absolute inset-y-0 left-0 flex items-center pl-3 font-bold text-nominee-black\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n class: \"w-5 h-5\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"white\",\n \"aria-hidden\": \"true\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n d: \"M5 13l4 4L19 7\"\n })\n], -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = { class: \"flex justify-end\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"w-10/12 -mb-2 text-xs text-right text-nominee-danger lg:-mb-4\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ListboxLabel = _resolveComponent(\"ListboxLabel\")!\n const _component_ListboxButton = _resolveComponent(\"ListboxButton\")!\n const _component_ListboxOption = _resolveComponent(\"ListboxOption\")!\n const _component_ListboxOptions = _resolveComponent(\"ListboxOptions\")!\n const _component_Listbox = _resolveComponent(\"Listbox\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"w-full font-semibold\",\n onKeyup: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.handleInput && _ctx.handleInput(...args)))\n }, [\n _createVNode(_component_Listbox, {\n modelValue: _ctx.selectedItem,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedItem) = $event))\n }, {\n default: _withCtx(({ open }) => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_ListboxLabel, { class: \"text-sm tracking-normal text-black capitalize md:text-sm\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.name), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_ListboxButton, {\n class: _normalizeClass([{\n 'text-gray-900': _ctx.selectedItem.id != 0,\n 'focus:border-nominee-danger border-nominee-danger ': _ctx.error,\n 'focus:border-white border-gray-400 ': !_ctx.error,\n 'focus:border-white border-2 border-gray-900 ': open,\n }, \"relative w-full p-0 pl-3 pr-8 text-base font-light text-left text-gray-400 bg-white border border-gray-300 rounded-sm shadow sm:py-2 focus:outline-none focus:border focus:border-white h-9 md:h-10\"])\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"block truncate\", _ctx.selectedItem.id !== -1 && 'text-nominee-black'])\n }, _toDisplayString(_ctx.selectedItem.name), 3),\n _hoisted_2\n ]),\n _: 2\n }, 1032, [\"class\"]),\n _createVNode(_Transition, {\n \"enter-active-class\": \"transition duration-100 ease-in transform \",\n \"enter-from-class\": \"translate-y-1 opacity-0\",\n \"enter-to-class\": \"opacity-100\",\n \"leave-active-class\": \"transition duration-100 ease-in transform\",\n \"leave-from-class\": \"opacity-100 \",\n \"leave-to-class\": \"translate-y-1 opacity-0\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_ListboxOptions, {\n class: _normalizeClass([\"absolute text-left w-full py-1 mt-1 mb-1 overflow-auto text-xs font-light bg-gray-900 border-white rounded-md shadow-xl bg-opacity-90 backdrop-filter backdrop-blur-sm lg:max-h-80 max-h-80 ring-0 focus:outline-none sm:text-sm z-50\", _ctx.showOptionsAbove && 'bottom-full'])\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item) => {\n return (_openBlock(), _createBlock(_component_ListboxOption, {\n key: item.id,\n value: item,\n as: \"template\",\n class: \"p-2 border-white border-b-1 border-opacity-20\",\n onClick: _ctx.handleInput\n }, {\n default: _withCtx(({ active }) => [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\n active ? 'text-white bg-gray-400 bg-opacity-60' : 'text-gray-300',\n 'cursor-default select-none relative py-1 pl-10 pr-4',\n ])\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([_ctx.selectedItem.id === item.id ? 'font-semibold text-white' : 'font-normal', 'block truncate'])\n }, _toDisplayString(item.name), 3),\n (_ctx.selectedItem.id === item.id)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]),\n _: 2\n }, 1032, [\"value\", \"onClick\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"class\"])\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.error && _ctx.error != ' ')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_7, _toDisplayString(_ctx.error), 1))\n : _createCommentVNode(\"\", true)\n ])\n ], 32))\n}","\nimport { defineComponent, ref, PropType, watch } from 'vue';\nimport { Listbox, ListboxLabel, ListboxButton, ListboxOptions, ListboxOption } from '@headlessui/vue';\n\nexport default defineComponent({\n components: {\n Listbox,\n ListboxLabel,\n ListboxButton,\n ListboxOptions,\n ListboxOption,\n },\n props: {\n items: {\n type: Array as PropType>,\n default: () => [{}],\n },\n error: {\n type: String,\n default: '',\n },\n name: {\n type: String,\n default: null,\n },\n modelValue: {\n type: Object as PropType<{ id: number | string; name: string }>,\n default: null,\n },\n showOptionsAbove: {\n type: Boolean,\n default: false,\n },\n label: {\n type: String,\n default: 'Select option',\n },\n },\n emits: ['update:modelValue'],\n\n setup(props, context) {\n const selectedItem = ref({ name: props.label, id: -1 });\n // eslint-disable-next-line\n const handleInput = (event: any) => {\n context.emit('update:modelValue', selectedItem.value);\n };\n\n // eslint-disable-next-line no-undef\n watch(\n props.modelValue,\n () => {\n if (props.modelValue) {\n selectedItem.value.name = props.modelValue.name;\n selectedItem.value.id = props.modelValue.id as number;\n }\n },\n {\n immediate: true,\n }\n );\n\n return {\n selectedItem,\n handleInput,\n };\n },\n});\n","import { render } from \"./NFormSelect.vue?vue&type=template&id=04590346&scoped=true&ts=true\"\nimport script from \"./NFormSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./NFormSelect.vue?vue&type=script&lang=ts\"\n\nimport \"./NFormSelect.vue?vue&type=style&index=0&id=04590346&scoped=true&lang=css\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-04590346\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"sr-only\" }, \"Use setting\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Switch = _resolveComponent(\"Switch\")!\n\n return (_openBlock(), _createBlock(_component_Switch, {\n modelValue: _ctx.enabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.enabled) = $event)),\n class: _normalizeClass([_ctx.enabled ? 'bg-gray-900 bg-opacity-90' : 'bg-gray-900 bg-opacity-50', \"relative inline-flex flex-shrink-0 w-8 h-4 transition-colors duration-200 ease-in-out border-2 border-transparent rounded-full cursor-pointer md:h-5 md:w-10 focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75\"]),\n \"bind:checked\": _ctx.checked,\n onChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('change', $event.target.checked)))\n }, {\n default: _withCtx(() => [\n _hoisted_1,\n _createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: _normalizeClass([_ctx.enabled ? 'translate-x-4 md:translate-x-5' : 'translate-x-0', \"inline-block w-3 h-3 transition duration-200 ease-in-out transform bg-white rounded-full shadow-lg pointer-events-none md:h-4 md:w-4 ring-0\"])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"class\", \"bind:checked\"]))\n}","\nimport { defineComponent, ref } from 'vue';\nimport { Switch } from '@headlessui/vue';\n\nexport default defineComponent({\n name: 'NSwitch',\n components: { Switch },\n props: {\n checked: Boolean,\n name: {\n type: String,\n default: '',\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n },\n emits: ['change'],\n\n setup(props) {\n const enabled = ref(props.modelValue);\n\n return { enabled };\n },\n});\n","import { render } from \"./NSwitch.vue?vue&type=template&id=6fd7ee1e&ts=true\"\nimport script from \"./NSwitch.vue?vue&type=script&lang=ts\"\nexport * from \"./NSwitch.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.tag), { class: \"tracking-widest text-center text-gray-800 uppercase\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.content), 1)\n ]),\n _: 1\n }))\n}","\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n name: 'NTitle',\n props: {\n tag: {\n type: String,\n required: true,\n default: 'H1',\n },\n content: {\n type: String,\n default: 'Title',\n },\n },\n});\n","import { render } from \"./NTitle.vue?vue&type=template&id=ad13c11a&ts=true\"\nimport script from \"./NTitle.vue?vue&type=script&lang=ts\"\nexport * from \"./NTitle.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/app/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// 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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"13\":\"LandingPage\",\"28\":\"AdminVotesUsersByUsername\",\"38\":\"Notice\",\"82\":\"HistoryCycle\",\"97\":\"Profile\",\"104\":\"Country\",\"150\":\"signUp\",\"151\":\"AdminVotesUsersByCountry\",\"195\":\"AdminUserVotesEdit\",\"205\":\"HistoryBase\",\"213\":\"SetNewPassword\",\"222\":\"Rules\",\"256\":\"NominateSong\",\"278\":\"Finals\",\"294\":\"AdminVotes\",\"319\":\"HistorySearch\",\"363\":\"OgaeBase\",\"410\":\"Nationals\",\"438\":\"Login\",\"465\":\"HistoryCountry\",\"583\":\"Nominations\",\"603\":\"AdminSettings\",\"630\":\"OgaeCountries\",\"678\":\"CompetitionBase\",\"793\":\"OgaeCountry\",\"807\":\"HistoryCountries\",\"833\":\"AdminVotesUsersSearch\",\"841\":\"HistoryCycles\",\"989\":\"Base\"}[chunkId] || chunkId) + \"-legacy.\" + {\"13\":\"f8dd5d4f\",\"28\":\"9863e64d\",\"38\":\"5929acc0\",\"82\":\"e0d10867\",\"97\":\"aaf5fa85\",\"104\":\"b90b3af2\",\"150\":\"ec1daf6c\",\"151\":\"b17938e1\",\"195\":\"e9010b52\",\"205\":\"a4421c04\",\"213\":\"70642cdf\",\"222\":\"96570a02\",\"256\":\"bd013e03\",\"278\":\"9b4abf15\",\"294\":\"f3f81d62\",\"319\":\"3b0b6007\",\"363\":\"d667a6d5\",\"410\":\"24754721\",\"438\":\"3e46c89d\",\"465\":\"f0b6d2dd\",\"543\":\"4ca23ff6\",\"583\":\"24df502a\",\"603\":\"6ba2cdea\",\"630\":\"83d88816\",\"676\":\"9f32ac1f\",\"678\":\"673c120c\",\"793\":\"c167bb0b\",\"807\":\"83358b0e\",\"833\":\"a7fd1952\",\"841\":\"dbf54ecc\",\"989\":\"d44c1171\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\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); }","var inProgress = {};\nvar dataWebpackPrefix = \"client-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// 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__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\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[\"webpackChunkclient_app\"] = self[\"webpackChunkclient_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__(8017); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_hoisted_1","class","render","_ctx","_cache","$props","$setup","$data","$options","_component_SignUpForm","_component_LoginForm","_component_ResetPassword","_component_ModalBase","_component_Sidebar","_component_router_view","_","default","key","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","xmlns","fill","viewBox","stroke","d","_hoisted_6","_component_DialogOverlay","_component_TransitionChild","_component_Dialog","_component_TransitionRoot","appear","show","isOpen","as","static","open","onClose","closeModal","enter","leave","onClick","args","$slots","name","components","TransitionRoot","TransitionChild","Dialog","DialogOverlay","setup","store","state","showModal","dispatch","__exports__","_hoisted_7","_component_SidebarContent","closeSidebar","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_component_NominateButton","$route","path","goToProfile","user","userName","usersCountryPath","country","length","goToUsersCountry","src","icon","toLowerCase","goHome","includes","goToCompetition","goToOgae","goToHistory","goToRules","goToAdmin","logOut","isLoggedIn","goToSignUp","goToLogin","NominateButton","router","isUserAdmin","value","isAdmin","isGlobalPhase","currentPhase","type","undefined","push","SidebarContent","showSidebar","_component_NTitle","_component_NSwitch","_component_NFormInput","_component_NFormButton","_component_FormSuccsess","requestSuccsess","tag","content","onKeyup","submitForm","onSubmit","useUsername","emailButtonClick","modelValue","$event","resetAllErrors","usernameButtonClick","usernameInput","error","usernameStatus","message","placeholder","onInputChanged","resetUsernameStatus","emailInput","emailStatus","resetEmailStatus","resetPasswordResponseError","detail","disabled","valid","isProcessingRequest","loading","title","onButtonClick","NFormInput","NFormButton","NTitle","NSwitch","FormSuccsess","submitButtonClicked","min","max","setTimeout","resUsername","status","data","alert","resEmail","ModalBase","SignUpForm","LoginForm","ResetPassword","Sidebar","showSignUpModal","showLogInModal","showResetPasswordModal","routes","component","props","children","meta","requiresAuth","onlyNationalPhase","checkIfUserAlreadyNominatedSong","alias","requiresAdminRole","history","beforeEach","to","from","next","onlyGlobalPhase","nominatedSong","App","use","position","mount","ActionTypes","actions","HideModal","commit","HideSidebar","ShowSidebar","ShowSignUpModal","ShowLogInModal","ShowResetPasswordModal","Login","username","password","stayLoggedIn","result","accessToken","Logout","CheckIfLoggedIn","userData","accessTokenLocalStorage","accessTokenSessionStorage","GetCurrentPhase","currentPhaseLocalStorage","GetAllCountries","countriesFromStore","Array","isArray","countriesFromLocalStorage","countryList","GetActiveCountries","GetAccessToken","tokenFromStore","tokenFromLocalStorage","tokenFromSessionStorage","RefreshLoggedInUserData","allCountries","getters","getCurrentPhase","plugins","mutations","useStore","MutationType","SetShowModal","showModalValue","SetShowSidebar","showSidebarValue","SetSignUpModal","ShowSignUpModalValue","SetLogInModal","ShowLogInModalValue","SetResetPasswordModal","ShowResetPasswordModalValue","SetIsLoggedIn","SetUser","SetAccessToken","SetCurrentPhase","DeleteUser","DeleteAccesToken","DeleteCurrentPhase","SetAllCountries","PhaseType","ApiStatus","API_URL","authHeader","JSON","parse","Authorization","Promise","response","OK","UncaughtError","CaughtError","SignUp","newUser","ResetPasswordWithUsername","ResetPasswordWithEmail","email","SetNewPassword","token","newPassword","GetAllActiveCountries","GetSongsForCountry","countryId","ChangeName","firstName","lastName","headers","ChangeEmail","newEmail","GetLoggedInUserData","ChangePassword","oldPassword","ChangeCountry","newCountryId","NominateSong","songName","songLink","VoteSongNational","songId","voteWeight","VoteSongGlobal","GetWinningSongs","DeleteSong","GetGlobalVoteData","cycleId","SetScoreWizLink","scoreWizLink","localStorage","setItem","stringify","SetCountryList","getItem","GetCountryList","DeleteLoggedInUser","removeItem","DeleteAccessToken","sessionStorage","required","options","validate","validators","validator","re","test","String","ytLinkRegex","match","userHasNominatedSong","isNationalPhase","nominationsOnly","style","goToNominateSong","buttonName","$emit","showSuccsess","Boolean","emits","loginFailed","passwordInput","passwordStatus","resetPasswordStatus","goToForgotPassword","isProcessingLoginRequest","route","_component_NFormSelect","signUpIsSuccsessful","firstNameInput","firstNameStatus","resetFirstNameStatus","lastNameInput","lastNameStatus","resetLastNameStatus","passwordConfirmInput","selectedCountryInput","items","label","countryStatus","resetCountryStatus","submitButtonDisabled","isProcessingSignUpRequest","useSignUpValidation","signUpResponseErrors","validateFirstName","validateLastName","validateUsername","validateEmail","validatePassword","firstNameValidation","lastNameValidation","emailValidation","passwordValidation","id","NFormSelect","firstname","lastname","countryid","res","cx","cy","r","color","for","autocomplete","onInput","handleInput","Number","context","event","emit","target","_withScopeId","n","_component_ListboxLabel","_component_ListboxButton","_component_ListboxOption","_component_ListboxOptions","_component_Listbox","selectedItem","showOptionsAbove","item","active","Listbox","ListboxLabel","ListboxButton","ListboxOptions","ListboxOption","Object","immediate","_component_Switch","enabled","checked","onChange","Switch","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","getter","__esModule","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","bind","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","promise","resolve","reject","Error","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}