{"version":3,"file":"js/chunk-common.5982eb80.js","mappings":"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,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,GACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,IACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,IACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,OAIb,SAASs3C,EAAeC,GACvB,IAAIn/C,EAAKo/C,EAAsBD,GAC/B,OAAOE,EAAoBr/C,EAC5B,CACA,SAASo/C,EAAsBD,GAC9B,IAAIE,EAAoB1jD,EAAEiM,EAAKu3C,GAAM,CACpC,IAAI1jD,EAAI,IAAIse,MAAM,uBAAyBolC,EAAM,KAEjD,MADA1jD,EAAEs4C,KAAO,mBACHt4C,CACP,CACA,OAAOmM,EAAIu3C,EACZ,CACAD,EAAeI,KAAO,WACrB,OAAOt3C,OAAOs3C,KAAK13C,EACpB,EACAs3C,EAAetzC,QAAUwzC,EACzBjhD,EAAOC,QAAU8gD,EACjBA,EAAel/C,GAAK,K","sources":["webpack://fd-xla/./.modernizrrc","webpack://fd-xla/./src/components/auth/SecureMobileModal.vue?058a","webpack://fd-xla/./src/components/auth/SignUpFormModal.vue?edfa","webpack://fd-xla/./src/components/auth/SimpleEmailLoginModal.vue?06fd","webpack://fd-xla/./src/components/auth/SimpleMobileModal.vue?a782","webpack://fd-xla/./src/components/header/common/CampaignHeader.vue?617f","webpack://fd-xla/./src/components/header/common/LoginBar.vue?5955","webpack://fd-xla/./src/campaigns/voting/models/displayableVotingCategory.class.ts","webpack://fd-xla/./src/campaigns/voting/models/displayableVotingCategoryType.class.ts","webpack://fd-xla/./src/campaigns/voting/models/displayableVotingItem.class.ts","webpack://fd-xla/./src/campaigns/voting/services/voting.service.ts","webpack://fd-xla/./src/campaigns/voting/services/votingItems.service.ts","webpack://fd-xla/./src/campaigns/voting/services/votingVotes.service.ts","webpack://fd-xla/./src/common/authentication.dictionary.ts","webpack://fd-xla/./src/common/languages.dictionary.ts","webpack://fd-xla/./src/common/visualType.dictionary.ts","webpack://fd-xla/./src/mixins/i18n.mixin.ts","webpack://fd-xla/./src/mixins/loadingIndicator.mixin.ts","webpack://fd-xla/./src/mixins/sharing.mixin.ts","webpack://fd-xla/./src/services/auth/auth.service.ts","webpack://fd-xla/./src/services/auth/authFields.service.ts","webpack://fd-xla/./src/services/auth/authModal.service.ts","webpack://fd-xla/./src/services/auth/campaignAppAuthenticationOptions.service.ts","webpack://fd-xla/./src/services/auth/embedding.service.ts","webpack://fd-xla/./src/services/auth/iFrameHandler.service.ts","webpack://fd-xla/./src/services/auth/identityClientConfiguration.service.ts","webpack://fd-xla/./src/services/auth/phoneAuth.service.ts","webpack://fd-xla/./src/services/auth/providers/openIDClientAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/providers/secureMobileAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/providers/simpleEmailAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/providers/simpleMobileAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/utility/authCommonError.service.ts","webpack://fd-xla/./src/services/bootstrapper.service.ts","webpack://fd-xla/./src/services/browserCompatibility.service.ts","webpack://fd-xla/./src/services/campaignApp.service.ts","webpack://fd-xla/./src/services/campaignState.service.ts","webpack://fd-xla/./src/services/campaignStatus.service.ts","webpack://fd-xla/./src/services/customCSS.service.ts","webpack://fd-xla/./src/services/customJS.service.ts","webpack://fd-xla/./src/services/document.service.ts","webpack://fd-xla/./src/services/error.service.ts","webpack://fd-xla/./src/common/application.dictionary.ts","webpack://fd-xla/./src/services/facebook.service.ts","webpack://fd-xla/./src/services/files.service.ts","webpack://fd-xla/./src/services/googleAnalytics.service.ts","webpack://fd-xla/./src/services/http.service.ts","webpack://fd-xla/./src/services/languages.service.ts","webpack://fd-xla/./src/services/translations.service.ts","webpack://fd-xla/./src/services/i18n.service.ts","webpack://fd-xla/./src/services/json.service.ts","webpack://fd-xla/./src/services/localStorage.service.ts","webpack://fd-xla/./src/services/loginState.service.ts","webpack://fd-xla/./src/services/modal.service.ts","webpack://fd-xla/./src/services/privateData.service.ts","webpack://fd-xla/./src/services/publicData.service.ts","webpack://fd-xla/./src/services/settings.service.ts","webpack://fd-xla/./src/services/sports/campaignSportsHeader.service.ts","webpack://fd-xla/./src/services/stateProcessor.service.ts","webpack://fd-xla/./src/services/url.service.ts","webpack://fd-xla/./src/utils/dateFormatter.helper.ts","webpack://fd-xla/./src/utils/string.ts","webpack://fd-xla/./src/utils/utils.ts","webpack://fd-xla/./src/components/content/DisplayableItemIngress.vue?b72a","webpack://fd-xla/./src/components/content/DisplayableItemIngress.vue","webpack://fd-xla/./src/campaigns/voting/components/ListVotingItem.vue?fab4","webpack://fd-xla/./src/campaigns/voting/components/ListVotingItem.vue","webpack://fd-xla/./src/components/VideoObject.vue?8bfa","webpack://fd-xla/./src/components/VideoObject.vue","webpack://fd-xla/./src/campaigns/voting/components/VotingItemImageCarousel.vue?a12d","webpack://fd-xla/./src/campaigns/voting/components/VotingItemImageCarousel.vue","webpack://fd-xla/./src/campaigns/voting/components/VotingItem.vue?4d52","webpack://fd-xla/./src/campaigns/voting/components/VotingItem.vue","webpack://fd-xla/./src/components/AlertBox.vue?5973","webpack://fd-xla/./src/components/AlertBox.vue","webpack://fd-xla/./src/components/DialogModal.vue?d036","webpack://fd-xla/./src/components/DialogModal.vue","webpack://fd-xla/./src/components/FullscreenModal.vue?a0b7","webpack://fd-xla/./src/components/FullscreenModal.vue","webpack://fd-xla/./src/components/LoadIndicator.vue","webpack://fd-xla/./src/components/LoadIndicator.vue?6334","webpack://fd-xla/./src/components/ModalContainer.vue?0206","webpack://fd-xla/./src/components/ModalContainer.vue","webpack://fd-xla/./src/components/PaginationComponent.vue?6b04","webpack://fd-xla/./src/components/PaginationComponent.vue","webpack://fd-xla/./src/components/PostParticipationAction.vue?c4c3","webpack://fd-xla/./src/components/PostParticipationAction.vue","webpack://fd-xla/./src/components/auth/AuthSelectionModal.vue?45b2","webpack://fd-xla/./src/components/auth/AuthSelectionModal.vue","webpack://fd-xla/./src/services/auth/utility/labelTranslationHelper.service.ts","webpack://fd-xla/./src/components/auth/FormField.vue?9c6d","webpack://fd-xla/./src/components/auth/FormField.vue","webpack://fd-xla/./src/components/auth/SecureMobileModal.vue","webpack://fd-xla/./src/components/auth/SignUpFormModal.vue","webpack://fd-xla/./src/components/auth/SimpleEmailLoginModal.vue","webpack://fd-xla/./src/components/auth/SimpleMobileModal.vue","webpack://fd-xla/./src/components/content/AuthenticationDescription.vue?6da1","webpack://fd-xla/./src/components/content/AuthenticationDescription.vue","webpack://fd-xla/./src/components/content/OutsideActivityMsg.vue?6f68","webpack://fd-xla/./src/components/content/OutsideActivityMsg.vue","webpack://fd-xla/./src/components/footer/DefaultPrivacyPolicyTemplate.vue","webpack://fd-xla/./src/components/footer/DefaultPrivacyPolicyTemplate.vue?e2b1","webpack://fd-xla/./src/components/footer/CopyrightAndPrivacyPolicy.vue?154d","webpack://fd-xla/./src/components/footer/CopyrightAndPrivacyPolicy.vue","webpack://fd-xla/./src/components/footer/CampaignFooter.vue?8cf4","webpack://fd-xla/./src/components/footer/CampaignFooter.vue","webpack://fd-xla/./src/components/footer/TermsAndConditionsContent.vue?bb4d","webpack://fd-xla/./src/components/footer/TermsAndConditionsContent.vue","webpack://fd-xla/./src/components/footer/TermsAndConditions.vue?eb5f","webpack://fd-xla/./src/components/footer/TermsAndConditions.vue","webpack://fd-xla/./src/components/header/SportsMatchHeader.vue?1f66","webpack://fd-xla/./src/components/header/SportsMatchHeader.vue","webpack://fd-xla/./src/components/header/common/CampaignHeader.vue","webpack://fd-xla/./src/components/header/common/SponsorLogo.vue?80e4","webpack://fd-xla/./src/components/header/common/SponsorLogo.vue","webpack://fd-xla/./src/components/header/common/FacebookShare.vue?fecb","webpack://fd-xla/./src/components/header/common/FacebookShare.vue","webpack://fd-xla/./src/services/prizeAssignments.service.ts","webpack://fd-xla/./src/components/PrizesCarousel.vue?ee0f","webpack://fd-xla/./src/components/PrizesCarousel.vue","webpack://fd-xla/./src/components/header/common/HeaderContent.vue?cf32","webpack://fd-xla/./src/components/header/common/HeaderContent.vue","webpack://fd-xla/./src/components/header/common/LanguageSwitcher.vue?32d7","webpack://fd-xla/./src/components/header/common/LanguageSwitcher.vue","webpack://fd-xla/./src/components/header/common/LoginBar.vue","webpack://fd-xla/./src/components/header/common/TopBanner.vue?5b6d","webpack://fd-xla/./src/components/header/common/TopBanner.vue","webpack://fd-xla/./src/assets/campaigns/sportsMatchHeader/ sync ^\\.\\/.*$","webpack://fd-xla/./src/assets/images/flags/ sync ^\\.\\/.*\\.png$"],"sourcesContent":[";(function(window){\n var hadGlobal = 'Modernizr' in window;\n var oldGlobal = window.Modernizr;\n /*! modernizr 3.13.0 (Custom Build) | MIT *\n * https://modernizr.com/download/?-cookies-localstorage-sessionstorage !*/\n!function(e,n,o,t){function s(e,n){return typeof e===n}var i=[],r={_version:\"3.13.0\",_config:{classPrefix:\"\",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var o=this;setTimeout(function(){n(o[e])},0)},addTest:function(e,n,o){i.push({name:e,fn:n,options:o})},addAsyncTest:function(e){i.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=r,Modernizr=new Modernizr;var a=[];Modernizr.addTest(\"cookies\",function(){try{o.cookie=\"cookietest=1\";var e=-1!==o.cookie.indexOf(\"cookietest=\");return o.cookie=\"cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT\",e}catch(e){return!1}}),Modernizr.addTest(\"localstorage\",function(){var e=\"modernizr\";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}}),Modernizr.addTest(\"sessionstorage\",function(){var e=\"modernizr\";try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(e){return!1}}),function(){var e,n,o,t,r,c,f;for(var u in i)if(i.hasOwnProperty(u)){if(e=[],n=i[u],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(o=0;o[] = [\n ref({\n id: \"phoneNumber\",\n isEnabled: true,\n isRequired: true,\n customLabel: null,\n type: \"tel\",\n isMandatory: false,\n value: null,\n valid: undefined,\n visited: false,\n }),\n ref({\n id: \"smsToken\",\n customLabelTranslationKey: \"global.campaignAuthentication.txt_smsToken\",\n isEnabled: true,\n isRequired: false,\n customLabel: null,\n type: \"text\",\n inputMode: \"numeric\",\n isMandatory: false,\n value: null,\n valid: undefined,\n visited: false,\n pattern: new RegExp(/^\\d{6}$/).source,\n }),\n];\n\nconst phoneAuthField = authFields[0];\nconst smsTokenField = authFields[1];\n\nconst isFormInValid = computed(\n () =>\n !phoneAuthField.value.valid ||\n (!smsTokenField.value.valid && userHasToken.value) ||\n isRecaptchaEmpty.value ||\n showRecaptchaRequiredMessage.value\n);\n\nconst isRecaptchaEmpty = ref(true);\n\nconst isLoading = ref(false);\nconst phoneCheckupErrorMessageKey = ref(null);\n\nconst userHasToken = ref(false);\n\nconst showRecaptchaRequiredMessage = ref(false);\n\nconst recaptchaSuccess = () => {\n isRecaptchaEmpty.value = false;\n};\n\nconst recaptchaExpired = () => {\n isRecaptchaEmpty.value = true;\n};\n\nonMounted(() => {\n isLoading.value = true;\n\n const script = document.createElement(\"script\");\n script.setAttribute(\n \"src\",\n \"https://www.google.com/recaptcha/api.js?render=explicit\"\n );\n\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n\n script.onload = () => {\n // wait until grecaptcha.render is defined\n var initCaptchaInterval = setInterval(() => {\n if (\n typeof window.grecaptcha !== \"undefined\" &&\n typeof window.grecaptcha.render !== \"undefined\"\n ) {\n clearInterval(initCaptchaInterval);\n window.grecaptcha.render(\"google-recaptcha\", {\n sitekey: ENV_GLOBALS.RECAPTCHA_SITE_KEY,\n callback: recaptchaSuccess,\n \"expired-callback\": recaptchaExpired,\n });\n isLoading.value = false;\n }\n }, 200);\n };\n});\n\nfunction fieldUpdated(\n newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n },\n field: FormFieldDefinition\n) {\n if (phoneAuthField.value.id === field.id) {\n phoneAuthField.value = { ...field, ...newValue };\n } else {\n smsTokenField.value = {\n ...field,\n ...newValue,\n isRequired: userHasToken.value,\n };\n }\n\n phoneCheckupErrorMessageKey.value = null;\n}\n\nfunction submitForm() {\n if (!phoneAuthField.value.value) {\n return;\n }\n\n if (!window.grecaptcha) {\n return;\n }\n\n if (!window.grecaptcha.getResponse()) {\n showRecaptchaRequiredMessage.value = true;\n return;\n }\n\n isLoading.value = true;\n\n if (!userHasToken.value) {\n executeSMSTokenRequest({\n phoneNumber: phoneAuthField.value.value as string,\n recaptchaToken: window.grecaptcha.getResponse(),\n })\n .then(\n () => {\n userHasToken.value = true;\n },\n (error: Response) => {\n const statusToError: Record = {\n 400: \"invalidPhoneNumber\",\n 401: \"invalidRecaptcha\",\n 429: \"exceededRetries\",\n 500: \"unknownReason\",\n };\n\n window.grecaptcha.reset();\n phoneCheckupErrorMessageKey.value = `global.campaignAuthentication.smsToken.err_${\n statusToError[error.status]\n }`;\n }\n )\n .finally(() => {\n isLoading.value = false;\n });\n } else {\n executePhoneNumberLookup({\n phoneNumber: phoneAuthField.value.value as string,\n recaptchaToken: window.grecaptcha.getResponse(),\n smsToken: smsTokenField.value.value as string,\n })\n .then(\n (ls: ILoginState) => {\n setLoginState({\n ...ls,\n phoneNumber: phoneAuthField.value.value as string,\n authenticationType: authProgress.value?.authOption?._type as string,\n campaignAppGuid: campaignApp.guid,\n recaptchaToken: window.grecaptcha.getResponse(),\n smsToken: smsTokenField.value.value as string,\n });\n\n enforceRequiredAuthFields();\n\n emit(\"confirm\", loginState.value as ILoginState);\n },\n (error: Response) => {\n smsTokenField.value.value = null;\n smsTokenField.value.visited = false;\n smsTokenField.value.valid = undefined;\n\n userHasToken.value = false;\n window.grecaptcha.reset();\n\n const statusToError: Record = {\n 400: \"invalidPhoneNumber\",\n 401: \"invalidSmsToken\",\n 500: \"unknownReason\",\n };\n let errorKey = statusToError[error.status];\n\n if (currentModal.value.model?.isLogIn && error.status === 401) {\n errorKey = \"invalidPhoneNumberOrSmsToken\";\n }\n\n phoneCheckupErrorMessageKey.value = `global.campaignAuthentication.smsToken.err_${errorKey}`;\n\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.category,\n \"AUTH_MOBILE_TOKEN_ERROR\"\n );\n }\n )\n .finally(() => {\n isLoading.value = false;\n });\n }\n}\n\nfunction enforceRequiredAuthFields() {\n const phoneAuthField = getAuthFields().find((af) => af.id === \"phoneNumber\");\n\n if (phoneAuthField) {\n phoneAuthField.isReadOnly = true;\n }\n}\n\nfunction closeModal() {\n userHasToken.value = false;\n emit(\"close\", { message: \"AUTH_MOBILE_CANCELLED\" });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_header\")), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n (!isLoading.value)\n ? (_openBlock(), _createElementBlock(\"form\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(FormField, {\n field: _unref(phoneAuthField),\n \"onUpdate:field\": _cache[0] || (_cache[0] = ($event: any) => (fieldUpdated($event, _unref(phoneAuthField))))\n }, null, 8, [\"field\"])\n ]),\n (!userHasToken.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_userHasTokenAlready\")), 1),\n _cache[5] || (_cache[5] = _createElementVNode(\"span\", { class: \"px-5\" }, \"-\", -1))\n ]),\n _createElementVNode(\"a\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (userHasToken.value = !userHasToken.value)),\n class: \"hover:underline text-sky-600\",\n href: \"javascript:;\"\n }, _toDisplayString(_unref($ttt)(\"global.txt_clickHere\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (userHasToken.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(FormField, {\n field: _unref(smsTokenField),\n \"onUpdate:field\": _cache[2] || (_cache[2] = ($event: any) => (fieldUpdated($event, _unref(smsTokenField))))\n }, null, 8, [\"field\"])\n ]))\n : _createCommentVNode(\"\", true),\n (phoneCheckupErrorMessageKey.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_unref($ttt)(phoneCheckupErrorMessageKey.value)), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _cache[6] || (_cache[6] = _createElementVNode(\"div\", {\n class: \"mb-10\",\n id: \"google-recaptcha\"\n }, null, -1)),\n (showRecaptchaRequiredMessage.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.field.txt_fieldRequired\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (isLoading.value)\n ? (_openBlock(), _createBlock(LoadIndicator, { key: 1 }))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_signUp\")), 9, _hoisted_13)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = { class: \"py-20 flex flex-col justify-start\" }\nconst _hoisted_3 = { class: \"flex justify-end\" }\nconst _hoisted_4 = [\"disabled\"]\n\nimport { computed, ref, Ref } from \"vue\";\nimport DialogModal from \"../DialogModal.vue\";\nimport FormField from \"@/components/auth/FormField.vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport TermsAndConditions from \"@/components/footer/TermsAndConditions.vue\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport {\n loginState,\n patchLoginState,\n setLoginStateBasedOnForm,\n} from \"@/services/loginState.service\";\nimport { authProgress } from \"@/services/auth/auth.service\";\nimport AuthenticationDescription from \"../content/AuthenticationDescription.vue\";\nimport {\n getAuthFields,\n resetAuthFields,\n} from \"@/services/auth/authFields.service\";\nimport { AuthenticationFieldTypes } from \"@/common/authentication.dictionary\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SignUpFormModal',\n emits: [\"confirm\", \"close\"],\n setup(__props, { emit: __emit }) {\n\nconst emit = __emit;\n\nlet authFields: Ref = ref(getAuthFields());\n\nfunction fieldUpdated(\n newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n },\n index: number\n) {\n authFields.value[index] = { ...authFields.value[index], ...newValue };\n}\n\nconst isFormInValid = computed(() =>\n authFields.value.some(\n (v) =>\n (!v.isRequired && v.valid === false) ||\n (v.isRequired && !v.valid && v.type !== \"hidden\")\n )\n);\n\nfunction submitForm() {\n if (isFormInValid.value) {\n return;\n }\n\n if (\n !authProgress.value?.authOption &&\n !loginState.value?.authenticationType\n ) {\n return;\n }\n\n mapConsentTextCheckboxesToConsentTextIds();\n purifyAuthFields();\n setLoginStateBasedOnForm(\n authFields.value,\n authProgress.value?.authOption?._type ||\n loginState.value?.authenticationType\n );\n\n emit(\"confirm\", loginState.value as ILoginState);\n closeModal();\n}\n\nfunction closeModal() {\n resetAuthFields();\n emit(\"close\");\n}\n\nfunction mapConsentTextCheckboxesToConsentTextIds() {\n const consentTextIds = authFields.value.find(\n (field) => field.id === \"consentTextIds\"\n );\n\n if (consentTextIds) {\n consentTextIds.value = authFields.value\n .filter((field) => field.type === \"consentTexts\" && field.value === true)\n .map((f) => Number(f.id));\n }\n}\n\nfunction purifyAuthFields() {\n authFields.value = authFields.value.filter(\n (authField) => authField.type !== \"consentTexts\"\n );\n}\n\n// Map loginState values to auth fields\nif (loginState.value) {\n const consentTextsIds = Object.entries(loginState.value as ILoginState).find(\n (field) => field[0] === \"consentTextIds\"\n )?.[1] as number[];\n\n // Mark checked consentsTexts\n if (consentTextsIds) {\n patchLoginState(Object.fromEntries(consentTextsIds.map((c) => [c, true])));\n }\n\n // Fill auth form values\n Object.entries(loginState.value as ILoginState).forEach((field) => {\n const [fieldKey, fieldValue] = field;\n\n const authField = authFields.value.find(\n (authField) => authField.id === fieldKey\n );\n\n if (!authField) {\n return;\n }\n\n authField.value = fieldValue as\n | string\n | number\n | boolean\n | number[]\n | null\n | undefined;\n\n if (authField.id === \"phoneNumber\" && authField.value) {\n authField.value = (authField.value as string).replace(\"tel:\", \"\");\n } else if (authField.id === \"phoneNumber\") {\n // tel-input needs empty string instead of null or undefined\n authField.value = \"\";\n } else if (authField.id === \"gender\" && authField.value) {\n authField.value = $ttt(\n `global.campaignAuthentication.field.option.gender.txt_${authField.value}`\n );\n } else if (\n authField.type === AuthenticationFieldTypes.DATE_TIME &&\n authField.value\n ) {\n authField.value = prepareDateAuthFieldValue(authField);\n }\n\n if (fieldValue) {\n authField.valid = true;\n }\n });\n}\n\nfunction prepareDateAuthFieldValue(authField: FormFieldDefinition) {\n let date = cutOffTimezonePart(new Date(authField.value as string));\n\n if (!authField.includeTime) {\n date = date.slice(0, 10);\n }\n\n return date;\n}\n\nfunction cutOffTimezonePart(date: Date) {\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, \"0\");\n const day = date.getDate().toString().padStart(2, \"0\");\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n\n return `${year}-${month}-${day}T${hours}:${minutes}`;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_header\")), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n _createElementVNode(\"form\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(authFields), (authField, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: authField.id,\n class: \"w-full text-left mb-15\"\n }, [\n _createVNode(FormField, {\n field: authField,\n \"onUpdate:field\": ($event: any) => (fieldUpdated($event, index))\n }, null, 8, [\"field\", \"onUpdate:field\"])\n ]))\n }), 128)),\n _createVNode(TermsAndConditions, {\n class: \"text-center\",\n \"text-color\": 'inherit'\n })\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_signUp\")), 9, _hoisted_4)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = { class: \"py-20 flex flex-col justify-start\" }\nconst _hoisted_3 = { class: \"w-full text-left mb-15\" }\nconst _hoisted_4 = { class: \"flex justify-end\" }\nconst _hoisted_5 = [\"disabled\"]\n\nimport { computed, ref } from \"vue\";\nimport DialogModal from \"@/components/DialogModal.vue\";\nimport FormField from \"@/components/auth/FormField.vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { OptionTypes } from \"@/common/authentication.dictionary\";\nimport {\n loginState,\n setLoginStateBasedOnForm,\n} from \"@/services/loginState.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport AuthenticationDescription from \"../content/AuthenticationDescription.vue\";\n\nconst SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME = \"SIMPLE_EMAIL_LOGIN_CANCELLED\";\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SimpleEmailLoginModal',\n emits: [\"confirm\", \"close\"],\n setup(__props, { emit: __emit }) {\n\nconst emit = __emit;\n\nconst email = ref({\n id: \"email\",\n isEnabled: true,\n isRequired: true,\n customLabel: null,\n type: \"email\",\n isMandatory: true,\n value: null,\n valid: undefined,\n visited: false,\n});\n\nfunction fieldUpdated(newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n}) {\n email.value = { ...email.value, ...newValue };\n}\n\nconst isFormInValid = computed(() => !email.value.valid);\n\nfunction submitForm() {\n setLoginStateBasedOnForm([email.value], OptionTypes.FORM);\n emit(\"confirm\", loginState.value as ILoginState);\n}\n\nfunction closeModal() {\n emit(\"close\", { message: SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\n \"global.campaignAuthentication.simpleEmailLogInModal.hdr_loginWithEmail\"\n )), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n _createElementVNode(\"form\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(FormField, {\n field: email.value,\n \"onUpdate:field\": _cache[0] || (_cache[0] = ($event: any) => (fieldUpdated($event)))\n }, null, 8, [\"field\"])\n ])\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_ok\")), 9, _hoisted_5)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"py-20 flex flex-col justify-start\"\n}\nconst _hoisted_3 = { class: \"w-full text-left mb-15\" }\nconst _hoisted_4 = { class: \"flex justify-end\" }\nconst _hoisted_5 = [\"disabled\"]\n\nimport { computed, ref } from \"vue\";\nimport DialogModal from \"@/components/DialogModal.vue\";\nimport FormField from \"@/components/auth/FormField.vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport LoadIndicator from \"@/components/LoadIndicator.vue\";\nimport { executePhoneNumberLookup } from \"@/services/auth/phoneAuth.service\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport {\n GOOGLE_ANALYTICS_EVENTS,\n sendCampaignEvent,\n} from \"@/services/googleAnalytics.service\";\nimport { setLoginState, loginState } from \"@/services/loginState.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { authProgress } from \"@/services/auth/auth.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport AuthenticationDescription from \"../content/AuthenticationDescription.vue\";\nimport { getAuthFields } from \"@/services/auth/authFields.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SimpleMobileModal',\n emits: [\"confirm\", \"close\", \"error\"],\n setup(__props, { emit: __emit }) {\n\nconst emit = __emit;\n\nconst phone = ref({\n id: \"phoneNumber\",\n isEnabled: true,\n isRequired: false,\n customLabel: null,\n type: \"tel\",\n isMandatory: false,\n value: null,\n valid: undefined,\n visited: false,\n});\n\nconst isFormInValid = computed(() => !phone.value.valid);\n\nconst isLoading = ref(false);\nconst phoneCheckupErrorMessageKey = ref(null);\n\nfunction fieldUpdated(newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n}) {\n phone.value = { ...phone.value, ...newValue };\n}\n\nfunction submitForm() {\n if (!phone.value.value) {\n return;\n }\n\n isLoading.value = true;\n\n executePhoneNumberLookup({ phoneNumber: phone.value.value as string })\n .then(\n (ls: ILoginState) => {\n setLoginState({\n ...ls,\n phoneNumber: phone.value.value as string,\n authenticationType: authProgress.value?.authOption?._type as string,\n campaignAppGuid: campaignApp.guid,\n });\n\n enforceRequiredAuthFields();\n\n emit(\"confirm\", loginState.value as ILoginState);\n },\n (error: Response) => {\n const statusToError: Record = {\n 400: \"invalidPhoneNumber\",\n 401: \"invalidSmsToken\",\n 500: \"unknownReason\",\n };\n phoneCheckupErrorMessageKey.value = `global.campaignAuthentication.smsToken.err_${\n statusToError[error.status]\n }`;\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.category,\n \"AUTH_MOBILE_TOKEN_ERROR\"\n );\n }\n )\n .finally(() => {\n isLoading.value = false;\n });\n}\n\nfunction enforceRequiredAuthFields() {\n const phoneAuthField = getAuthFields().find((af) => af.id === \"phoneNumber\");\n\n if (phoneAuthField) {\n phoneAuthField.isReadOnly = true;\n }\n}\n\nfunction closeModal() {\n emit(\"close\", { message: \"AUTH_MOBILE_CANCELLED\" });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_header\")), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n (!isLoading.value)\n ? (_openBlock(), _createElementBlock(\"form\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(FormField, {\n field: phone.value,\n \"onUpdate:field\": _cache[0] || (_cache[0] = ($event: any) => (fieldUpdated($event)))\n }, null, 8, [\"field\"])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (isLoading.value)\n ? (_openBlock(), _createBlock(LoadIndicator, { key: 1 }))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_ok\")), 9, _hoisted_5)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, unref as _unref, createVNode as _createVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-header-background-color text-header-text-color\" }\n\nimport LanguageSwitcher from \"./LanguageSwitcher.vue\";\nimport TopBanner from \"./TopBanner.vue\";\nimport HeaderContent from \"./HeaderContent.vue\";\nimport LoginBar from \"./LoginBar.vue\";\nimport { hasLoginSupport } from \"@/services/campaignApp.service\";\nimport { hasCMTokenInURL } from \"@/services/url.service\";\nimport SportsMatchHeader from \"../SportsMatchHeader.vue\";\nimport { hasSportsHeaderEnabled } from \"@/services/sports/campaignSportsHeader.service\";\n\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CampaignHeader',\n props: {\n canShowLanguageSwitcher: {\n type: Boolean,\n default: true,\n },\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"header\", _hoisted_1, [\n (__props.canShowLanguageSwitcher)\n ? (_openBlock(), _createBlock(LanguageSwitcher, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(hasSportsHeaderEnabled))\n ? (_openBlock(), _createBlock(SportsMatchHeader, { key: 1 }))\n : _createCommentVNode(\"\", true),\n _createVNode(TopBanner),\n (_unref(hasLoginSupport)() && !_unref(hasCMTokenInURL)())\n ? (_openBlock(), _createBlock(LoginBar, { key: 2 }))\n : _createCommentVNode(\"\", true),\n _createVNode(HeaderContent)\n ]))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeStyle as _normalizeStyle, Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"mobileXl:flex mobileXl:justify-end mobileXl:items-center bg-header-text-color/5 text-header-text-color w-[70%] mobileXl:w-full mt-60 mobileXl:mt-20 m-20 mb-0 p-20 rounded-small\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"flex flex-col flex-wrap mobileXl:w-full mobileXl:flex-row mobileXl:justify-between mobileXl:items-center\"\n}\nconst _hoisted_4 = { class: \"mobileXl:inline-flex mobileXl:gap-10\" }\nconst _hoisted_5 = { class: \"mb-10 mobileXl:mb-0 overflow-hidden text-ellipsis whitespace-nowrap\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"font-bold ml-5\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"opacity-50 mobileXl:opacity-100 mobileXl:font-bold break-words whitespace-normal leading-6\"\n}\n\nimport {\n faCheck,\n faBuilding,\n faMobileAlt,\n faSignInAlt,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { faIdCard } from \"@fortawesome/free-regular-svg-icons\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { ref, watch } from \"vue\";\nimport { getDisplayableAuthOptions } from \"@/services/auth/campaignAppAuthenticationOptions.service\";\nimport { IDisplayableAuthenticationOption } from \"@/models/campaign/displayableAuthenticationOption._model\";\nimport { openAuthSelectionModal } from \"@/services/auth/authModal.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport {\n clearLoginState,\n isLoggedIn,\n loginState,\n} from \"@/services/loginState.service\";\nimport { logout, login as authLogin } from \"@/services/auth/auth.service\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { hasLoginSupport } from \"@/services/campaignApp.service\";\nimport { hasCMTokenInURL } from \"@/services/url.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'LoginBar',\n setup(__props) {\n\nlibrary.add(faFacebook, faMobileAlt, faSignInAlt, faIdCard, faBuilding);\n\nconst user = ref<{ nickname: string; displayName: string }>();\nconst displayableAuthOptions = getDisplayableAuthOptions();\nlet displayableBrandLoginButton = ref();\nlet displayableSimpleLoginButton = ref();\n\nif (\n displayableAuthOptions.complex.length === 1 &&\n !displayableAuthOptions.simple\n) {\n displayableBrandLoginButton.value = displayableAuthOptions.complex[0];\n displayableBrandLoginButton.value.name =\n displayableAuthOptions.complex[0].option.brandName ||\n displayableAuthOptions.complex[0].option._type;\n} else if (\n displayableAuthOptions.simple &&\n displayableAuthOptions.complex.length === 0\n) {\n displayableSimpleLoginButton.value = displayableAuthOptions.simple;\n}\n\nasync function login(option?: ICampaignAppAuthenticationOption) {\n (option ? Promise.resolve(option) : openAuthSelectionModal())\n .then((result) => {\n return result\n ? authLogin(result as ICampaignAppAuthenticationOption)\n : Promise.resolve();\n })\n .then(updateUser, () => {\n /* empty */\n });\n}\n\nasync function logOut() {\n if (hasCMTokenInURL()) {\n return;\n }\n\n await clearLoginState();\n await logout();\n}\n\nfunction updateUser() {\n if (isLoggedIn.value) {\n user.value = {\n displayName: loginState.value?.displayName as string,\n nickname: loginState.value?.nickName as string,\n };\n }\n}\n\nwatch(loginState, updateUser);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"mobileXl:flex-none flex w-full justify-center\", { '!hidden': !_unref(hasLoginSupport)() || _unref(hasCMTokenInURL)() }])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n (!user.value)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_unref(displayableBrandLoginButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (login(_unref(displayableBrandLoginButton).option))),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto flex items-center hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\",\n style: _normalizeStyle(_unref(displayableBrandLoginButton).brandSpecificButtonStyles)\n }, [\n (\n !_unref(displayableBrandLoginButton).displayableImageIconUrl &&\n _unref(displayableBrandLoginButton).iconCssClass\n )\n ? (_openBlock(), _createBlock(_unref(FontAwesomeIcon), {\n key: 0,\n class: \"mr-20 text-sm\",\n icon: _unref(displayableBrandLoginButton).iconCssClass\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n (_unref(displayableBrandLoginButton).displayableImageIconUrl)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"h-15 inline-block mr-20\",\n src: _unref(displayableBrandLoginButton).displayableImageIconUrl\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(`${_unref($ttt)(\"tools.loginBar.btn_loginWith\")} ${\n _unref(displayableBrandLoginButton).name\n }`), 1)\n ], 4))\n : _createCommentVNode(\"\", true),\n (_unref(displayableSimpleLoginButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (login(_unref(displayableSimpleLoginButton).option))),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto flex items-center bg-primary-color text-primary-color-inverted-for-text hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\",\n style: _normalizeStyle(_unref(displayableSimpleLoginButton).brandSpecificButtonStyles)\n }, [\n (\n !_unref(displayableSimpleLoginButton).displayableImageIconUrl &&\n _unref(displayableSimpleLoginButton).iconCssClass\n )\n ? (_openBlock(), _createBlock(_unref(FontAwesomeIcon), {\n key: 0,\n class: \"mr-20 text-sm\",\n icon: _unref(displayableSimpleLoginButton).iconCssClass\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(_unref($ttt)(\"tools.loginBar.btn_login\")), 1)\n ], 4))\n : _createCommentVNode(\"\", true),\n (!_unref(displayableBrandLoginButton) && !_unref(displayableSimpleLoginButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (login())),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto flex items-center bg-primary-color text-primary-color-inverted-for-text hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\"\n }, _toDisplayString(_unref($ttt)(\"tools.loginBar.btn_login\")), 1))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true),\n (user.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas fa-check text-header-text-color mr-10 text-sm\",\n icon: _unref(faCheck)\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref($ttt)(\"global.login.txt_hello\")), 1)\n ]),\n (user.value?.nickname)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(user.value?.nickname), 1))\n : _createCommentVNode(\"\", true),\n (user.value?.displayName)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(user.value?.displayName), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (logOut())),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto mobileXl:mt-0 mt-20 flex items-center bg-primary-color text-primary-color-inverted-for-text hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_logout\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n}\n}\n\n})","import { $to } from \"@/mixins/i18n.mixin\";\nimport {\n VotingCategory,\n} from \"@/models/campaign/voting/votingPublicData._model\";\nimport { DisplayableVotingCategoryType } from \"./displayableVotingCategoryType.class\";\n\nexport class DisplayableVotingCategory implements VotingCategory {\n // model\n id: string;\n name: string;\n votingCategoryTypeId: number;\n\n // custom runtime model\n votingCategoryType?: DisplayableVotingCategoryType;\n\n constructor(dto: VotingCategory) {\n this.id = dto.id;\n this.votingCategoryTypeId = dto.votingCategoryTypeId;\n\n // custom overrides\n this.name = $to(dto, \"name\", \"votingCategory\");\n }\n}\n","import { $to } from \"@/mixins/i18n.mixin\";\nimport {\n VotingCategory,\n VotingCategoryType,\n} from \"@/models/campaign/voting/votingPublicData._model\";\n\nexport class DisplayableVotingCategoryType implements VotingCategoryType {\n // model\n id: string;\n name: string;\n links?: { votingCategories: string[] };\n\n // custom runtime model\n selectedCategoryId = \"\";\n votingCategories?: VotingCategory[];\n\n constructor(dto: VotingCategoryType) {\n this.id = dto.id;\n this.links = dto.links;\n\n // custom overrides\n this.name = $to(dto, \"name\", \"votingCategoryType\");\n }\n\n // custom features\n get selectedCategory() {\n return this.votingCategories?.find(\n (vc) => `${vc.id}` === `${this.selectedCategoryId}`\n );\n }\n}\n","import { $to } from \"@/mixins/i18n.mixin\";\nimport {\n VotingItem,\n VotingItemImage,\n VotingVote,\n} from \"@/models/campaign/voting/votingPublicData._model\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { DisplayableVotingCategory } from \"./displayableVotingCategory.class\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\n\nexport class DisplayableVotingItem implements VotingItem {\n // model\n id: string;\n ingress?: string | undefined;\n description?: string | undefined;\n isRemoved: boolean;\n itemShareUrl: string;\n title: string;\n videoThumbnailFileMetaDataId?: string | undefined;\n videoUrl?: string | undefined;\n voteCount: number;\n votePercentage: number;\n links?:\n | { votingItemCategories?: string[]; votingItemImages?: string[] }\n | undefined;\n\n // custom runtime model\n votingCategories?: DisplayableVotingCategory[];\n votingItemImages?: VotingItemImage[] = [];\n hasVideoPreviewImage = false;\n hasGalleryPreview = false;\n previewImage?: string;\n votingVotes?: VotingVote[];\n hasPlaceholderPreviewImage? = false;\n mainImage?: string = undefined;\n sortedImages?: VotingItemImage[] = [];\n\n constructor(dto: VotingItem) {\n this.id = dto.id;\n this.isRemoved = dto.isRemoved;\n this.itemShareUrl = dto.itemShareUrl;\n this.videoThumbnailFileMetaDataId = dto.videoThumbnailFileMetaDataId;\n this.videoUrl = dto.videoUrl;\n this.voteCount = dto.voteCount;\n this.votePercentage = dto.votePercentage;\n this.links = dto.links;\n\n // custom overrides\n this.title = $to(dto, \"title\", \"votingItem\");\n this.ingress = $to(dto, \"ingress\", \"votingItem\");\n this.description = $to(dto, \"description\", \"votingItem\");\n }\n\n // custom features\n get videoThumbnail() {\n return this.videoThumbnailFileMetaDataId\n ? getSingleFileUrl(\n `${this.videoThumbnailFileMetaDataId}`,\n campaignApp.guid\n )\n : null;\n }\n\n evaluateImages() {\n this.sortedImages = this.votingItemImages?.sort(\n (a, b) => a.ordinal - b.ordinal\n );\n this.mainImage =\n this.sortedImages && this.sortedImages.length\n ? getSingleFileUrl(\n `${this.sortedImages[0]?.fileMetaDataId}`,\n campaignApp.guid\n )\n : undefined;\n\n if (this.videoUrl) {\n this.hasVideoPreviewImage = true;\n\n if (this.videoThumbnail) {\n this.previewImage = this.videoThumbnail;\n } else {\n this.hasPlaceholderPreviewImage = true;\n this.previewImage = require(\"@/assets/images/video-placeholder-1-1.png\");\n }\n } else if (this.sortedImages?.length) {\n this.hasGalleryPreview = true;\n this.previewImage = this.mainImage;\n } else {\n this.previewImage = require(\"@/assets/images/image-placeholder-300x160.png\");\n this.hasPlaceholderPreviewImage = true;\n }\n }\n}\n","import { VotingPublicData } from \"@/models/campaign/voting/votingPublicData._model\";\nimport {\n handleIfEmbedded,\n isEmbedded as _isEmbedded,\n scrollToPosition,\n} from \"@/services/auth/embedding.service\";\nimport { useCampaignStatus } from \"@/services/campaignStatus.service\";\nimport { useCustomCSS } from \"@/services/customCSS.service\";\nimport { useCustomJS } from \"@/services/customJS.service\";\nimport { isLoggedIn } from \"@/services/loginState.service\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport {\n normalizeCampaignState,\n registerAsStateConsumer,\n} from \"@/services/stateProcessor.service\";\nimport { ref, computed, onMounted, reactive, watch } from \"vue\";\nimport { DisplayableVotingCategoryType } from \"../models/displayableVotingCategoryType.class\";\nimport { DisplayableVotingCategory } from \"../models/displayableVotingCategory.class\";\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { processVotingItemsPagePayload } from \"./votingItems.service\";\nimport { isAuthenticating } from \"@/services/auth/auth.service\";\nimport {\n getVotingItemsPage,\n getProcessedVotingItem,\n} from \"./votingItems.service\";\nimport { getLanguageCodeToSearchBy } from \"@/services/i18n.service\";\nimport { debounce } from \"@/utils/utils\";\nimport { saveParticipation } from \"@/services/auth/auth.service\";\nimport {\n GOOGLE_ANALYTICS_EVENTS,\n sendCampaignEvent,\n} from \"@/services/googleAnalytics.service\";\nimport {\n AUTH_CANCELLED_ERROR_NAME,\n LOGIN_SELECTION_CANCELLED_ERROR_NAME,\n} from \"@/services/auth/utility/authCommonError.service\";\nimport { createVote } from \"./votingVotes.service\";\nimport { getPrivateData } from \"@/services/privateData.service\";\nimport {\n VotingVote,\n VotingVotesPrivateData,\n} from \"@/models/campaign/voting/votingPrivateData._model\";\nimport { createQueryForFbShare, shareOnFb } from \"@/services/facebook.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { errorService } from \"@/services/error.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { StateObj } from \"@/services/campaignState.service\";\n\n//#region consts\nconst {\n votingCategoryTypes,\n votingItems,\n votingCategories,\n votingItemsMetadata,\n} = _extractVotingItemData();\n\nconst campaignStatus = useCampaignStatus(\"voting\");\nconst showSubmissionResponse = ref(false);\nconst isSaving = ref(false);\nconst isEmbedded = ref(_isEmbedded);\nconst canShowSubmissionResponse = computed(\n () => isLoggedIn.value && showSubmissionResponse.value\n);\nconst lastVotedItem = ref();\n\n// items\nconst showItemCount = getCampaignBooleanSettingValue(\"showItemCount\");\nconst hasAnyItem = computed(() =>\n Boolean(votingItems && votingItems.value.length)\n);\nconst isLoadingAnything = false; // TODO are those needed?\nconst hasToRecalculatePages = false; // TODO are those needed?\nconst cantShowNoItemsInfo = computed(\n () => isLoadingAnything || hasToRecalculatePages\n);\nconst hasNoItemsInFiltering = computed(\n () => !hasAnyItem.value && isFiltering.value\n);\nconst hasNoItemsNotFiltering = computed(\n () => !hasAnyItem.value && !isFiltering.value\n);\nconst canShowBackButton = computed(\n () =>\n hasNoItemsNotFiltering.value &&\n Boolean(votingItemsMetadata.value.totalItemCount)\n);\nconst isLoadingItems = ref(false);\nconst currentPage = computed(() => votingItemsMetadata.value.pageIndex + 1);\n\n// routing\nconst singleItemLoadedByRoute = ref(null);\nconst ITEM_ROUTE = \"item\";\nconst currentPath = ref(window.location.hash);\nconst hasNextItem = ref(false);\nconst hasPrevItem = ref(false);\nconst isCalculatingNeighborItem = ref(false);\n\nwindow.addEventListener(\"hashchange\", () => {\n currentPath.value = window.location.hash;\n});\n\nconst isSingleItemView = computed(() => {\n return (currentPath.value.slice(1) || \"/\").split(\"/\")[1] === ITEM_ROUTE;\n});\n\nconst selectedSingleItem = ref(undefined);\n\nwatch(\n [currentPath, isSingleItemView],\n async () => {\n if (!isSingleItemView.value) {\n return;\n }\n\n const itemId = currentPath.value.split(\"/\")[2];\n\n if (!itemId) {\n return;\n }\n\n const itemInCurrentPage = votingItems.value.find(\n (item) => item.id === itemId\n );\n\n selectedSingleItem.value = itemInCurrentPage;\n\n if (!singleItemLoadedByRoute.value && !selectedSingleItem.value) {\n selectedSingleItem.value = await getProcessedVotingItem(\n itemId,\n votingCategories\n );\n }\n },\n { immediate: true }\n);\n\n// pagination and filtering\nconst VOTING_ITEMS_MAX_PAGES = 5;\nconst FILTERING_DEBOUNCE_TIMEOUT = 1000;\nconst showCategoryFilter = getCampaignBooleanSettingValue(\"showCategoryFilter\");\nconst showSearchTextFilter = getCampaignBooleanSettingValue(\"showTextFilter\");\nlet selectedCategories: null | DisplayableVotingCategory[] = null;\nconst isFiltering = ref(false);\nconst isReloadingAfterFiltering = ref(false);\nconst searchText = ref(\"\");\n\n// voting\nconst votes = ref([]);\nconst votingMode: \"one\" | \"many\" | \"custom\" = getCampaignSettingValue(\n \"votingMode\"\n) as \"one\" | \"many\" | \"custom\";\nconst votingModeCustomCount = getCampaignSettingValue(\"votingModeCustomCount\");\nconst votedMessage = ref(null);\nconst canPlaceVotes = computed(() =>\n Boolean(\n (votingMode === \"one\" && votes.value.length < 1) ||\n votingMode === \"many\" ||\n (votingMode === \"custom\" &&\n votingModeCustomCount &&\n votes.value.length < Number(votingModeCustomCount))\n )\n);\n\n//#endregion\n\n//#region main\nexport function voting() {\n useCustomJS();\n useCustomCSS();\n\n onMounted(async () => {\n registerAsStateConsumer({\n serializer: ({ resolve }) => {\n const state: StateObj = {\n currentPage: `${currentPage.value}`,\n searchText: searchText.value,\n selectedCategoriesIds:\n selectedCategories?.map((category) => category.id) ?? null,\n vote: {\n itemId: lastVotedItem.value?.id ?? null,\n },\n };\n\n if (selectedSingleItem.value) {\n state.selectedSingleItemId = selectedSingleItem.value?.id;\n }\n\n resolve(state);\n\n return state;\n },\n normalizer: async ({ resolve, state }) => {\n if (state) {\n if (state.searchText) {\n searchText.value = `${state.searchText}`;\n }\n\n if (\n !state.searchText &&\n state.selectedCategoriesIds &&\n state.selectedCategoriesIds.length\n ) {\n (state.selectedCategoriesIds as string[]).forEach(\n (selectedCategoryId) => {\n const votingCategoryType = votingCategoryTypes.find((vct) =>\n vct.votingCategories?.find(\n (vc) => vc.id === selectedCategoryId\n )\n );\n\n if (votingCategoryType) {\n votingCategoryType.selectedCategoryId = selectedCategoryId;\n }\n }\n );\n\n onSelectedCategoryChange();\n }\n\n if (\n !state.searchText &&\n state.currentPage &&\n Number(state.currentPage) > 0\n ) {\n await loadItemsPage(Number(state.currentPage) - 1);\n }\n\n if (state.selectedSingleItemId) {\n window.location.hash = `/${ITEM_ROUTE}/${state.selectedSingleItemId}`;\n\n singleItemLoadedByRoute.value = await getProcessedVotingItem(\n state.selectedSingleItemId as string,\n votingCategories\n );\n }\n\n const vote = state[\"vote\"];\n\n if (vote) {\n const votedItem = singleItemLoadedByRoute.value\n ? singleItemLoadedByRoute.value\n : votingItems.value.find(\n (item) => item.id === (vote as any)[\"itemId\"]\n );\n\n if (votedItem && !votedItem.votingVotes?.length) {\n sendVote(votedItem);\n }\n }\n }\n\n resolve();\n },\n });\n normalizeCampaignState();\n handleIfEmbedded();\n\n if (isSingleItemView.value) {\n const itemId = currentPath.value.split(\"/\")[2];\n\n if (itemId) {\n singleItemLoadedByRoute.value = await getProcessedVotingItem(\n itemId,\n votingCategories\n );\n }\n }\n\n try {\n await loadVotes();\n } catch (err) {\n // ignore\n }\n });\n\n return {\n campaignStatus,\n canShowSubmissionResponse,\n isSaving,\n isEmbedded,\n isAuthenticating,\n showItemCount,\n hasAnyItem,\n\n cantShowNoItemsInfo,\n hasNoItemsInFiltering,\n canShowBackButton,\n currentPage,\n singleItemLoadedByRoute,\n hasNextItem,\n hasPrevItem,\n isSingleItemView,\n selectedSingleItem,\n isCalculatingNeighborItem,\n VOTING_ITEMS_MAX_PAGES,\n isReloadingAfterFiltering,\n isFiltering,\n isLoadingItems,\n searchText,\n votedMessage,\n canPlaceVotes,\n lastVotedItem,\n showCategoryFilter,\n showSearchTextFilter,\n\n votingCategoryTypes,\n votingItems,\n votingCategories,\n votingItemsMetadata,\n\n navigateToSingleItemView,\n navigateToList,\n navigateToNextItem,\n navigateToPrevItem,\n onSelectedCategoryChange,\n pageChanged,\n loadItemsPage,\n getFilteringData,\n clearFilters,\n searchTextChanged,\n applyFiltering,\n debouncedApplyFiltering,\n sendVote,\n canShowVoteButton,\n shareItem,\n };\n}\n\n//#endregion\n\n//#region routing\nfunction navigateToSingleItemView(item: DisplayableVotingItem) {\n singleItemLoadedByRoute.value = null;\n window.location.hash = `/${ITEM_ROUTE}/${item.id}`;\n}\n\nfunction navigateToList() {\n window.location.hash = `/`;\n}\n\nasync function navigateToNextItem(item: DisplayableVotingItem) {\n isCalculatingNeighborItem.value = true;\n\n if (getNeighborItem(item, \"next\")) {\n navigateToSingleItemView(\n getNeighborItem(item, \"next\") as DisplayableVotingItem\n );\n } else {\n await loadItemsPage(currentPage.value - 1 + 1);\n\n navigateToSingleItemView(votingItems.value[0] as DisplayableVotingItem);\n }\n\n isCalculatingNeighborItem.value = false;\n}\n\nasync function navigateToPrevItem(item: DisplayableVotingItem) {\n isCalculatingNeighborItem.value = true;\n\n if (getNeighborItem(item, \"previous\")) {\n navigateToSingleItemView(getNeighborItem(item, \"previous\"));\n } else {\n await loadItemsPage(currentPage.value - 2);\n\n navigateToSingleItemView(votingItems.value[votingItems.value.length - 1]);\n }\n\n isCalculatingNeighborItem.value = false;\n}\n\nfunction getNeighborItem(\n item: DisplayableVotingItem,\n side: \"previous\" | \"next\"\n): DisplayableVotingItem {\n const itemIndex = votingItems.value.findIndex(\n (votingItem) => votingItem.id === item.id\n );\n\n return votingItems.value[\n itemIndex + (side === \"previous\" ? -1 : 1)\n ] as DisplayableVotingItem;\n}\n//#endregion\n\n//#region paging\nfunction onSelectedCategoryChange() {\n // gets currently selected per each type or all of that type if \"all\" is selected\n selectedCategories = votingCategoryTypes.reduce(\n (\n selected: DisplayableVotingCategory[],\n vct: DisplayableVotingCategoryType\n ) => {\n return [\n ...selected,\n ...(vct.selectedCategoryId\n ? [vct.selectedCategory as DisplayableVotingCategory]\n : []),\n ];\n },\n []\n );\n\n debouncedApplyFiltering();\n}\n\nasync function pageChanged(pageIndex: number) {\n loadItemsPage(pageIndex);\n}\n\nasync function loadItemsPage(pageIndex: number) {\n if (pageIndex < 0) {\n return;\n }\n\n isLoadingItems.value = true;\n\n const filters = getFilteringData();\n const pageData = await getVotingItemsPage(pageIndex, filters);\n\n const processedPageData = processVotingItemsPagePayload(\n pageData,\n votingCategories\n );\n\n votingItems.value = processedPageData.votingItems;\n votingItemsMetadata.value = processedPageData.votingItemsMetadata;\n\n isLoadingItems.value = false;\n\n await loadVotes();\n}\n\nfunction getFilteringData() {\n const filters = {\n categoryIds: selectedCategories?.map((c) => c.id),\n searchText: searchText.value,\n campaignAppGuid: campaignApp.guid,\n languageCode: getLanguageCodeToSearchBy(),\n };\n\n isFiltering.value =\n Boolean(filters.categoryIds?.length) || Boolean(filters.searchText);\n\n return filters;\n}\n\nfunction clearFilters() {\n votingCategoryTypes.forEach((vct) => {\n vct.selectedCategoryId = \"\";\n\n return vct;\n });\n\n searchText.value = \"\";\n onSelectedCategoryChange();\n}\n\nfunction searchTextChanged(event: Event) {\n searchText.value = (event.target as HTMLInputElement).value;\n debouncedApplyFiltering();\n}\n\nasync function applyFiltering() {\n isReloadingAfterFiltering.value = true;\n await loadItemsPage(0);\n isReloadingAfterFiltering.value = false;\n}\n\nconst debouncedApplyFiltering = debounce(\n applyFiltering,\n FILTERING_DEBOUNCE_TIMEOUT\n);\n//#endregion\n\nwatch(selectedSingleItem, () => {\n if (!votingItems || !votingItems.value) {\n return;\n }\n\n hasNextItem.value = Boolean(\n (selectedSingleItem.value &&\n getNeighborItem(selectedSingleItem.value, \"next\")) ||\n votingItemsMetadata.value.totalPageCount !== currentPage.value\n );\n\n hasPrevItem.value = Boolean(\n (selectedSingleItem.value &&\n getNeighborItem(selectedSingleItem.value, \"previous\")) ||\n currentPage.value !== 1\n );\n});\n\nwatch(isLoggedIn, async () => {\n await loadVotes();\n});\n\n//#region votes\n\nasync function loadVotes() {\n if (!isLoggedIn.value) {\n return;\n }\n\n const data = (await getPrivateData()) as VotingVotesPrivateData;\n\n votes.value = data.votingVotes.votingVotes;\n data.votingVotes.votingVotes.forEach((vote) => {\n const item =\n votingItems.value.find(\n (votingItem) => votingItem.id === `${vote.votingItemId}`\n ) || singleItemLoadedByRoute.value;\n\n if (item) {\n item.votingVotes = item.votingVotes?.length\n ? [...item.votingVotes, vote]\n : [vote];\n }\n });\n}\n\nfunction sendVote(item: DisplayableVotingItem) {\n if (item.votingVotes?.length) {\n return;\n }\n\n if (\n isSaving.value ||\n campaignStatus.isAfterActivity ||\n campaignStatus.isBeforeActivity\n ) {\n return;\n }\n\n lastVotedItem.value = item;\n\n saveParticipation()\n .then(\n () => {\n saveVote(item);\n },\n ({ message }) => {\n if (\n message !== AUTH_CANCELLED_ERROR_NAME &&\n message !== LOGIN_SELECTION_CANCELLED_ERROR_NAME\n ) {\n errorService.errorMessage = $ttt(\"campaign.error.err_errorOccurred\");\n }\n }\n )\n .finally(() => {\n scrollToResponseWrapper();\n });\n}\n\nasync function saveVote(item: DisplayableVotingItem) {\n isSaving.value = true;\n\n try {\n const response = await createVote({\n votingVotes: {\n campaignAppGuid: campaignApp.guid,\n links: {\n votingItem: item.id,\n },\n },\n });\n\n if (response) {\n sendCampaignEvent(GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.V.VOTE, item.id);\n votes.value.push(response.votingVotes);\n errorService.clearErrorMessage();\n showSubmissionResponse.value = true;\n votedMessage.value = $ttt(\"campaign.voting.txt_voteSaved\");\n item.voteCount++;\n\n await loadVotes();\n }\n } catch (err: unknown) {\n votedMessage.value = null;\n\n if ((err as Response).status === 409) {\n await loadVotes();\n\n errorService.raiseErrorMessage($ttt(\"campaign.voting.err_alreadyVoted\"));\n } else {\n errorService.raiseErrorMessage(\n $ttt(\"campaign.voting.err_voteWasNotSaved\")\n );\n }\n } finally {\n isSaving.value = false;\n }\n}\n\nfunction canShowVoteButton(item: DisplayableVotingItem) {\n return Boolean(item.votingVotes?.length);\n}\n\n//#endregion\n\nfunction shareItem(item: DisplayableVotingItem) {\n shareOnFb(createQueryForFbShare(item.itemShareUrl));\n}\n\nfunction scrollToResponseWrapper() {\n const element = document.querySelector(\".response-wrapper\");\n\n if (!element) {\n return;\n }\n\n if (_isEmbedded.value) {\n scrollToPosition(element);\n } else {\n element.scrollIntoView();\n }\n}\n\nfunction _extractVotingItemData() {\n const publicData = PUBLIC_DATA as VotingPublicData;\n\n const votingCategoryTypes =\n publicData.votingCategoryTypes.votingCategoryTypes?.map(\n (vct) => new DisplayableVotingCategoryType(vct)\n );\n const votingCategories =\n publicData.votingCategoryTypes.linked.votingCategories?.map(\n (vc) => new DisplayableVotingCategory(vc)\n );\n\n // -- bind data together\n // --- VCT & VC\n votingCategories?.forEach((category) => {\n // find VCT\n const categoryType = votingCategoryTypes.find(\n (categoryType) =>\n category.votingCategoryTypeId.toString() === categoryType.id\n );\n\n if (categoryType) {\n category.votingCategoryType = categoryType; // bind VCT to VC\n\n // bind VC to VCT\n if (!categoryType.votingCategories) {\n categoryType.votingCategories = [];\n }\n\n categoryType.votingCategories.push(category);\n }\n });\n\n // --- VI & VC & VII\n const { votingItems, votingItemsMetadata } = processVotingItemsPagePayload(\n publicData.votingItems,\n votingCategories\n );\n\n return {\n votingCategoryTypes: reactive(votingCategoryTypes),\n votingCategories,\n votingItems: ref(votingItems as DisplayableVotingItem[]),\n votingItemsMetadata: ref(votingItemsMetadata),\n };\n}\n","import {\n VotingItem,\n VotingItemsResponse,\n} from \"@/models/campaign/voting/votingPublicData._model\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\nimport { basePrivateApiUrl } from \"@/services/url.service\";\nimport { getAsUrlParams, getRandomNumber } from \"@/utils/utils\";\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { DisplayableVotingCategory } from \"../models/displayableVotingCategory.class\";\n\nconst ENDPOINT = `campaignapplive/voting/votingItems`;\n\n//?campaignAppGuid=50f0cf51-5286-4ad4-a3c3-1a509a9b2a4b&pageIndex=0&pageSize=5&randomizationSeed=\n\nconst RANDOM_ITEM_SORT_ORDER = \"random\";\nconst headers = {\n Accept: \"application/vnd.api+json\",\n \"Content-Type\": \"application/vnd.api+json; charset=UTF-8\",\n};\n\nexport async function getVotingItemsPage(\n pageIndex: number,\n filters: any\n): Promise {\n const pageSize = getCampaignSettingValue(\"itemsPageSizeFilter\");\n const itemSortOrder = getCampaignSettingValue(\"itemsSortOrder\");\n const hasRandomSortOrder = itemSortOrder === RANDOM_ITEM_SORT_ORDER;\n\n let endpoint = `${basePrivateApiUrl}${ENDPOINT}?campaignAppGuid=${campaignApp.guid}&pageIndex=${pageIndex}&pageSize=${pageSize}`;\n\n if (filters) {\n endpoint += `&${getAsUrlParams(filters)}`;\n }\n\n if (hasRandomSortOrder) {\n endpoint += `&randomizationSeed=${getRandomNumber()}`;\n }\n\n const data = await fetch(endpoint, { method: \"GET\", headers });\n\n return responseHandler(data);\n}\n\nexport async function getVotingItem(\n itemId: number | string\n): Promise {\n const endpoint = `${basePrivateApiUrl}${ENDPOINT}?campaignAppGuid=${campaignApp.guid}&itemId=${itemId}`;\n const data = await fetch(endpoint, { method: \"GET\", headers });\n\n return responseHandler(data);\n}\n\nexport async function getProcessedVotingItem(\n itemId: number | string,\n votingCategories: DisplayableVotingCategory[]\n): Promise {\n const votingItemResponse = await getVotingItem(itemId);\n\n const votingItem = processVotingItemsPagePayload(\n votingItemResponse,\n votingCategories\n ).votingItems[0];\n\n votingItem.evaluateImages();\n\n return votingItem;\n}\n\nexport function processVotingItemsPagePayload(\n pageData: VotingItemsResponse,\n votingCategories: DisplayableVotingCategory[]\n) {\n const votingItems = pageData.votingItems.map(\n (vi) => new DisplayableVotingItem(vi)\n );\n const votingItemCategories = pageData.linked?.votingItemCategories;\n const votingItemImages = pageData.linked?.votingItemImages;\n\n // --- VI & VC & VII\n votingItems.forEach((vi) => {\n // bind VI & VC\n const stringId = `${vi.id}`;\n const categoryIds = votingItemCategories\n ?.filter((vic) => vic.votingItemId.toString() === stringId)\n .map((vic) => vic.votingCategoryId.toString());\n\n if (categoryIds?.length) {\n const categories = votingCategories?.filter((vc) =>\n categoryIds.includes(vc.id.toString())\n );\n\n vi.votingCategories = categories;\n }\n\n // bind VI & VII\n const itemImages = votingItemImages?.filter(\n (vii) => vii.votingItemId.toString() === stringId\n );\n\n vi.votingItemImages = itemImages;\n vi.evaluateImages();\n });\n\n return {\n votingItems,\n votingItemsMetadata: pageData.metadata,\n };\n}\n\n// TODO create api wrapper to handle this responses\nfunction responseHandler(res: Response) {\n if (res.ok) {\n if (res.status !== 204) {\n return res.json();\n }\n\n return;\n }\n\n throw new Error(res.statusText);\n}\n","import { VotingVote } from \"@/models/campaign/voting/votingPrivateData._model\";\nimport { post } from \"@/services/http.service\";\n\nconst ENDPOINT = \"campaignapplive/voting/votingVotes\";\n\nconst headers = {\n Accept: \"application/vnd.api+json\",\n};\n\nexport async function createVote(\n item: unknown\n): Promise<{ votingVotes: VotingVote }> {\n return await post(ENDPOINT, JSON.stringify(item), undefined, headers);\n}\n","export const OptionTypes = {\n FACEBOOK: \"facebook\",\n FORM: \"form\",\n MYPAGE: \"myPage\",\n SIMPLE_MOBILE: \"simpleMobile\",\n SECURE_MOBILE: \"secureMobile\",\n SPORTS_ALLIANCE: \"sportsAlliance\",\n} as const;\n\nexport const OpenIdOptionTypes = {\n OIDC_SINGLE_SIGN_ON: \"oidcSingleSignOn\",\n} as const;\n\nexport const AuthenticationFieldTypes = {\n TEXT: \"text\",\n EMAIL: \"email\",\n CHECK_BOX: \"checkbox\",\n TEL: \"tel\",\n NUMBER: \"number\",\n DATE_TIME: \"dateTime\",\n OPTION: \"option\",\n HIDDEN: \"hidden\",\n CONSENT_TEXT: \"consentTexts\",\n} as const;\n\nexport const SimpleOptionTypes: readonly string[] = [\n OptionTypes.FORM,\n OptionTypes.SIMPLE_MOBILE,\n OptionTypes.SECURE_MOBILE,\n] as const;\n\nexport const AuthMappings = {\n authenticationOptionTypeToIconCssClass: [\n {\n key: OptionTypes.FACEBOOK,\n value: \"fab fa-facebook\",\n },\n {\n key: OptionTypes.MYPAGE,\n value: \"far fa-id-card\",\n },\n {\n key: OptionTypes.SIMPLE_MOBILE,\n value: \"fa fa-mobile-alt\",\n },\n {\n key: OptionTypes.SECURE_MOBILE,\n value: \"fa fa-mobile-alt\",\n },\n {\n key: OptionTypes.FORM,\n value: \"fa fa-sign-in-alt\",\n },\n {\n key: OpenIdOptionTypes.OIDC_SINGLE_SIGN_ON,\n value: \"fas fa-building\",\n },\n ],\n\n authenticationOptionTypeToColorStyle: [\n {\n key: OptionTypes.FACEBOOK,\n value: \"background-color: #4267B2; color: #FFFFFF\",\n },\n {\n key: OptionTypes.MYPAGE,\n value: \"background-color: #009899; color: #FFFFFF\",\n },\n {\n key: OptionTypes.SPORTS_ALLIANCE,\n value: \"background-color: #F8B02F; color: #FFFFFF\",\n },\n ],\n\n authenticationOptionTypeToIconImageUrl: [\n {\n key: OptionTypes.SPORTS_ALLIANCE,\n value: require(\"@/assets/images/sports-alliance-icon.png\"),\n },\n ],\n} as const;\n","// See: socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\common\\dict\\Application.js\n\nexport const LanguagesDictionary = {\n languageCodes: {\n ENGLISH: \"en\",\n NORWEGIAN: \"no\",\n SWEDISH: \"sv\",\n DANISH: \"da\",\n NORWEGIAN_NYNORSK: \"nn\",\n ITALIAN: \"it\",\n GERMAN: \"de\",\n POLISH: \"pl\",\n DUTCH: \"nl\",\n FRENCH: \"fr\",\n SPANISH: \"es\",\n PORTUGUESE: \"pt\",\n SPANISH_LA: \"es-419\",\n KOREAN: \"ko\",\n },\n} as const;\n\nexport const LanguageMappings = {\n languageToFacebookSdkCode: [\n {key: LanguagesDictionary.languageCodes.NORWEGIAN, value: 'nb_NO'},\n {key: LanguagesDictionary.languageCodes.ENGLISH, value: 'en_GB'},\n {key: LanguagesDictionary.languageCodes.DANISH, value: 'da_DK'},\n {key: LanguagesDictionary.languageCodes.SWEDISH, value: 'sv_SE'},\n {key: LanguagesDictionary.languageCodes.NORWEGIAN_NYNORSK, value: 'nb_NO'},\n {key: LanguagesDictionary.languageCodes.ITALIAN, value: 'it_IT'},\n {key: LanguagesDictionary.languageCodes.GERMAN, value: 'de_DE'},\n {key: LanguagesDictionary.languageCodes.POLISH, value: 'pl_PL'},\n {key: LanguagesDictionary.languageCodes.DUTCH, value: 'nl_NL'},\n {key: LanguagesDictionary.languageCodes.FRENCH, value: 'fr_FR'},\n {key: LanguagesDictionary.languageCodes.SPANISH, value: 'es_ES'},\n {key: LanguagesDictionary.languageCodes.PORTUGUESE, value: 'pt_PT'},\n {key: LanguagesDictionary.languageCodes.SPANISH_LA, value: 'es_LA'},\n {key: LanguagesDictionary.languageCodes.KOREAN, value: 'ko_KR'}\n ],\n\n languageToCountryCode: [\n {key: LanguagesDictionary.languageCodes.ENGLISH, value: 'gb'},\n {key: LanguagesDictionary.languageCodes.NORWEGIAN, value: 'no'},\n {key: LanguagesDictionary.languageCodes.SWEDISH, value: 'se'},\n {key: LanguagesDictionary.languageCodes.DANISH, value: 'dk'},\n {key: LanguagesDictionary.languageCodes.NORWEGIAN_NYNORSK, value: 'no'},\n {key: LanguagesDictionary.languageCodes.ITALIAN, value: 'it'},\n {key: LanguagesDictionary.languageCodes.GERMAN, value: 'de'},\n {key: LanguagesDictionary.languageCodes.POLISH, value: 'pl'},\n {key: LanguagesDictionary.languageCodes.DUTCH, value: 'nl'},\n {key: LanguagesDictionary.languageCodes.FRENCH, value: 'fr'},\n {key: LanguagesDictionary.languageCodes.SPANISH, value: 'es'},\n {key: LanguagesDictionary.languageCodes.PORTUGUESE, value: 'pt'},\n {key: LanguagesDictionary.languageCodes.SPANISH_LA, value: 'mx'},\n {key: LanguagesDictionary.languageCodes.KOREAN, value: 'kr'}\n ],\n}","export const VisualTypes: { readonly [key: string]: string } = {\n AUCTION: \"auction\",\n VOTING: \"voting\",\n ITEM_LIST: \"itemList\",\n ADVANCED_FORM: \"advancedForm\",\n SIMPLE_FORM: \"simpleForm\",\n SIGN_UP: \"signUp\",\n PERSONA_QUIZ: \"personaQuiz\",\n CALENDAR_QUIZ: \"calendarQuiz\",\n KNOWLEDGE_QUIZ: \"knowledgeQuiz\",\n GUESS_THE_LINE_UP: \"guessTheLineUp\",\n GUESS_THE_AUDIENCE: \"guessTheAudience\",\n GUESS_THE_NUMBER: \"guessTheNumber\",\n GUESS_THE_SCORE: \"guessTheScore\",\n SPORTS_MATCH_VOTING: \"sportsMatchVoting\",\n EVENT_SELFIE: \"eventSelfie\",\n WHEEL_OF_FORTUNE: \"wheelOfFortune\",\n CROWDFUNDING: \"crowdfunding\",\n SLOT_MACHINE: \"slotMachine\",\n SCRATCH_CARD: \"scratchCard\",\n GUESS_THE_OUTCOMES: \"guessTheOutcomes\",\n GUESS_THE_PLAYER: \"guessThePlayer\",\n GOAL_CLUB: \"goalClub\",\n SEASONAL_GUESS_THE_OUTCOMES: \"seasonalGuessTheOutcomes\",\n SEASONAL_GUESS_THE_SCORE: \"seasonalGuessTheScore\",\n GUESS_THE_ITEM: \"guessTheItem\",\n LIVE_EVENT: \"liveEvent\",\n SORTING_QUIZ: \"sortingQuiz\",\n} as const;\n\nexport const VisualTypesWithPayments: readonly string[] = [\n VisualTypes.AUCTION,\n VisualTypes.CROWDFUNDING,\n VisualTypes.GOAL_CLUB,\n] as const;\n\nexport const VisualTypesWithLoginFeature: readonly string[] = [\n VisualTypes.AUCTION,\n VisualTypes.CROWDFUNDING,\n VisualTypes.SCRATCH_CARD,\n VisualTypes.SLOT_MACHINE,\n VisualTypes.WHEEL_OF_FORTUNE,\n VisualTypes.GOAL_CLUB,\n VisualTypes.SEASONAL_GUESS_THE_OUTCOMES,\n VisualTypes.SEASONAL_GUESS_THE_SCORE,\n VisualTypes.GUESS_THE_ITEM,\n VisualTypes.GUESS_THE_LINE_UP,\n VisualTypes.SORTING_QUIZ,\n] as const;\n","import {\n _i18n,\n locale,\n translateCampaignSetting,\n translateObject,\n trimMustachesInTranslation,\n} from \"@/services/i18n.service\";\nimport { I18n } from \"vue-i18n\";\n\nexport type I18nInstance = I18n<\n Record,\n Record,\n Record,\n string,\n false\n>;\n\n/**\n * Translate with pluralization and interpolation\n * @param key translation key\n * @param params values of interpolation and pluralization. If this object contains `count`, the function will try to pluralize the translation.\n *\n */\nexport function $ttt(key: string, params: Record = {}) {\n key = pluralizeTranslationKey(key, params, locale);\n\n trimMustachesInTranslation(key);\n\n return (_i18n as I18nInstance).global.t(key, params);\n}\n\n/**\n * Check if translation exists\n * @param key translation key\n * @param locale if you want to check for specific locale\n */\nexport function $te(key: string, _locale?: string) {\n const effectiveLocale = _locale && _locale.length ? _locale : locale;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const messages = _i18n?.global.messages.value[effectiveLocale] as {\n [x: string]: unknown;\n };\n\n return key in messages;\n}\n\nexport function $ts(key: string) {\n return translateCampaignSetting(key);\n}\n\nexport function $to(\n object: unknown,\n fieldName: string,\n objectType: string,\n defaultValue?: string\n) {\n return translateObject(object, fieldName, objectType, defaultValue);\n}\n\nexport const I18nMixin = {\n methods: {\n $ts,\n $to,\n $ttt,\n $te,\n },\n};\n\nfunction pluralizeTranslationKey(\n key: string,\n params: Record = {},\n locale: string\n): string {\n Object.entries(params ?? {}).forEach(([param, value]) => {\n if (param === \"count\") {\n const count = Number(value);\n const cardinalRules = new Intl.PluralRules(locale);\n\n key = key.concat(`.${cardinalRules.select(count)}`);\n }\n });\n\n return key;\n}\n","export function removeLoadIndicator() {\n document.getElementsByClassName(\"page-spinner\").item(0)?.remove();\n document\n .getElementsByTagName(\"html\")\n .item(0)\n ?.classList.remove(\"show-page-spinner\");\n}\n\nexport const PageLoadingIndicatorMixin = {\n mounted() {\n removeLoadIndicator();\n },\n};\n","import { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { createQueryForFbShare, shareOnFb } from \"@/services/facebook.service\";\nimport { sendShareEvent } from \"@/services/googleAnalytics.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\n\nexport function shareCampaign(linkToShare?: string) {\n linkToShare =\n linkToShare ||\n PUBLIC_DATA.campaignApps.linked.smartLinks.find(\n (s) => s.id === campaignApp?.smartLinkId.toString()\n )?.url;\n\n if (linkToShare) {\n shareOnFb(linkToShare);\n sendShareEvent();\n }\n}\n\nexport function shareParticipation() {\n shareOnFb(createQueryForFbShare());\n sendShareEvent();\n}\n\nexport const SharingMixin = {\n methods: {\n shareCampaign,\n shareParticipation,\n },\n};\n","import { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { errorService } from \"@/services/error.service\";\nimport {\n sendCampaignEvent,\n GOOGLE_ANALYTICS_EVENTS,\n} from \"@/services/googleAnalytics.service\";\nimport {\n getMissingAuthFieldsSummary,\n isLoggedIn,\n loadLoginState,\n loginState,\n patchLoginState,\n resetLoginState,\n saveLoginState,\n setLoginState,\n signIn,\n} from \"@/services/loginState.service\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { setupForEmbedding } from \"./embedding.service\";\nimport {\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES,\n caaoIsSimple,\n getProcessedGroupedAuthOptions,\n} from \"./campaignAppAuthenticationOptions.service\";\nimport { Ref, ref } from \"vue\";\nimport { PromiseFunc } from \"@/models/promiseFunc._model\";\nimport {\n IAuthProgress,\n IAuthProgressFlow,\n} from \"@/models/authentication/authProgress._model\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { openAuthFormModal, openAuthSelectionModal } from \"./authModal.service\";\nimport {\n AUTH_CANCELLED_ERROR_NAME,\n AUTH_ERROR_ERROR_NAME,\n} from \"./utility/authCommonError.service\";\nimport {\n beginSimpleMobileAuth,\n beginSimpleMobileLogIn,\n} from \"./providers/simpleMobileAuthProvider.service\";\nimport {\n beginSimpleEmailAuth,\n beginSimpleEmailLogIn,\n} from \"./providers/simpleEmailAuthProvider.service\";\nimport {\n beginSecureMobileAuth,\n beginSecureMobileLogIn,\n} from \"./providers/secureMobileAuthProvider.service\";\nimport { getIdentityClientConfiguration } from \"./identityClientConfiguration.service\";\nimport { closeModal } from \"../modal.service\";\nimport {\n campaignApp,\n hasParticipationSupport,\n hasSuspendedCMTokenLogin,\n} from \"../campaignApp.service\";\nimport {\n SUPPORTED_QUERY_PARAMS,\n getCMToken,\n hasCMTokenInURL,\n queryParams,\n removeCMToken,\n} from \"../url.service\";\nimport { User } from \"oidc-client\";\nimport {\n beginOpenIdClientAuth,\n beginOpenIdClientSilentAuth,\n cancelOpenIdClientAuth,\n confirmOpenIdClientAuth,\n createUserManagerInstance,\n removeCallbackParamsFromUrl,\n} from \"./providers/openIDClientAuthProvider.service\";\nimport { campaignStateService } from \"../campaignState.service\";\n\nexport const authProgress: Ref = ref(null);\nexport const isAuthenticating = ref(false);\nlet authInitializationProgress: Promise | null = null;\nlet authToken = queryParams\n ? queryParams[SUPPORTED_QUERY_PARAMS.AUTH_TOKEN]\n : null;\n\nexport const CM_TOKEN_AUTH_TYPE = \"token\";\n\nexport function cancelAuth(errorName = \"AUTH_CANCELLED\") {\n resetLoginState();\n\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.category,\n errorName\n );\n\n authProgress.value?.rejectHook({ message: errorName });\n}\n\nexport function confirmAuth() {\n saveLoginState().then(\n (loginState) => authProgress.value?.resolveHook(loginState),\n () => authProgress.value?.rejectHook({ message: AUTH_ERROR_ERROR_NAME })\n );\n}\n\nexport async function finalizeComplexAuth(forcedAuthType?: string) {\n const authenticationType =\n forcedAuthType ||\n authProgress.value?.authOption?._type ||\n authProgress.value?.loginState?.authenticationType;\n\n patchLoginState({ authenticationType: authenticationType });\n\n try {\n await signIn();\n\n if (isLoggedIn.value) {\n authProgress.value?.resolveHook(loginState.value);\n } else {\n handleIncompleteComplexAuthRegistration(false); // hasn't participated in this campaign\n }\n } catch (error: unknown) {\n // we don't know a participant\n if (error && error instanceof Response && error.status === 404) {\n handleIncompleteComplexAuthRegistration(true); // hasn't participated ever\n } else {\n if (hasCMTokenInURL()) {\n patchLoginState({\n myPageToken: undefined,\n authenticationType: undefined,\n });\n\n removeCMToken();\n\n authProgress.value?.rejectHook({ message: AUTH_ERROR_ERROR_NAME });\n return;\n }\n\n errorService.raiseErrorMessage(error as string);\n }\n }\n}\n\nexport async function finalizeSilentComplexAuth(user: User) {\n patchLoginState({\n campaignAppGuid: campaignApp.guid,\n authenticationType: evaluateSilentComplexAuthType(user),\n });\n\n try {\n return await signIn();\n } catch (error: unknown) {\n //\n }\n}\n\nexport async function finalizeSimpleAuthLogIn() {\n signIn().then(\n (newLoginState) => {\n if (isLoggedIn.value) {\n authProgress.value?.resolveHook(loginState.value);\n } else {\n if (newLoginState) {\n simplifyProcessForMobileAuths(newLoginState);\n }\n\n handleSimpleAuthLogInError();\n }\n },\n () => handleSimpleAuthLogInError()\n );\n}\n\nexport function handleComplexAuth(\n authOption: ICampaignAppAuthenticationOption,\n isLogIn = false\n) {\n handleAuthSelection(authOption);\n beginOpenIdClientAuth(isLogIn, authOption);\n return;\n}\n\nexport function handleSimpleAuth(\n authOption: ICampaignAppAuthenticationOption,\n isLogIn = false\n) {\n handleAuthSelection(authOption);\n\n switch (authOption._type) {\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM:\n return isLogIn ? beginSimpleEmailLogIn() : beginSimpleEmailAuth();\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE:\n return isLogIn ? beginSimpleMobileLogIn() : beginSimpleMobileAuth();\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE:\n return isLogIn ? beginSecureMobileLogIn() : beginSecureMobileAuth();\n default:\n return;\n }\n}\n\nexport function initializeAuthentication() {\n if (!hasParticipationSupport()) {\n return;\n }\n\n const cmToken = getCMToken();\n\n if (cmToken && !hasSuspendedCMTokenLogin()) {\n loginWithCMToken(cmToken);\n } else if (!cmToken) {\n const campaignState = campaignStateService.getState();\n\n if (campaignState && campaignState[\"isLogIn\"]) {\n resumeComplexLogIn();\n } else {\n initializeDefaultAuthFlow();\n }\n }\n}\n\nexport async function login(authOption?: ICampaignAppAuthenticationOption) {\n await setupForEmbedding();\n\n const authProgressPromise = startAuthProgress();\n\n continueAuth(authOption, true);\n\n return authProgressPromise;\n}\n\nexport async function logout() {\n const identityClientConfiguration = await getIdentityClientConfiguration();\n const logoutUrl = `${identityClientConfiguration.authorityUrl}account/logout`;\n const iframe = document.createElement(\"iframe\");\n\n iframe.style.display = \"none\";\n document.body.appendChild(iframe);\n\n const listener = (event: { data: string }) => {\n if (event.data === \"LOG_OUT_SUCCESS\") {\n window.removeEventListener(\"message\", listener);\n iframe.remove();\n window.location.reload();\n }\n };\n\n window.addEventListener(\"message\", listener);\n iframe.setAttribute(\"src\", logoutUrl);\n}\n\nexport async function resumeComplexAuth() {\n authToken = null;\n\n tryRestoreAuthTypeFromCampaignState();\n setLoginState({\n ...(loginState.value as ILoginState),\n campaignAppGuid: campaignApp.guid,\n });\n\n const userManager = createUserManagerInstance();\n\n return userManager.signinRedirectCallback().then(\n (user: User) => {\n return new Promise((resolve) => {\n startAuthProgress().then(() => {\n removeCallbackParamsFromUrl();\n resolve(loginState);\n });\n confirmOpenIdClientAuth(user);\n });\n },\n (error: Error) => {\n return new Promise((resolve) => {\n startAuthProgress().then(() => {\n removeCallbackParamsFromUrl();\n resolve(loginState);\n });\n cancelOpenIdClientAuth(error);\n });\n }\n );\n}\n\nexport async function saveParticipation(): Promise {\n // if there's any pending auth happening - run stuff after it finishes\n const authInitProgress = authInitializationProgress || Promise.resolve();\n\n return authInitProgress.then(\n () => {\n if (authToken) {\n return resumeComplexAuth();\n }\n\n return isLoggedIn.value\n ? Promise.resolve(loginState)\n : beginAuthentication();\n },\n () => {\n // ...\n }\n );\n}\n\nexport function tryRestoreAuthTypeFromCampaignState() {\n const campaignState = campaignStateService.getState();\n\n if (campaignState) {\n const selectedAuthOptionId = campaignState[\"selectedAuthOptionId\"];\n\n if (selectedAuthOptionId !== null && selectedAuthOptionId !== undefined) {\n const restoredAuthOption = getProcessedGroupedAuthOptions().all.find(\n (caao) => caao.id === selectedAuthOptionId\n );\n\n if (restoredAuthOption) {\n patchLoginState({\n authenticationType: restoredAuthOption._type,\n });\n }\n }\n }\n}\n\nasync function beginAuthentication() {\n const cmToken = getCMToken();\n\n if (cmToken && hasSuspendedCMTokenLogin()) {\n return loginWithCMToken(cmToken).catch((error) => {\n if (error.message === AUTH_CANCELLED_ERROR_NAME) {\n return Promise.reject(error);\n }\n\n return continueWithDefaultAuthMethod();\n });\n }\n\n return continueWithDefaultAuthMethod();\n}\n\nfunction continueWithDefaultAuthMethod() {\n return setupForEmbedding().then(() => {\n const authProgressPromise = startAuthProgress();\n const defaultOnlyOption =\n getProcessedGroupedAuthOptions().defaultWhenOnlyAuthOption;\n\n continueAuth(defaultOnlyOption || undefined);\n\n return authProgressPromise;\n });\n}\n\nfunction continueAuth(\n authOption?: ICampaignAppAuthenticationOption,\n isLogIn = false\n) {\n if (loginState.value?.myPageToken) {\n syncSelectedAuthOption();\n finalizeComplexAuth(CM_TOKEN_AUTH_TYPE);\n } else if (!authOption) {\n openAuthSelectionModal().then((result) => {\n const option = result as ICampaignAppAuthenticationOption;\n\n if (option) {\n if (caaoIsSimple(option)) {\n handleSimpleAuth(option, isLogIn);\n } else {\n handleComplexAuth(option, isLogIn);\n }\n }\n });\n } else if (caaoIsSimple(authOption)) {\n handleSimpleAuth(authOption, isLogIn);\n } else {\n handleComplexAuth(authOption, isLogIn);\n }\n}\n\nfunction createAuthProgressFlow() {\n let resolveHook: PromiseFunc | null = null;\n let rejectHook: PromiseFunc | null = null;\n const promise = new Promise((resolve, reject) => {\n resolveHook = resolve;\n rejectHook = reject;\n });\n\n const progress = {\n promise,\n resolveHook: resolveHook as unknown as PromiseFunc,\n rejectHook: rejectHook as unknown as PromiseFunc,\n } as IAuthProgress;\n\n return {\n promise,\n progress,\n } as IAuthProgressFlow;\n}\n\nfunction canSignUpComplexAuth(isNewUser: boolean) {\n const skipPersonalDataForm =\n PUBLIC_DATA.campaignApps.linked.campaignAppAuthenticationOptions.find(\n (authOption) => authOption._type === loginState.value?.authenticationType\n )?.isKillswitchActive;\n\n const summary = getMissingAuthFieldsSummary();\n\n return skipPersonalDataForm || hasCMTokenInURL()\n ? !summary.hasMissingRequiredConsents &&\n !summary.hasMissingRequiredAuthFields\n : !isNewUser &&\n !summary.hasMissingConsents &&\n !summary.hasMissingRequiredAuthFields;\n}\n\nfunction handleIncompleteComplexAuthRegistration(isNewUser: boolean) {\n if (canSignUpComplexAuth(isNewUser)) {\n confirmAuth();\n } else {\n openAuthFormModal().then(\n (loginStatePart) => {\n if (loginStatePart) {\n patchLoginState(loginStatePart as Partial);\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n (error) => cancelAuth(error)\n );\n }\n}\n\nfunction handleAuthSelection(authOption: ICampaignAppAuthenticationOption) {\n if (loginState) {\n setLoginState({\n ...(loginState.value as ILoginState),\n campaignAppGuid: campaignApp.guid,\n });\n }\n\n if (authProgress.value) {\n authProgress.value.authOption = authOption;\n }\n}\n\nasync function initializeDefaultAuthFlow() {\n authInitializationProgress = new Promise((resolve) => {\n loadLoginState().then(() => {\n const enabledComplexAuthOptions =\n getProcessedGroupedAuthOptions()?.enabledComplex;\n\n if (enabledComplexAuthOptions && enabledComplexAuthOptions.length) {\n createUserManagerInstance();\n\n if (!isLoggedIn.value) {\n beginOpenIdClientSilentAuth().finally(() => {\n removeCallbackParamsFromUrl();\n resolve(loginState.value as ILoginState);\n });\n\n return;\n }\n }\n\n resolve(loginState.value as ILoginState);\n });\n });\n}\n\nasync function startAuthProgress() {\n const authProgressFlow = createAuthProgressFlow();\n\n isAuthenticating.value = true;\n authProgress.value = authProgressFlow.progress;\n\n return authProgressFlow.promise.finally(() => {\n authProgress.value = null;\n isAuthenticating.value = false;\n closeModal();\n });\n}\n\nfunction syncSelectedAuthOption() {\n const currentAuthType = loginState.value?.authenticationType;\n const expectedCaao = getProcessedGroupedAuthOptions().complex.find(\n (caao) => currentAuthType === caao._type\n );\n\n if (!authProgress.value?.authOption && expectedCaao) {\n (authProgress.value as IAuthProgress).authOption =\n expectedCaao as ICampaignAppAuthenticationOption;\n }\n}\n\nfunction handleSimpleAuthLogInError() {\n if (!authProgress.value?.authOption) {\n throw new Error(\"authOption is missing from authProgress\");\n }\n\n handleSimpleAuth(authProgress.value?.authOption, false);\n}\n\nfunction simplifyProcessForMobileAuths(signInLoginState: ILoginState) {\n const selectedOption = authProgress.value?.authOption;\n const isSimpleMobile =\n selectedOption?._type ===\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE;\n const isSecureMobile =\n selectedOption?._type ===\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE;\n const newLoginState = authProgress.value?.loginState;\n\n if (!newLoginState) {\n return;\n }\n\n if (isSimpleMobile || isSecureMobile) {\n newLoginState.phoneNumber = signInLoginState.phoneNumber;\n }\n\n if (isSecureMobile) {\n newLoginState.smsToken = signInLoginState.smsToken;\n newLoginState.recaptchaToken = signInLoginState.recaptchaToken;\n }\n}\n\nfunction evaluateSilentComplexAuthType(user: User) {\n const defaultAuthOption =\n getProcessedGroupedAuthOptions().defaultWhenOnlyAuthOption;\n const enabledComplexAuthOptions =\n getProcessedGroupedAuthOptions().enabledComplex;\n\n if (defaultAuthOption) {\n return defaultAuthOption._type;\n }\n\n const potentiallyUsedAuthOptions = figureOutPotentiallyUsedAuthOptions(\n user,\n enabledComplexAuthOptions\n );\n\n const topPriorityOption =\n potentiallyUsedAuthOptions && potentiallyUsedAuthOptions.length\n ? potentiallyUsedAuthOptions.reduce((prev, current) =>\n prev && prev.priority > current.priority ? prev : current\n )\n : undefined;\n\n return topPriorityOption ? topPriorityOption._type : CM_TOKEN_AUTH_TYPE;\n}\n\nfunction figureOutPotentiallyUsedAuthOptions(\n user: User,\n enabledComplexAuthOptions: ICampaignAppAuthenticationOption[]\n) {\n const profile = user.profile;\n\n return enabledComplexAuthOptions.filter((authOption) => {\n switch (authOption._type) {\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FACEBOOK:\n return !!profile.FacebookAppIdentity;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.MYPAGE:\n return !!profile.MyPage && (!!profile.email || !!profile.Email);\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SPORTS_ALLIANCE:\n return !!profile.SportsAllianceId;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.OIDC_SINGLE_SIGN_ON:\n return checkForOIDCClaims(user);\n default:\n return false;\n }\n });\n}\n\nfunction resumeComplexLogIn(): Promise {\n authToken = null;\n tryRestoreAuthTypeFromCampaignState();\n patchLoginState({ campaignAppGuid: campaignApp.guid });\n\n const userManager = createUserManagerInstance();\n\n return userManager\n .signinRedirectCallback()\n .then(\n async (user: User) => {\n await startAuthProgress();\n confirmOpenIdClientAuth(user);\n },\n async (error: Error) => {\n console.error(error.message);\n\n await startAuthProgress();\n cancelOpenIdClientAuth(error);\n }\n )\n .finally(() => {\n removeCallbackParamsFromUrl();\n campaignStateService.setState(null);\n });\n}\n\nfunction checkForOIDCClaims(user: User): boolean {\n const regex = new RegExp(\n `(^${CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.OIDC_SINGLE_SIGN_ON})`,\n \"gi\"\n );\n\n return Object.entries(user.profile).some(([key]) => regex.test(key));\n}\n\nfunction loginWithCMToken(cmToken: string) {\n patchLoginState({\n myPageToken: cmToken,\n authenticationType: CM_TOKEN_AUTH_TYPE,\n campaignAppGuid: campaignApp.guid,\n });\n\n return login();\n}\n","import { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { getCampaignSettingValue } from \"../settings.service\";\nimport { PUBLIC_DATA } from \"../publicData.service\";\nimport { ICustomAuthenticationField } from \"@/models/campaign/customAuthenticationField.model\";\nimport { translateObject } from \"../i18n.service\";\n\ninterface SelectOptions {\n options: string[];\n}\n\nlet authFields: FormFieldDefinition[];\n\nexport function getAuthFields() {\n if (!authFields) {\n initializeAuthFields();\n }\n\n return authFields;\n}\n\nexport function resetAuthFields() {\n initializeAuthFields();\n}\n\nfunction initializeAuthFields() {\n const authFieldsResponse = getCampaignSettingValue(\"authenticationFields\");\n const customAuthFields =\n PUBLIC_DATA.customAuthenticationFields.customAuthenticationFields;\n const consentTexts = PUBLIC_DATA.consentTextBundles.linked.consentTexts;\n\n if (authFieldsResponse) {\n authFields = JSON.parse(authFieldsResponse);\n\n authFields.forEach(\n (af) => (af.customLabel = translateObject(af, \"customLabel\", \"authField\"))\n );\n\n authFields = setupCustomAuthFields(authFields, customAuthFields);\n authFields = moveTermsToBottomOfTheArray(authFields);\n\n authFields.push(\n ...(consentTexts || []).map((consentText) => {\n return {\n id: consentText.id,\n isRequired: consentText.isRequired,\n isEnabled: consentText.isEnabled,\n customLabel: translateObject(consentText, \"text\", \"consentText\"),\n type: consentText.type,\n } as FormFieldDefinition;\n })\n );\n\n authFields = authFields.filter((authField) => authField.isEnabled);\n }\n}\n\nfunction moveTermsToBottomOfTheArray(authFields: FormFieldDefinition[]) {\n const termsVerificationField = authFields.find(\n (authField) => authField.id === \"termsVerification\"\n );\n\n if (!termsVerificationField) {\n return authFields;\n }\n\n authFields = [\n ...authFields.filter((aF) => aF.id !== \"termsVerification\"),\n termsVerificationField,\n ];\n\n return authFields;\n}\n\nfunction setupCustomAuthFields(\n authFields: FormFieldDefinition[],\n customAuthFields: Readonly\n): FormFieldDefinition[] {\n customAuthFields.forEach((customAuthField) => {\n const authField = authFields.find((aF) => aF.id === customAuthField.id);\n\n if (!authField) {\n return;\n }\n\n let properties = JSON.parse(customAuthField.properties ?? \"{}\");\n\n if (customAuthField.fieldType === \"option\" && properties.options) {\n properties = setupOptionNames(customAuthField, properties);\n }\n\n authField.id = customAuthField.id;\n authField.customLabel = translateObject(\n customAuthField,\n \"customLabel\",\n \"customAuthenticationField\",\n customAuthField.displayName\n );\n\n authField.maxValue = properties?.max;\n authField.minValue = properties?.min;\n authField.maxDate = properties?.max;\n authField.minDate = properties?.min;\n authField.includeTime = properties?.withTime;\n authField.multiline = properties?.multiline;\n authField.selectOptions = properties?.options;\n });\n\n return authFields;\n}\n\nfunction setupOptionNames(\n customAuthField: ICustomAuthenticationField,\n properties: SelectOptions\n) {\n properties.options.forEach((option, index) => {\n properties.options[index] = translateObject(\n customAuthField,\n `option-${option}`,\n \"customAuthenticationField\",\n option\n );\n });\n\n return properties;\n}\n","import {\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES,\n CampaignAppAuthenticationOptionType,\n} from \"./campaignAppAuthenticationOptions.service\";\nimport { openModal } from \"../modal.service\";\nimport AuthSelectionModalVue from \"@/components/auth/AuthSelectionModal.vue\";\nimport SignUpFormModalVue from \"@/components/auth/SignUpFormModal.vue\";\nimport SimpleMobileModalVue from \"@/components/auth/SimpleMobileModal.vue\";\nimport SecureMobileModalVue from \"@/components/auth/SecureMobileModal.vue\";\nimport SimpleEmailLoginModalVue from \"@/components/auth/SimpleEmailLoginModal.vue\";\n\nexport function openAuthSelectionModal() {\n return openModal(AuthSelectionModalVue);\n}\n\nexport function openAuthFormModal() {\n // TODO - TLA - `Auth.js` - `openAuthFormModal()` (mapping for AF)\n\n return openAuthModal(CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM);\n}\n\nexport function openAuthModal(\n type: CampaignAppAuthenticationOptionType,\n model?: unknown\n) {\n let modalPromise;\n\n switch (type) {\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM:\n modalPromise = openModal(SignUpFormModalVue, model);\n break;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE:\n modalPromise = openModal(SimpleMobileModalVue, model);\n break;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE:\n modalPromise = openModal(SecureMobileModalVue, model);\n break;\n default:\n modalPromise = Promise.resolve();\n break;\n }\n\n return modalPromise;\n}\n\nexport function openSimpleEmailLogInModal() {\n return openModal(SimpleEmailLoginModalVue);\n}\n","import { PUBLIC_DATA } from \"../publicData.service\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { AuthMappings } from \"@/common/authentication.dictionary\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\nexport type CampaignAppAuthenticationOptionType =\n | \"facebook\"\n | \"form\"\n | \"myPage\"\n | \"simpleMobile\"\n | \"secureMobile\"\n | \"sportsAlliance\"\n | string;\n\nexport const CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES: {\n [key: string]: CampaignAppAuthenticationOptionType;\n} = {\n FACEBOOK: \"facebook\",\n FORM: \"form\",\n MYPAGE: \"myPage\",\n SIMPLE_MOBILE: \"simpleMobile\",\n SECURE_MOBILE: \"secureMobile\",\n SPORTS_ALLIANCE: \"sportsAlliance\",\n};\n\nexport const SIMPLE_CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES = [\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM,\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE,\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE,\n];\n\nexport function caaoIsSimple(caao: ICampaignAppAuthenticationOption) {\n return SIMPLE_CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.includes(caao._type);\n}\n\nclass ProcessedGroupedAuthOptions {\n simple: ICampaignAppAuthenticationOption[] = [];\n complex: ICampaignAppAuthenticationOption[] = [];\n all: ICampaignAppAuthenticationOption[] = [];\n simpleEmailOption?: ICampaignAppAuthenticationOption;\n simpleMobileOption?: ICampaignAppAuthenticationOption;\n secureMobileOption?: ICampaignAppAuthenticationOption;\n facebookAuthOption?: ICampaignAppAuthenticationOption;\n myPageAuthOption?: ICampaignAppAuthenticationOption;\n\n get hasMobileSignInOnlySecure() {\n return !this.simpleMobileOption && this.secureMobileOption;\n }\n\n get hasSomeMobileSignIn() {\n return this.simpleMobileOption || this.secureMobileOption;\n }\n\n get enabledComplex() {\n return this.complex.filter((caao) => caao.isEnabled);\n }\n\n get enabledSimple() {\n return this.simple.find((caao) => caao.isEnabled);\n }\n\n get defaultWhenOnlyAuthOption() {\n const options = [\n ...this.enabledComplex,\n ...(this.enabledSimple ? [this.enabledSimple] : []),\n ];\n\n return options.length === 1 ? options[0] : null;\n }\n}\n\nfunction getDisplayableSimpleAuthOption(\n simpleAuthOption: ICampaignAppAuthenticationOption = getProcessedGroupedAuthOptions()\n .enabledSimple as ICampaignAppAuthenticationOption\n) {\n if (!simpleAuthOption) {\n return null;\n }\n\n const iconCssClass =\n AuthMappings.authenticationOptionTypeToIconCssClass.find(\n (o) => o.key === simpleAuthOption._type\n )?.value || \"fas fa-building\";\n\n return {\n name: `global.campaignAuthentication.authSelectionModal.btn_${simpleAuthOption._type}`,\n option: simpleAuthOption,\n iconCssClass,\n };\n}\n\nfunction getDisplayableComplexAuthOptions(\n complexAuthOptions: ICampaignAppAuthenticationOption[] = getProcessedGroupedAuthOptions()\n .enabledComplex\n) {\n return complexAuthOptions.map((option) => {\n const type = option._type;\n\n const brandSpecificButtonStyles =\n AuthMappings.authenticationOptionTypeToColorStyle.find(\n (o) => o.key === type\n )?.value ||\n `color: ${\n option.brandForegroundColor ? option.brandForegroundColor : \"#000000\"\n }; background-color: ${\n option.brandColor ? option.brandColor : \"#F7F7F7\"\n }`;\n\n const displayableImageIconUrl =\n AuthMappings.authenticationOptionTypeToIconImageUrl.find(\n (p) => p.key === type\n )?.value;\n\n const iconCssClass =\n AuthMappings.authenticationOptionTypeToIconCssClass.find(\n (o) => o.key === type\n )?.value || \"fas fa-building\";\n\n const customizedBrandName = option.brandName\n ? `${$ttt(\n \"global.campaignAuthentication.authSelectionModal.txt_continueWith\"\n )} ${option.brandName}`\n : null;\n\n return {\n name:\n customizedBrandName ||\n $ttt(`global.campaignAuthentication.authSelectionModal.btn_${type}`),\n iconCssClass,\n displayableImageIconUrl,\n option,\n brandSpecificButtonStyles,\n };\n });\n}\n\nexport function getProcessedGroupedAuthOptions() {\n return PUBLIC_DATA.campaignApps.linked.campaignAppAuthenticationOptions.reduce(\n (groups: ProcessedGroupedAuthOptions, caao) => {\n if (caaoIsSimple(caao)) {\n groups.simple.push(caao);\n } else {\n groups.complex.push(caao);\n }\n\n groups.all.push(caao);\n\n const type = caao._type;\n\n if (type === \"form\") {\n groups.simpleEmailOption = caao;\n } else if (type === \"simpleMobile\") {\n groups.simpleMobileOption = caao;\n } else if (type === \"secureMobile\") {\n groups.secureMobileOption = caao;\n } else if (type === \"facebook\") {\n groups.facebookAuthOption = caao;\n } else if (type === \"myPage\") {\n groups.myPageAuthOption = caao;\n }\n\n return groups;\n },\n new ProcessedGroupedAuthOptions()\n );\n}\n\nexport function getDisplayableAuthOptions(\n processedGroupedAuthOptions: ProcessedGroupedAuthOptions = getProcessedGroupedAuthOptions()\n) {\n return {\n complex: getDisplayableComplexAuthOptions(\n processedGroupedAuthOptions.enabledComplex\n ),\n simple: getDisplayableSimpleAuthOption(\n processedGroupedAuthOptions.enabledSimple\n ),\n };\n}\n","import { $ttt } from \"@/mixins/i18n.mixin\";\nimport { callIFrameParent, checkIsInIFrame } from \"./iFrameHandler.service\";\nimport { ref } from \"vue\";\n\nexport const isEmbedded = ref(false);\n\nexport function handleIfEmbedded() {\n if (checkIsInIFrame()) {\n isEmbedded.value = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callIFrameParent().then((parent: any) => {\n document.getElementsByTagName(\"html\")[0].style.overflow = \"hidden\";\n parent.childInitialized();\n });\n }\n}\n\nexport async function setupForEmbedding(): Promise {\n if (checkIsInIFrame()) {\n const userAgent = navigator.userAgent;\n\n if (userAgent.includes(\"Safari\") && !userAgent.includes(\"Chrome\")) {\n return (\n callIFrameParent()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then(async (parent: any) => {\n parent.scroll(0);\n\n try {\n return await parent.tryAuthorize3rdParty();\n } catch {\n const msg = $ttt(\"campaign.embedded.txt_wantToOpenSeparateTab\");\n\n if (window.confirm(msg) === true) {\n window.open(window.location.href, \"_blank\");\n }\n }\n })\n .catch(function () {\n // yikes! no connection to parent, have to cope somehow, ignoring for now\n })\n );\n }\n\n return (\n callIFrameParent()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((parent: any) => {\n parent.scroll(0);\n })\n .catch(() => {\n // yikes! no connection to parent, have to cope somehow, ignoring for now\n })\n );\n }\n\n return Promise.resolve();\n}\n\nexport function scrollToPosition(element: Element) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callIFrameParent().then((parent: any) =>\n parent.scroll(element.getBoundingClientRect().y)\n );\n}\n","import { CallSender, Connection, Methods, connectToParent } from \"penpal\";\nimport { DIALOG_MODAL_CSS_CLASS } from \"../modal.service\";\n\nlet iFrameParentConnection: Connection | undefined;\nexport const CONNECTION_PARENT_WAIT_TIMEOUT = 1000 * 1;\n\nexport function callIFrameParent() {\n // reject the promise if the parent doesn't reply during the given time\n return new Promise((resolve, reject) => {\n let resolvedParent = false;\n let resolvedTimeout = false;\n\n getIFrameParentConnection()?.promise.then((parent) => {\n resolvedParent = true;\n\n if (!resolvedTimeout) {\n resolve(parent);\n }\n });\n\n new Promise((_resolve) =>\n setTimeout(_resolve, CONNECTION_PARENT_WAIT_TIMEOUT)\n ).then(() => {\n resolvedTimeout = true;\n\n if (!resolvedParent) {\n reject();\n }\n });\n });\n}\n\nexport function checkIsInIFrame() {\n return window.parent !== window;\n}\n\nfunction getIFrameParentConnection(methods: Methods = {}) {\n if (!iFrameParentConnection) {\n iFrameParentConnection = connectToParent({\n methods: {\n ...methods,\n getCurrentSize,\n fixMainContentHeights,\n },\n });\n }\n\n return iFrameParentConnection;\n}\n\nfunction fixMainContentHeights(height: string) {\n const app = document.getElementById(\"app\");\n\n if (app) {\n const outerOuterWrapper = app?.children[0];\n const innerOuterWrapper = outerOuterWrapper?.children[0];\n const innerWrapper = innerOuterWrapper?.children[0];\n\n [\n document.getElementsByTagName(\"html\")[0],\n document.getElementsByTagName(\"body\")[0],\n app,\n outerOuterWrapper,\n innerOuterWrapper,\n innerWrapper,\n ].forEach((el) => ((el as HTMLElement).style.height = height));\n }\n}\n\nfunction getCurrentSize() {\n const htmlEl = document.getElementsByTagName(\"html\")[0];\n const modalEl = document.querySelectorAll(\n `dialog.${DIALOG_MODAL_CSS_CLASS}`\n )[0];\n const htmlElRectSize = htmlEl.getBoundingClientRect();\n const htmlElStyle = window.getComputedStyle(htmlEl);\n const htmlElMarginY =\n pxToFloat(htmlElStyle.marginTop) + pxToFloat(htmlElStyle.marginBottom);\n const htmlElMarginX =\n pxToFloat(htmlElStyle.marginLeft) + pxToFloat(htmlElStyle.marginRight);\n let newHeight = htmlElRectSize.height + htmlElMarginY;\n\n if (modalEl) {\n const modalElRectSize = modalEl.getBoundingClientRect();\n const modalElStyle = window.getComputedStyle(modalEl);\n const modalElMarginY =\n pxToFloat(modalElStyle.marginTop) + pxToFloat(modalElStyle.marginBottom);\n const modalElHeight = modalElRectSize.height + modalElMarginY;\n newHeight = Math.max(newHeight, modalElHeight);\n }\n\n return {\n width: htmlElRectSize.width + htmlElMarginX,\n height: newHeight,\n isModal: !!modalEl,\n };\n}\n\nfunction pxToFloat(pxValue: string) {\n return pxValue ? parseFloat(pxValue) : 0;\n}\n","import { IIdentityClientConfiguration } from \"@/models/authentication/identityClientConfiguration.model\";\nimport { basePrivateApiUrl } from \"../url.service\";\nimport { campaignApp } from \"../campaignApp.service\";\nconst IDENTITY_CLIENT_CONFIGURATION_API_URL =\n \"campaignapplive/identityclientconfiguration?campaignAppGuid=\";\n\nlet identityClientConfiguration: IIdentityClientConfiguration | null = null;\n\nexport async function getIdentityClientConfiguration(): Promise {\n if (!identityClientConfiguration) {\n const response = await fetch(\n `${basePrivateApiUrl}${IDENTITY_CLIENT_CONFIGURATION_API_URL}${campaignApp.guid}`,\n { method: \"GET\" }\n );\n\n identityClientConfiguration =\n response.json() as unknown as IIdentityClientConfiguration;\n }\n\n return identityClientConfiguration;\n}\n","import { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { basePrivateApiUrl } from \"../url.service\";\nimport { campaignApp } from \"../campaignApp.service\";\n\nconst PHONE_LOOKUP_URL = \"campaignapplive/signup/phonelookup\";\nconst REQUEST_TOKEN_URL = \"campaignapplive/signup/phoneAuth\";\n\nconst requestInit: RequestInit = {\n headers: {\n \"Content-Type\": \"application/json; charset=UTF-8\",\n },\n};\n\nexport async function executePhoneNumberLookup(mobileAuth: {\n phoneNumber: string;\n recaptchaToken?: string;\n smsToken?: string;\n}): Promise {\n return await fetch(`${basePrivateApiUrl}${PHONE_LOOKUP_URL}`, {\n method: \"POST\",\n ...requestInit,\n body: JSON.stringify({\n ...mobileAuth,\n campaignAppGuid: campaignApp.guid,\n }),\n }).then((response) => {\n if (!response.ok) {\n throw response;\n }\n\n return response.json() as Promise;\n });\n}\n\nexport async function executeSMSTokenRequest(mobileAuth: {\n phoneNumber: string;\n recaptchaToken: string;\n smsToken?: string;\n}): Promise {\n return await fetch(`${basePrivateApiUrl}${REQUEST_TOKEN_URL}`, {\n method: \"POST\",\n ...requestInit,\n body: JSON.stringify({\n ...mobileAuth,\n campaignAppGuid: campaignApp.guid,\n }),\n }).then((response) => {\n if (!response.ok) {\n throw response;\n }\n });\n}\n","import { Log, User, UserManager, UserManagerSettings } from \"oidc-client\";\nimport { getIdentityClientConfiguration } from \"@/services/auth/identityClientConfiguration.service\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { campaignStateService } from \"@/services/campaignState.service\";\nimport { setMyPageToken } from \"@/services/loginState.service\";\nimport {\n authProgress,\n cancelAuth,\n finalizeComplexAuth,\n finalizeSilentComplexAuth,\n login,\n} from \"@/services/auth/auth.service\";\nimport { SimpleOptionTypes } from \"@/common/authentication.dictionary\";\nimport { deleteQueryParam } from \"@/services/url.service\";\nimport {\n browserCompatibility,\n checkRedirectFlowSupport,\n} from \"@/services/browserCompatibility.service\";\nimport { getProcessedGroupedAuthOptions } from \"../campaignAppAuthenticationOptions.service\";\n\nconst OPEN_ID_CONFIG_CLIENT_ID = \"CampaignApp\";\nconst OPEN_ID_CONFIG_POPUP_REDIRECT_HTML_NAME = \"openIdAuthRedirectPopup.html\";\nconst OPEN_ID_CONFIG_REDIRECT_HTML_NAME = \"openIdAuthRedirect.html\";\nconst OPEN_ID_CONFIG_SILENT_REDIRECT_HTML_NAME =\n \"openIdAuthSilentRedirect.html\";\nconst OPEN_ID_POPUP_WINDOW_FEATURES =\n \"menubar=yes,location=yes,toolbar=yes,width=1200,height=800,left=100,top=100;resizable=yes\";\nconst OPEN_ID_RESPONSE_TYPE = \"id_token token\";\nconst OPEN_ID_SCOPE = \"openid profile\";\nconst OPEN_ID_LOAD_USER_INFO = false;\nconst OPEN_ID_AUTOMATIC_SILENT_RENEW = true;\nconst OPEN_ID_FILTER_PROTOCOL_CLAIMS = false;\n\nconst OPEN_ID_ASSETS_BASE_PATH = `${window.location.origin}/xla/openIdClient/`;\nconst OPEN_ID_AUTH_POPUP_OPEN_ERROR_NAME = \"OPEN_ID_AUTH_POPUP_OPEN_ERROR\";\nconst OPEN_ID_AUTH_ERROR_NAME = \"OPEN_ID_AUTH_ERROR\";\nconst OPEN_ID_INTERNAL_ERROR_POPUP_CLOSED = \"Popup window closed\";\nconst OPEN_ID_INTERNAL_ERROR_POPUP_OPEN = \"Error opening popup window\";\nconst OPEN_ID_EXTERNAL_PROVIDER_QUERY_PARAM_NAME = \"use-provider\";\n// -----------------\nconst POPUP_RETURN_CHECK_LS_KEY_NAME = \"FD_BACK_FROM_OIDC\";\nconst POPUP_CHECK_INTERVAL = 1000 * 0.5;\nconst POPUP_CHECK_MAX_TIME = 1000 * 60 * 30; // 30 min\nlet popupCurrentCheckTotalTime = 0;\nlet popupCurrentCheckIntervalRef: number | undefined = undefined;\n\nconst authorityUrl = (await getIdentityClientConfiguration()).authorityUrl;\n\nconst userManagerConfig: UserManagerSettings = {\n authority: authorityUrl,\n client_id: OPEN_ID_CONFIG_CLIENT_ID,\n popup_redirect_uri: `${OPEN_ID_ASSETS_BASE_PATH}${OPEN_ID_CONFIG_POPUP_REDIRECT_HTML_NAME}`,\n redirect_uri: `${OPEN_ID_ASSETS_BASE_PATH}${OPEN_ID_CONFIG_REDIRECT_HTML_NAME}`,\n popupWindowFeatures: OPEN_ID_POPUP_WINDOW_FEATURES,\n\n /* these two will be done dynamically from the buttons clicked, but are\n needed if you want to use the silent_renew */\n response_type: OPEN_ID_RESPONSE_TYPE,\n scope: OPEN_ID_SCOPE,\n\n // this will toggle if profile endpoint is used\n loadUserInfo: OPEN_ID_LOAD_USER_INFO,\n\n /* silent renew will get a new access_token via an iFrame\n just prior to the old access_token expiring (60 seconds prior) */\n silent_redirect_uri: `${OPEN_ID_ASSETS_BASE_PATH}${OPEN_ID_CONFIG_SILENT_REDIRECT_HTML_NAME}`,\n automaticSilentRenew: OPEN_ID_AUTOMATIC_SILENT_RENEW,\n\n /* this will allow all the OIDC protocol claims to be visible in the window. normally a client app\n wouldn't care about them or want them taking up space */\n filterProtocolClaims: OPEN_ID_FILTER_PROTOCOL_CLAIMS,\n};\n\nlet userManager: UserManager | null = null;\ncreateUserManagerInstance();\nLog.logger = console;\n\nexport function beginOpenIdClientAuth(\n isLogin: boolean,\n authOption: ICampaignAppAuthenticationOption\n): void {\n if (!userManager) {\n return;\n }\n\n const externalProviderName = authOption._type;\n\n if (checkRedirectFlowSupport(externalProviderName)) {\n const stateStorePromise = isLogin\n ? campaignStateService.serializeSignInStateAndStore(authOption.id)\n : campaignStateService.serializeSignUpStateAndStore(authOption.id);\n\n stateStorePromise.then(() => {\n const searchParams = new URLSearchParams(window.location.search);\n searchParams.set(\n \"authToken\",\n campaignStateService.lastStoredGuid as string\n );\n const campaignUrl = `${window.location.origin}${\n window.location.pathname\n }?${searchParams.toString()}`; // hash (#) is dropped here\n\n userManager?.signinRedirect({\n state: {\n campaignUrl,\n },\n extraQueryParams:\n createOpenIdClientExtraQueryParams(externalProviderName),\n });\n });\n } else {\n clearPopupCheckLsKey();\n userManager\n .signinPopup({\n extraQueryParams:\n createOpenIdClientExtraQueryParams(externalProviderName),\n })\n .then(\n (user: User) => {\n clearPopupCheckLsKey();\n confirmOpenIdClientAuth(user);\n },\n (error: Error) => cancelOpenIdClientAuth(error)\n );\n }\n}\n\nexport function beginOpenIdClientSilentAuth() {\n if (!userManager) {\n return Promise.resolve(null);\n }\n\n const externalProviderNames = getProcessedGroupedAuthOptions()\n .enabledComplex.filter((caao) => !SimpleOptionTypes.includes(caao._type))\n .map((caao) => caao._type)\n .join(\",\");\n\n return userManager\n .signinSilent({\n extraQueryParams: createOpenIdClientExtraQueryParams(\n externalProviderNames\n ),\n })\n .then(\n (user: User | null) => {\n if (!user) {\n return Promise.resolve(null);\n }\n\n return confirmOpenIdClientSilentAuth(user);\n },\n (error: { error: string }) => {\n const errorKey = error.error;\n\n if (errorKey !== \"login_required\") {\n console.error(errorKey || error);\n }\n\n return Promise.resolve(null);\n }\n );\n}\n\nexport function cancelOpenIdClientAuth(error: Error): void {\n switch (error.message) {\n case OPEN_ID_INTERNAL_ERROR_POPUP_CLOSED:\n handleDetachedPopup();\n cancelAuth();\n break;\n case OPEN_ID_INTERNAL_ERROR_POPUP_OPEN:\n cancelAuth(OPEN_ID_AUTH_POPUP_OPEN_ERROR_NAME);\n break;\n default:\n cancelAuth(OPEN_ID_AUTH_ERROR_NAME);\n break;\n }\n}\n\nexport function confirmOpenIdClientAuth(user: User): void {\n setMyPageToken(user.access_token);\n finalizeComplexAuth();\n}\n\nexport async function confirmOpenIdClientSilentAuth(user: User) {\n setMyPageToken(user.access_token);\n\n return finalizeSilentComplexAuth(user);\n}\n\nexport function createUserManagerInstance(): UserManager {\n if (!userManager) {\n userManager = new UserManager(userManagerConfig);\n }\n\n return userManager;\n}\n\nexport function removeCallbackParamsFromUrl() {\n // parameters passed to auth callback page by OIDC client\n const callbackParams = [\n \"id_token\",\n \"access_token\",\n \"token_type\",\n \"expires_in\",\n \"scope\",\n \"state\",\n \"session_state\",\n ];\n\n callbackParams.forEach(function (param) {\n deleteQueryParam(param);\n });\n}\n\nfunction clearPopupCheckLsKey() {\n if (window.localStorage) {\n window.localStorage.removeItem(POPUP_RETURN_CHECK_LS_KEY_NAME);\n }\n}\n\nfunction createOpenIdClientExtraQueryParams(externalProviderNames: string) {\n return {\n [OPEN_ID_EXTERNAL_PROVIDER_QUERY_PARAM_NAME]: externalProviderNames,\n };\n}\n\nfunction handleDetachedPopup() {\n if (!browserCompatibility?.hasLocalStorage) {\n return;\n }\n\n popupCurrentCheckIntervalRef = undefined;\n popupCurrentCheckTotalTime = 0;\n\n const selectedAuthMethod = authProgress.value?.authOption;\n const checkInterval = POPUP_CHECK_INTERVAL;\n\n console.log(\n \"FD - start of polling for local storage info about OIDC return due to potentially detached popup ref\"\n );\n\n const interval = setInterval(() => {\n const timeSpentAlready = popupCurrentCheckTotalTime + checkInterval;\n\n popupCurrentCheckTotalTime = timeSpentAlready;\n\n if (timeSpentAlready > POPUP_CHECK_MAX_TIME) {\n console.log(\"FD - we exceeded max detached popup check time :( :( :(\");\n clearInterval(popupCurrentCheckIntervalRef);\n }\n\n if (\n window.localStorage.getItem(POPUP_RETURN_CHECK_LS_KEY_NAME) &&\n userManager &&\n selectedAuthMethod\n ) {\n console.log(\"FD - OIDC returned and we indeed have detached popup ref\");\n clearPopupCheckLsKey();\n clearInterval(popupCurrentCheckIntervalRef);\n setTimeout(\n () =>\n userManager\n ?.signinPopupCallback()\n .catch(() => {\n console.log(\n \"FD - Some stupid error while resuming OIDC auth after popup failure\"\n );\n })\n .finally(() => login(selectedAuthMethod)),\n checkInterval\n );\n }\n }, checkInterval);\n\n popupCurrentCheckIntervalRef = interval;\n}\n","import { openAuthFormModal, openAuthModal } from \"../authModal.service\";\nimport {\n confirmAuth,\n cancelAuth,\n finalizeSimpleAuthLogIn,\n} from \"../auth.service\";\nimport { AUTH_MOBILE_CANCELLED_ERROR_NAME } from \"./simpleMobileAuthProvider.service\";\n\nexport function beginSecureMobileAuth() {\n openAuthModal(\"secureMobile\")\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n (ls) => {\n if (ls) {\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n\nexport function beginSecureMobileLogIn() {\n openAuthModal(\"secureMobile\", { isLogIn: true })\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n () => finalizeSimpleAuthLogIn(),\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n","import {\n openAuthFormModal,\n openSimpleEmailLogInModal,\n} from \"../authModal.service\";\nimport {\n confirmAuth,\n cancelAuth,\n finalizeSimpleAuthLogIn,\n} from \"../auth.service\";\nimport { setLoginState } from \"@/services/loginState.service\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nconst SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME = \"SIMPLE_EMAIL_LOGIN_CANCELED\";\n\nexport function beginSimpleEmailAuth() {\n openAuthFormModal().then(\n (ls) => {\n if (ls) {\n setLoginState(ls as ILoginState);\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n (error) => cancelAuth(error)\n );\n}\n\nexport function beginSimpleEmailLogIn() {\n openSimpleEmailLogInModal().then(\n (param) => {\n return param\n ? finalizeSimpleAuthLogIn()\n : cancelAuth(SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME);\n },\n () => cancelAuth(SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME)\n );\n}\n","import { openAuthFormModal, openAuthModal } from \"../authModal.service\";\nimport {\n confirmAuth,\n cancelAuth,\n finalizeSimpleAuthLogIn,\n} from \"../auth.service\";\n\nexport const AUTH_MOBILE_CANCELLED_ERROR_NAME = \"AUTH_MOBILE_CANCELLED\";\n\nexport function beginSimpleMobileAuth() {\n openAuthModal(\"simpleMobile\")\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n (ls) => {\n if (ls) {\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n\nexport function beginSimpleMobileLogIn() {\n openAuthModal(\"simpleMobile\", { isLogIn: true })\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n () => finalizeSimpleAuthLogIn(),\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n","// TODO - if this doesn't grow, merge to authentication.service.ts\n\nexport const AUTH_CANCELLED_ERROR_NAME = \"AUTH_CANCELLED\";\nexport const AUTH_ERROR_ERROR_NAME = \"AUTH_ERROR\";\nexport const LOGIN_SELECTION_CANCELLED_ERROR_NAME = \"LOGIN_SELECTION_CANCELLED\";\n","import { Component, createApp } from \"vue\";\nimport VueGtagPlugin from \"vue-gtag\";\nimport { ENV_GLOBALS } from \"@/services/publicData.service\";\nimport { removeLoadIndicator } from \"@/mixins/loadingIndicator.mixin\";\nimport { initializeI18n } from \"@/services/i18n.service\";\nimport { initializeAuthentication } from \"@/services/auth/auth.service\";\nimport { initializeQueryParams } from \"@/services/url.service\";\nimport { initializeBrowserCompatibility } from \"@/services/browserCompatibility.service\";\nimport { setTitleAndIcon } from \"@/services/document.service\";\nimport { campaignStateService } from \"@/services/campaignState.service\";\n\nexport async function bootstrapCampaign(\n component: Component,\n plugins: any[] = [],\n) {\n const i18n = await initializeI18n();\n\n initializeQueryParams();\n initializeBrowserCompatibility();\n await campaignStateService.initializeCampaignState();\n initializeAuthentication();\n\n const app = createApp(component);\n\n // plugins - iterates through common + additionally passed campaign-specific plugins\n [\n [i18n],\n [\n VueGtagPlugin,\n { config: { id: ENV_GLOBALS.GOOGLE_ANALYTICS_MEASUREMENT_ID } },\n ],\n ...plugins,\n ].forEach(([plugin, pluginConfig]) => app.use(plugin, pluginConfig));\n\n app.mount(\"#app\");\n\n removeLoadIndicator();\n setTitleAndIcon();\n}\n","import { parseJSON } from \"./json.service\";\nimport { getCampaignSettingValue } from \"./settings.service\";\nimport { SUPPORTED_QUERY_PARAMS, queryParams } from \"./url.service\";\nimport Modernizr from \"modernizr\";\n\ninterface BrowserCompatibility {\n redirectFlowUserAgentGroups: { [ind: string]: string[] };\n forceRedirectFlow: boolean | null;\n hasPopups: boolean;\n hasLocalStorage: boolean;\n hasSessionStorage: boolean;\n hasCookies: boolean;\n}\n\nexport let browserCompatibility: BrowserCompatibility | null = null;\n\nexport function initializeBrowserCompatibility() {\n browserCompatibility = getBrowserCompatibility();\n}\n\nexport function checkRedirectFlowSupport(externalProviderName: string) {\n return (\n browserCompatibility?.forceRedirectFlow ||\n !checkHasPopups(externalProviderName) ||\n (!hasCookies && !hasLocalStorage && !hasSessionStorage)\n );\n}\n\nconst hasCookies = Modernizr.cookies;\nconst hasSessionStorage = Modernizr.sessionstorage;\nconst hasLocalStorage = Modernizr.localstorage;\nconst hasPopups = checkHasPopups();\n\nfunction checkHasPopups(\n externalProviderName: string | null = null,\n redirectFlowUserAgentGroups: {\n [key: string]: string[];\n } = getRedirectFlowUserAgentGroups()\n) {\n const userAgent = navigator && navigator.userAgent;\n\n if (!userAgent) {\n return true;\n }\n\n let userAgentsToCheck;\n\n if (externalProviderName) {\n userAgentsToCheck =\n redirectFlowUserAgentGroups &&\n redirectFlowUserAgentGroups[externalProviderName];\n\n if (!userAgentsToCheck || !userAgentsToCheck.length) {\n return true;\n }\n } else {\n userAgentsToCheck = Object.entries(redirectFlowUserAgentGroups)\n .reduce((all, [_, groupAgents]) => {\n (groupAgents || []).forEach((agent) => all.push(agent));\n\n return all;\n }, [] as string[])\n .filter((agent, index, agents) => index === agents.indexOf(agent));\n }\n\n return userAgentsToCheck?.every((rfua) => !new RegExp(rfua).test(userAgent));\n}\n\nfunction getRedirectFlowUserAgentGroups() {\n return (\n parseJSON(getCampaignSettingValue(\"redirectFlowUserAgents\") as string) || []\n );\n}\n\nfunction getBrowserCompatibility(\n redirectFlowUserAgentGroups: {\n [ind: string]: string[];\n } = getRedirectFlowUserAgentGroups(),\n forceRedirectFlow = queryParams &&\n queryParams[SUPPORTED_QUERY_PARAMS.REDIRECT_FLOW] === \"true\"\n) {\n return {\n hasPopups,\n hasLocalStorage,\n hasSessionStorage,\n hasCookies,\n redirectFlowUserAgentGroups,\n forceRedirectFlow,\n };\n}\n","import { ICampaignApp } from \"@/models/campaign/campaignApp.model\";\nimport { PUBLIC_DATA } from \"./publicData.service\";\nimport {\n VisualTypes,\n VisualTypesWithLoginFeature,\n} from \"@/common/visualType.dictionary\";\n\n// ---------------- WARNING -------------\n// Explained in README.md - Local Dev Guid Hack\nif (\n process.env.NODE_ENV !== \"production\" &&\n (!PUBLIC_DATA ||\n !PUBLIC_DATA.campaignApps ||\n !PUBLIC_DATA.campaignApps.campaignApps ||\n !PUBLIC_DATA.campaignApps.campaignApps.length)\n) {\n window.location.reload();\n}\n// --------------------------------------\n\nexport const campaignApp = PUBLIC_DATA?.campaignApps\n ?.campaignApps[0] as ICampaignApp;\n\nexport function getAbbreviatedVisualType() {\n const visualType = campaignApp?.visualType;\n\n return visualType\n ? visualType\n .split(/(?=[A-Z])/g)\n .map((w) => w.charAt(0))\n .join(\"\")\n : \"UNKNOWN\";\n}\n\nexport function hasParticipationSupport() {\n return campaignApp.visualType !== VisualTypes.ITEM_LIST;\n}\n\nexport function hasLoginSupport() {\n return VisualTypesWithLoginFeature.includes(campaignApp.visualType);\n}\n\nexport function hasSuspendedCMTokenLogin() {\n return campaignApp.visualType === VisualTypes.SIGN_UP;\n}\n","import { Ref, ref } from \"vue\";\nimport {\n SUPPORTED_QUERY_PARAMS,\n basePrivateApiUrl,\n getQueryParam,\n} from \"./url.service\";\nimport { serializeCampaignState } from \"./stateProcessor.service\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type StateObj = {\n [k: string]: string | string[] | StateObj | null;\n} | null;\nconst BK_STORE_ENDPOINT_URL = \"campaignapplive/states\";\nlet state: StateObj = null;\n\ninterface CampaignState {\n isLogin?: boolean;\n selectedAuthOptionId: string;\n}\n\nconst requestInit: RequestInit = {\n headers: {\n \"Content-Type\": \"application/json; charset=UTF-8\",\n Accept: \"application/json\",\n },\n};\n\nclass CampaignStateService {\n private _lastStoreGuid: Ref;\n\n constructor() {\n this._lastStoreGuid = ref(null);\n }\n\n public get lastStoredGuid(): string | null {\n return this._lastStoreGuid.value;\n }\n\n public getState() {\n return state;\n }\n\n public async initializeCampaignState() {\n const authTokenParam = getQueryParam(SUPPORTED_QUERY_PARAMS.AUTH_TOKEN);\n\n if (authTokenParam) {\n state = await campaignStateService.read(authTokenParam);\n }\n\n return Promise.resolve();\n }\n\n public async read(storeGuid: string | null): Promise {\n storeGuid = storeGuid || this.lastStoredGuid;\n\n if (!storeGuid) {\n throw new Error(\n \"Missing storeGuid. Was the campaign state stored before?\"\n );\n }\n\n const url = `${basePrivateApiUrl}${BK_STORE_ENDPOINT_URL}/${storeGuid}`;\n\n return (await fetch(url, { method: \"GET\" })).json();\n }\n\n public async serializeSignInStateAndStore(selectedAuthOptionId: string) {\n return this.store({\n selectedAuthOptionId,\n isLogin: true,\n });\n }\n\n public async serializeSignUpStateAndStore(selectedAuthOptionId: string) {\n const campaignState = await serializeCampaignState();\n\n return this.store({\n selectedAuthOptionId,\n ...campaignState,\n });\n }\n\n public setState(_state: StateObj) {\n state = _state;\n\n return this.getState();\n }\n\n public async store(campaignState: CampaignState): Promise {\n const promise = await fetch(\n `${basePrivateApiUrl}${BK_STORE_ENDPOINT_URL}`,\n {\n body: JSON.stringify(campaignState),\n method: \"POST\",\n ...requestInit,\n }\n );\n\n this._lastStoreGuid.value = await promise.json();\n\n return promise;\n }\n}\n\nexport const campaignStateService = new CampaignStateService();\n","import {\n getCampaignDateTimeSettingAsTime,\n getCampaignDateTimeSetting,\n} from \"@/services/settings.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nexport type CampaignStatus = {\n isPlanning: boolean;\n isRunning: boolean;\n isEndedOrArchived: boolean;\n isBeforeActivity: boolean;\n isAfterActivity: boolean;\n isDuringActivity: boolean;\n activityStartDate?: Date;\n activityEndDate?: Date;\n campaignIsOver?: boolean;\n};\n\nexport const useCampaignStatus = (activityName: string): CampaignStatus => {\n const now = Date.now();\n const { status } = campaignApp;\n const isPlanning = status === \"planning\";\n const isRunning = status === \"running\";\n const isEndedOrArchived = status === \"ended\" || status === \"archived\";\n\n const activityStartSettingName = `${activityName}FromDateTime`;\n const activityEndSettingName = `${activityName}ToDateTime`;\n const activityStartDateTime = getCampaignDateTimeSettingAsTime(\n activityStartSettingName\n );\n const activityEndDateTime = getCampaignDateTimeSettingAsTime(\n activityEndSettingName\n );\n\n let isBeforeActivity = false;\n let isAfterActivity = false;\n let isDuringActivity = false;\n\n if (isPlanning) {\n isBeforeActivity = true;\n } else if (isRunning) {\n isBeforeActivity = activityStartDateTime\n ? now < activityStartDateTime\n : false;\n isAfterActivity =\n !isBeforeActivity && activityEndDateTime\n ? now > activityEndDateTime\n : false;\n isDuringActivity = !isBeforeActivity && !isAfterActivity;\n } else {\n isAfterActivity = true;\n }\n\n return {\n isPlanning,\n isRunning,\n isEndedOrArchived,\n isBeforeActivity,\n isAfterActivity,\n isDuringActivity,\n activityStartDate:\n getCampaignDateTimeSetting(activityStartSettingName) || new Date(),\n activityEndDate: getCampaignDateTimeSetting(activityEndSettingName),\n };\n};\n","import { getCampaignSettingValue } from \"./settings.service\";\n\nexport function useCustomCSS() {\n const stylesSetting = getCampaignSettingValue(\"customCss\");\n\n if (!stylesSetting) {\n return;\n }\n\n const style = document.createElement(\"style\");\n document.body.append(style);\n\n style.textContent = stylesSetting;\n}\n","import { onMounted, onUpdated } from \"vue\";\nimport { getCampaignSettingValue } from \"./settings.service\";\n\nlet _customJSFunc: ((arg0: unknown) => void) | null = null;\n\nfunction _setupCustomJS() {\n const customJSSetting = getCampaignSettingValue(\"customJs\");\n\n if (customJSSetting) {\n _customJSFunc = eval(`(context) => {${customJSSetting}}`);\n }\n}\n\nfunction _executeCustomJs(context: unknown) {\n if (_customJSFunc) {\n _customJSFunc(context);\n }\n}\n\nexport function useCustomJS() {\n onMounted(() => {\n _setupCustomJS();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n _executeCustomJs(this);\n });\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n onUpdated(() => _executeCustomJs(this));\n}\n","import { $te, $ttt } from \"@/mixins/i18n.mixin\";\nimport { translateCampaignSetting } from \"./i18n.service\";\n\nconst ULTIMATE_FALLBACK_WINDOW_TITLE = \"Fandrive Campaign\";\n\nfunction setWindowTitle() {\n let title = translateCampaignSetting(\"externalTitle\");\n\n title = title ? title.trim() : \"\";\n\n if (!title) {\n const fallbackTrnKey = \"campaign.txt_campaignTitle\";\n\n title = $te(fallbackTrnKey)\n ? $ttt(fallbackTrnKey)\n : ULTIMATE_FALLBACK_WINDOW_TITLE;\n }\n\n document.title = title;\n}\n\nfunction setWindowIcon() {\n const linkEl = document.querySelector(\"link[rel~='icon']\");\n\n if (linkEl) {\n (linkEl as HTMLLinkElement).href = require(\"@/assets/favicon.png\");\n }\n}\n\nexport function setTitleAndIcon() {\n setWindowTitle();\n setWindowIcon();\n}\n","import { Ref, ref } from \"vue\";\n\nclass ErrorService {\n private _errorMessage: Ref;\n constructor() {\n this._errorMessage = ref(null);\n }\n\n public get errorMessage(): string | null {\n return this._errorMessage.value;\n }\n\n set errorMessage(m: string | null) {\n this._errorMessage.value = m;\n }\n\n public clearErrorMessage(): void {\n this._errorMessage.value = null;\n }\n\n public raiseErrorMessage(message: string): void {\n this.errorMessage = message;\n }\n}\n\nexport const errorService = new ErrorService();\n","// See: socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\common\\dict\\Application.js\n\nexport const HOST_URI =\n window.location.origin ||\n `${window.location.protocol}//${window.location.host}`;\nexport const SCRAPE_URI = `${HOST_URI.replace(\n /^(?!.*[/]$).*$/gm,\n \"$&/\"\n)}campaign/fbshare`;\n\nexport const ApplicationDictionary = {\n HOST_URI,\n SCRAPE_URI,\n};\n","import { translateObject } from \"./i18n.service\";\nimport { stripTags } from \"./url.service\";\nimport { getSingleFileUrl } from \"./files.service\";\nimport { PUBLIC_DATA } from \"./publicData.service\";\nimport { HOST_URI, SCRAPE_URI } from \"@/common/application.dictionary\";\nimport { SmartLink } from \"@/models/campaign/smartLink.model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { browserCompatibility } from \"./browserCompatibility.service\";\n\nconst campaignApp = PUBLIC_DATA.campaignApps?.campaignApps[0];\nconst fbAppId = campaignApp?.facebookAppId;\n\nexport const shareOnFb = (linkToShare: string): void => {\n // https://developers.facebook.com/docs/sharing/reference/share-dialog\n\n const url = encodeURIComponent(linkToShare);\n const shareURL = `https://www.facebook.com/dialog/share?app_id=${fbAppId}&display=popup&href=${url}`;\n\n let params = undefined;\n\n if (browserCompatibility?.hasPopups) {\n const width = 600;\n const height = 300;\n const y = window.outerHeight / 2 + window.screenY - height / 2;\n const x = window.outerWidth / 2 + window.screenX - width / 2;\n\n params = `scrollbars=false,resizable=false,status=false,location=false,toolbar=false,menubar=false,\n width=${width},height=${height},left=${x},top=${y}`;\n }\n\n window.open(shareURL, \"_blank\", params);\n};\n\nexport const createQueryForFbShare = (\n url?: string,\n title?: string,\n description?: string,\n imgUrl?: string\n): string => {\n const smartLink = PUBLIC_DATA.campaignApps?.linked?.smartLinks[0];\n const parameters: {\n fbAppId: string;\n title: string;\n description: string;\n redirectDesktopUrl?: string;\n redirectMobileUrl?: string;\n imageUrl?: string;\n } = {\n fbAppId,\n title: stripTags(\n title || translateObject(smartLink, \"smartLink\", \"title\", smartLink.title)\n ),\n description: createDescriptionForFbShare(description),\n redirectDesktopUrl: url || smartLink.originalUrl,\n redirectMobileUrl: url || smartLink.mobileUrl,\n };\n\n imgUrl = createImageLinkForFbShare(smartLink, imgUrl);\n\n if (imgUrl) {\n parameters.imageUrl = imgUrl;\n }\n\n const paramsString = JSON.stringify(parameters);\n const escapedParamsString = encodeURIComponent(paramsString);\n const base64Params = window.btoa(escapedParamsString);\n\n return `${SCRAPE_URI}?${encodeURIComponent(base64Params)}`;\n};\n\nconst createDescriptionForFbShare = (description?: string) => {\n // if description is an empty string, we have to put space char, otherwise FB doesn't respect it\n if (description !== undefined && description.trim().length === 0) {\n description = \" \";\n }\n\n // now we either have some description or fallback to default one\n description =\n description || $ttt(\"campaign.facebookShare.txt_participationDescription\");\n\n return stripTags(description);\n};\n\nconst createImageLinkForFbShare = (\n smartLink: SmartLink,\n imageUrl?: string\n): string | undefined => {\n const settings = PUBLIC_DATA.campaignSettings?.campaignSettings ?? [];\n\n // specific passed image url\n if (imageUrl) {\n return `${HOST_URI}${imageUrl}`;\n }\n\n // smart link image\n const smartLinkImageId = smartLink ? smartLink.imageFileMetaDataId : null;\n\n if (smartLinkImageId) {\n return `${HOST_URI}${getSingleFileUrl(smartLinkImageId)}`;\n }\n\n // sponsor logo or top banner\n const fallbackImage = settings\n ? settings.find((s) => s.key === \"sponsorLogoImage\")?.value ||\n settings.find((s) => s.key === \"topBannerImage\")?.value\n : null;\n\n if (fallbackImage) {\n return `${HOST_URI}${getSingleFileUrl(fallbackImage)}`;\n }\n\n return undefined;\n};\n","import { basePrivateApiUrl } from \"@/services/url.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst FILES_API_URL = `${basePrivateApiUrl}campaignapplive/campaignfiles`;\n\nfunction getUrlWithParams(\n url: string,\n params: { [key: string]: string },\n id = \"\"\n) {\n if (id && id.length > 0) {\n return `${url}/${id}/?${new URLSearchParams(params).toString()}`;\n } else {\n return `${url}/?${new URLSearchParams(params).toString()}`;\n }\n}\n\nexport function getSingleFileUrl(\n id: string | undefined | null,\n campaignGuid = campaignApp.guid\n) {\n if (!id) {\n return;\n }\n\n return getUrlWithParams(FILES_API_URL, { guid: campaignGuid }, id);\n}\n\nexport function getSingleFileUrlByGuid(\n guid: string,\n campaignGuid = campaignApp.guid\n) {\n if (!guid) {\n return;\n }\n\n return getUrlWithParams(FILES_API_URL, {\n fileguid: guid,\n guid: campaignGuid,\n });\n}\n\nexport function getSingleFileCreateUrl(\n params: { [key: string]: string },\n campaignGuid = campaignApp.guid\n) {\n if (!params.guid) {\n params.guid = campaignGuid;\n }\n\n return getUrlWithParams(FILES_API_URL, params);\n}\n","// Check https://matteo-gabriele.gitbook.io/vue-gtag/api\n\nimport { event, pageview } from \"vue-gtag\";\nimport { campaignApp, getAbbreviatedVisualType } from \"./campaignApp.service\";\n\nexport const GOOGLE_ANALYTICS_EVENTS = {\n CAMPAIGN: {\n COMMON: {\n LOGIN_CANCELLED: {\n category: \"COMMON\",\n action: \"LoginCancelled\",\n },\n LOGIN_FAILURE_WITH: {\n category: \"COMMON\",\n action: \"LoginFailureWith\",\n },\n LOGIN_SELECTION_OPENED: {\n category: \"COMMON\",\n action: \"LoginSelectionOpened\",\n },\n LOGIN_SUCCESS: { category: \"COMMON\", action: \"LoginSuccess\" },\n LOGIN_SUCCESS_KIOSK: {\n category: \"COMMON\",\n action: \"LoginSuccessKiosk\",\n },\n LOGIN_SUCCESS_WITH: {\n category: \"COMMON\",\n action: \"LoginSuccessWith\",\n },\n PARTICIPATION_SHARE: {\n category: \"COMMON\",\n action: \"CampaignParticipationShare\",\n },\n POST_PARTICIPATION_ACTION_LINK_CLICK: {\n category: \"COMMON\",\n action: \"CampaignPostParticipationActionLinkClick\",\n },\n SHARE: { category: \"COMMON\", action: \"CampaignShare\" },\n SPONSOR_LOGO_LINK_CLICK: {\n category: \"COMMON\",\n action: \"CampaignSponsorLogoLinkClick\",\n },\n },\n CQ: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTA: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTN: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTLU: {\n ANSWER_SENT: \"AnswerSent\",\n DREAM_TEAM_GUESS_SENT: \"DreamTeamGuessSent\",\n },\n GTS: {\n ANSWER_SENT: \"AnswerSent\",\n ANSWER_SENT_KIOSK: \"AnswerSentKiosk\",\n },\n KQ: {\n ANSWERS_SENT: \"AnswersSent\",\n },\n PQ: {\n ANSWERS_SENT: \"AnswersSent\",\n },\n SU: {\n SIGNED_UP: \"SignedUp\",\n },\n SF: {\n ANSWER_SENT: \"AnswerSent\",\n },\n SMV: {\n VOTE: \"Vote\",\n },\n WOF: {\n MADE_ATTEMPT: \"MadeSpin\",\n MADE_ATTEMPT_KIOSK: \"MadeSpinKiosk\",\n },\n SM: {\n MADE_ATTEMPT: \"MadeSlotSpin\",\n MADE_ATTEMPT_KIOSK: \"MadeSlotSpinKiosk\",\n },\n SCA: {\n MADE_ATTEMPT: \"MadeScratch\",\n MADE_ATTEMPT_KIOSK: \"MadeScratchKiosk\",\n },\n IL: {\n LINK_ACTION_BTN: \"LinkActionButtonClick\",\n MAIL_ACTION_BTN: \"MailActionButtonClick\",\n },\n ES: {\n UPLOAD_BTN: \"UploadButtonClick\",\n UPLOAD_COMPLETE: \"UploadComplete\",\n UPLOAD_SUBMIT: \"UploadSubmit\",\n },\n V: {\n VOTE: \"Vote\",\n },\n AF: {\n FORM_SENT: \"Form\",\n },\n GTO: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTP: {\n ANSWER_SENT: \"AnswerSent\",\n },\n SGTO: {\n CHOICE_MADE: \"ChoiceMade\",\n GUESS_SENT: \"GuessSent\",\n ROUND_POST_PARTICIPATION_BUTTON_CLICK: \"RoundPPAClick\",\n },\n SGTS: {\n GUESS_SENT: \"GuessSent\",\n MATCH_POST_PARTICIPATION_BUTTON_CLICK: \"MatchPPAClick\",\n },\n GTI: {\n GUESS_SENT: \"GuessSent\",\n },\n LE: {\n ANSWER_SENT: \"AnswerSent\",\n },\n SQ: {\n GUESS_SENT: \"GuessSent\",\n },\n },\n};\n\nexport const GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS = {\n SC_CAMPAIGN_TYPE: \"dimension2\",\n SC_EVENT_VALUE: \"dimension1\",\n SC_ORGANIZATION_ID: \"dimension3\",\n};\n\ntype GAEventParams = {\n event_category?: string;\n event_label?: string;\n [key: string]: string | number | undefined;\n};\n\ntype GAPageViewParams = {\n page_path?: string;\n page_title?: string;\n [key: string]: string | number | undefined;\n};\n\nexport function sendCampaignEvent(\n eventAction: string,\n eventCategory?: string,\n eventValue?: number | string\n) {\n const param = {\n event_category: `CMP${eventCategory || getAbbreviatedVisualType()}`,\n event_label: campaignApp.guid,\n } as GAEventParams;\n\n if (eventValue !== undefined && eventValue !== null) {\n param[GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS.SC_EVENT_VALUE] = eventValue;\n }\n\n event(eventAction, param);\n}\n\nexport function sendPageView() {\n const param = {\n page_path: `${location.pathname}${location.hash}`,\n page_title: \"FD - Campaign\",\n } as GAPageViewParams;\n\n param[GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS.SC_CAMPAIGN_TYPE] =\n getAbbreviatedVisualType();\n param[GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS.SC_ORGANIZATION_ID] =\n campaignApp.tenantId;\n param[\"title\"] = campaignApp.name;\n\n pageview(param);\n}\n\nexport function sendShareEvent() {\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.SHARE.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.SHARE.category\n );\n}\n\nexport function resetGASession() {\n // TODO - this is quite hard in GA4 ;x\n}\n","import { campaignApp } from \"./campaignApp.service\";\nimport { getAuthToken } from \"./localStorage.service\";\nimport { basePrivateApiUrl } from \"./url.service\";\n\nconst headers = {\n \"Content-Type\": \"application/vnd.api+json; charset=UTF-8\",\n};\n\nexport async function get(\n endpoint: string,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n const data = await fetch(`${basePrivateApiUrl}${endpoint}?${params}`, {\n method: \"GET\",\n headers: prepareHeaders(endpoint, customHeaders),\n });\n\n return responseHandler(data);\n}\n\nexport async function post(\n endpoint: string,\n body: BodyInit,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n const data = await fetch(`${basePrivateApiUrl}${endpoint}?${params}`, {\n method: \"POST\",\n headers: prepareHeaders(endpoint, customHeaders),\n body,\n });\n\n return responseHandler(data);\n}\n\nexport async function put(\n endpoint: string,\n body: BodyInit,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n const data = await fetch(`${basePrivateApiUrl}${endpoint}?${params}`, {\n method: \"PUT\",\n headers: prepareHeaders(endpoint, customHeaders),\n body,\n });\n\n return responseHandler(data);\n}\n\nexport async function del(\n endpoint: string,\n id: string | number,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n await fetch(`${basePrivateApiUrl}${endpoint}/${id}?${params}`, {\n method: \"DELETE\",\n headers: prepareHeaders(endpoint, customHeaders),\n });\n\n return;\n}\n\nfunction isCrossDomain(url: string) {\n try {\n const requestUrl = new URL(url, window.location.origin);\n\n return requestUrl.origin !== window.location.origin;\n } catch (error) {\n return false;\n }\n}\n\nexport function prepareHeaders(\n endpoint: string,\n customHeaders: { [key: string]: any } = {}\n) {\n let authHeaders = {};\n const storedAuthToken = getAuthToken();\n\n if (storedAuthToken && !isCrossDomain(endpoint)) {\n authHeaders = {\n Authorization: `Bearer ${storedAuthToken}`,\n };\n }\n\n return new Headers({\n ...headers,\n ...authHeaders,\n ...customHeaders,\n });\n}\n\nfunction responseHandler(res: Response) {\n if (res.ok) {\n if (res.status !== 204) {\n return res.json();\n }\n\n return;\n }\n\n throw res;\n}\n","import { Language } from \"@/models/language/language.model\";\nimport { basePrivateApiUrl } from \"./url.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst LANGUAGES_ENDPOINT = `campaignapplive/languages`;\n\nexport const getLanguages = async (): Promise => {\n const data = await fetch(\n `${basePrivateApiUrl}${LANGUAGES_ENDPOINT}?campaignAppGuid=${campaignApp.guid}`,\n { method: \"GET\" }\n );\n return data.json();\n};\n","import { LanguageOverride } from \"@/models/language/languageOverride.model\";\nimport { TranslationsDictionary } from \"@/models/language/translationsDictionary.model\";\nimport { basePrivateApiUrl } from \"./url.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst CAMPAIGN_COMMON_LANGUAGE_MODULE = `campaignCommon`;\nconst TRANSLATIONS_ENDPOINT = `i18n/dictionaries`;\nconst LANGUAGE_OVERRIDES_ENDPOINT = `campaignapplive/languageOverrides`;\n\nexport async function getTranslationsForLanguage(\n languageCode: string,\n campaignVisualType: string\n): Promise {\n const promise = await fetch(\n `${basePrivateApiUrl}${TRANSLATIONS_ENDPOINT}/${languageCode}?moduleNames[]=${CAMPAIGN_COMMON_LANGUAGE_MODULE}&moduleNames[]=${campaignVisualType}`,\n { method: \"GET\" }\n );\n\n return promise.json();\n}\n\nexport async function getLanguageOverridesFor(\n languageCode: string\n): Promise {\n const promise = await fetch(\n `${basePrivateApiUrl}${LANGUAGE_OVERRIDES_ENDPOINT}?campaignAppGuid=${campaignApp.guid}&language=${languageCode}`,\n { method: \"GET\" }\n );\n\n return promise.json();\n}\n","import { ICampaignSetting } from \"./../models/campaign/campaignSetting.model\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { getCampaignSetting } from \"./settings.service\";\nimport { I18n, createI18n } from \"vue-i18n\";\nimport { getLanguages } from \"./languages.service\";\nimport { TranslationsDictionary } from \"@/models/language/translationsDictionary.model\";\nimport {\n getLanguageOverridesFor,\n getTranslationsForLanguage,\n} from \"./translations.service\";\nimport {\n SUPPORTED_QUERY_PARAMS,\n queryParams,\n updateQueryParam,\n} from \"./url.service\";\nimport {\n getCampaignLanguage,\n storeCampaignLanguage,\n} from \"./localStorage.service\";\nimport { LanguagesDictionary } from \"@/common/languages.dictionary\";\nimport { LanguageOverride } from \"@/models/language/languageOverride.model\";\nimport { Language } from \"@/models/language/language.model\";\nimport { ref } from \"vue\";\nimport { parseJSON } from \"./json.service\";\nimport { IPrimitiveDictionary } from \"@/models/primitiveDictionary._model\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst translations: { [key: string]: IPrimitiveDictionary } = {};\nlet fallbackLocale: string;\nconst languageOverrides = ref([]);\nlet availableLanguages: Language[] = [];\n\nexport let _i18n: I18n<\n Record,\n Record,\n Record,\n string,\n false\n> | null = null;\n\nexport let locale: string;\n\n/**\n * Use this function when creating vue app\n *\n * Example:\n * ```\n * export const i18n = await initializeI18n();\n *\n * createApp(signUp).use(i18n).mount(\"#app\");\n * ```\n *\n */\nexport async function initializeI18n() {\n const dict = getInitialTranslationsDictionary();\n locale = fallbackLocale = dict.language;\n translations[locale] = dict.values;\n\n let resultLangCode = establishLanguageCodeFromQueryParam();\n\n resultLangCode = resultLangCode || establishLanguageCodeFromLocalStorage();\n\n resultLangCode = resultLangCode || establishLanguageCodeFromBrowser();\n\n // if not established yet -> fallback to primary campaign language\n resultLangCode = resultLangCode || locale;\n\n if (\n resultLangCode !== locale &&\n (await isCampaignUsingThisLanguage(resultLangCode))\n ) {\n await switchLanguageTo(resultLangCode, false);\n } else {\n resultLangCode = locale;\n updateQueryParam(SUPPORTED_QUERY_PARAMS.LANGUAGE, resultLangCode);\n }\n\n _i18n = createI18n({\n legacy: false,\n globalInjection: true,\n locale: resultLangCode, // set locale\n fallbackLocale: fallbackLocale,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messages: translations as any, // set locale messages,\n missing: (locale: string, key: string) =>\n missingTranslationHandler(key, locale),\n });\n\n return _i18n;\n}\n\nexport function getInitialTranslationsDictionary(): TranslationsDictionary {\n const dictionary: TranslationsDictionary = PUBLIC_DATA.dictionaries ?? {};\n\n try {\n dictionary.values = {\n ...dictionary.values,\n ...JSON.parse(getCampaignSetting(\"customTranslations\")?.value as string),\n };\n } catch (e) {\n /* silently ignore an invalid setting */\n }\n\n return dictionary;\n}\n\nexport async function switchLanguageTo(\n languageCode: string,\n withReload = true\n) {\n await fetchTranslationsForLanguage(languageCode);\n await fetchLanguageOverrides(languageCode);\n\n storeCampaignLanguage(languageCode);\n updateQueryParam(SUPPORTED_QUERY_PARAMS.LANGUAGE, languageCode);\n locale = languageCode;\n\n if (withReload) {\n window.location.reload();\n }\n}\n\nfunction missingTranslationHandler(key: string, _locale: string = locale) {\n console.warn(`Missing ${_locale} translation: ${key}`);\n return `Missing ${_locale} translation: ${key}`;\n}\n\nasync function fetchTranslationsForLanguage(\n languageCode: string\n): Promise {\n if (!translations[languageCode]) {\n const campaign = PUBLIC_DATA.campaignApps ?? {};\n\n const dictionary = await getTranslationsForLanguage(\n languageCode,\n campaign.campaignApps[0].visualType\n );\n\n translations[languageCode] = dictionary.values;\n }\n}\n\nasync function fetchLanguageOverrides(languageCode: string): Promise {\n languageOverrides.value = await getLanguageOverridesFor(languageCode);\n\n const languageTranslationsOverrides = languageOverrides.value.filter(\n (override: LanguageOverride) => override.objectType === \"customTranslation\"\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const translationOverrides: any = {};\n\n languageTranslationsOverrides.forEach(\n (override: LanguageOverride) =>\n (translationOverrides[override.objectId] = override.value)\n );\n\n translations[languageCode] = {\n ...translations[languageCode],\n ...translationOverrides,\n };\n}\n\nfunction establishLanguageCodeFromQueryParam(): string | null {\n return queryParams ? queryParams[SUPPORTED_QUERY_PARAMS.LANGUAGE] : null;\n}\n\nfunction establishLanguageCodeFromLocalStorage(): string | null {\n return getCampaignLanguage();\n}\n\nfunction establishLanguageCodeFromBrowser(): string | null {\n if (!window.navigator || !window.navigator.languages) {\n return null;\n }\n\n const languageCodes: string[] = Object.values(\n LanguagesDictionary.languageCodes\n );\n\n let matchedLanguage: string | null = null;\n\n for (const browserLanguageCode of window.navigator.languages) {\n if (languageCodes.includes(browserLanguageCode)) {\n matchedLanguage = browserLanguageCode;\n }\n\n if (browserLanguageCode.includes(\"-\")) {\n const twoLetterLanguageCode = browserLanguageCode.substring(0, 2);\n\n if (languageCodes.includes(twoLetterLanguageCode)) {\n matchedLanguage = twoLetterLanguageCode;\n }\n }\n\n if (matchedLanguage) {\n return matchedLanguage;\n }\n }\n\n return matchedLanguage;\n}\n\nasync function fetchLanguagesUsedByCampaign(): Promise {\n const allLanguages = await getLanguages();\n const campaignLangsIds: number[] = parseJSON(\n getCampaignSetting(\"additionalLanguages\")?.value as string\n );\n\n const campaignLangs = allLanguages.filter((language) =>\n campaignLangsIds.find((id) => id === language.id)\n );\n\n const campaign = PUBLIC_DATA.campaignApps ?? {};\n\n const mainLanguage: Language | undefined = allLanguages.find(\n (lang) => lang.languageCode === campaign.campaignApps[0].language\n );\n\n if (mainLanguage) {\n campaignLangs.push(mainLanguage);\n }\n\n return campaignLangs;\n}\n\nasync function isCampaignUsingThisLanguage(\n languageCode: string\n): Promise {\n const langs = await getLanguagesUsedByCampaign();\n\n return langs.some((lang: Language) => lang.languageCode === languageCode);\n}\n\nexport async function getLanguagesUsedByCampaign(): Promise {\n if (availableLanguages.length < 1) {\n availableLanguages = await fetchLanguagesUsedByCampaign();\n }\n\n return availableLanguages;\n}\n\nexport function translateCampaignSetting(key: string): string {\n const setting = getCampaignSetting(key);\n\n if (!setting) {\n throw Error(`Can't find setting translation for: ${key}`);\n }\n\n const settingLanguageOverride = languageOverrides.value.find(\n (override: LanguageOverride) =>\n override.objectType === \"setting\" && override.objectId === key\n );\n\n if (settingLanguageOverride) {\n return settingLanguageOverride.value;\n }\n\n return setting.value as string;\n}\n\nexport function translateObject(\n object: unknown | { id: string; [key: string]: string },\n fieldName: string,\n objectType: string,\n defaultValue?: string\n): string {\n const withDefaultValuePassed = typeof defaultValue !== \"undefined\";\n\n if (!object) {\n if (withDefaultValuePassed) {\n return defaultValue as string;\n } else {\n throw Error(`Missing object and default translation`);\n }\n }\n\n if (\n objectType &&\n (objectType === \"settings\" || objectType === \"campaignSettings\")\n ) {\n const settingValue = translateCampaignSetting(\n (object as ICampaignSetting).key\n );\n\n if (settingValue) {\n return settingValue;\n }\n\n if (withDefaultValuePassed && defaultValue) {\n return defaultValue;\n }\n\n return (\n (object as ICampaignSetting).value ??\n missingTranslationHandler(`object: ${(object as ICampaignSetting).key}`)\n );\n }\n\n defaultValue = withDefaultValuePassed\n ? defaultValue\n : (object as { id: string; [key: string]: string })[fieldName];\n\n const lo = languageOverrides.value.find(\n (ot) =>\n ot.objectType === objectType &&\n ot.objectId ===\n String((object as { id: string; [key: string]: string }).id) &&\n ot.fieldName === fieldName\n );\n\n return lo ? lo.value : (defaultValue as string);\n}\n\nexport function trimMustachesInTranslation(key: string) {\n if (!_i18n) {\n throw new Error(\"i18n was not initialized before calling this function\");\n }\n\n const dict = translations[_i18n.global.locale.value];\n\n if (!dict) {\n return;\n }\n\n let translation = dict[key] as string;\n\n if (!translation) {\n translation = translations[fallbackLocale][key] as string;\n }\n\n if (!translation) {\n return;\n }\n\n translations[_i18n.global.locale.value][key] = translation\n .replace(new RegExp(`{{`, \"g\"), \"{\")\n .replace(new RegExp(`}}`, \"g\"), \"}\");\n}\n\nexport function getLanguageCodeToSearchBy() {\n return locale !== campaignApp.language ? locale : undefined;\n}\n","export const parseJSON = (text: string) => {\n let parsed;\n\n try {\n parsed = JSON.parse(text);\n } catch (e) {\n parsed = null;\n }\n\n return parsed;\n};\n\nexport const stringifyJSON = (text: string) => {\n let string;\n\n try {\n string = JSON.stringify(text);\n } catch (e) {\n string = null;\n }\n\n return string;\n};\n","import { campaignApp } from \"./campaignApp.service\";\n\nconst LANGUAGE_PREFIX = `FD-XLA-lang`;\nconst AUTH_TOKEN_LOCAL_STORAGE_PREFIX = \"fd-auth-token-\";\n\nexport function storeCampaignLanguage(languageCode: string): void {\n localStorage.setItem(`${LANGUAGE_PREFIX}.${campaignApp.guid}`, languageCode);\n}\n\nexport function getCampaignLanguage(): string | null {\n return localStorage.getItem(`${LANGUAGE_PREFIX}.${campaignApp.guid}`);\n}\n\nexport function storeAuthToken(authToken: string) {\n localStorage.setItem(AUTH_TOKEN_LOCAL_STORAGE_PREFIX, authToken);\n}\n\nexport function clearAuthToken() {\n localStorage.removeItem(AUTH_TOKEN_LOCAL_STORAGE_PREFIX);\n}\n\nexport function getAuthToken(): string | null {\n return localStorage.getItem(AUTH_TOKEN_LOCAL_STORAGE_PREFIX);\n}\n","import { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { clearAuthToken, storeAuthToken } from \"./localStorage.service\";\nimport { basePrivateApiUrl } from \"./url.service\";\nimport {\n GOOGLE_ANALYTICS_EVENTS,\n sendCampaignEvent,\n} from \"./googleAnalytics.service\";\nimport { Ref, computed, readonly, ref } from \"vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { campaignApp } from \"./campaignApp.service\";\nimport { getAuthFields } from \"./auth/authFields.service\";\nimport { authProgress } from \"./auth/auth.service\";\nimport { prepareHeaders } from \"./http.service\";\n\nconst _loginState: Ref = ref(null);\nexport const loginState = readonly(_loginState);\n\nconst CLEAR_COOKIES_API_URL = \"campaignapplive/signup/clearcookies\";\nconst LOGIN_STATE_API_URL = \"campaignapplive/signup/loginstates\";\nconst LOGIN_STATE_SIGN_IN_API_URL = \"campaignapplive/signup/signin\";\n\nconst requestHeaders = {\n \"Content-Type\": \"application/json; charset=UTF-8\",\n};\n\nexport async function clearLoginState() {\n _loginState.value = null;\n clearAuthToken();\n\n const endpoint = CLEAR_COOKIES_API_URL;\n const promise = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n method: \"POST\",\n headers: prepareHeaders(endpoint),\n });\n\n // TODO reset GA session (currently not available in GTAG)\n // socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\mixins\\LoginState.js : 78\n\n return promise;\n}\n\nexport function getMissingAuthFieldsSummary() {\n const summary = {\n hasMissingRequiredAuthFields: false,\n hasMissingRequiredConsents: false,\n hasMissingConsents: false,\n };\n\n if (!loginState || !loginState.value) {\n return summary;\n }\n\n return (getAuthFields() || []).reduce((set, af) => {\n const lsValue = loginState.value as ILoginState;\n\n if (af.type === \"consentTexts\") {\n const isMissing = lsValue.missingConsentTextIds?.includes(\n parseInt(af.id)\n );\n\n set.hasMissingConsents = Boolean(set.hasMissingConsents || isMissing);\n set.hasMissingRequiredConsents = Boolean(\n set.hasMissingRequiredConsents || (isMissing && af.isRequired)\n );\n } else {\n let fieldValue = lsValue[af.id];\n\n if (fieldValue && typeof fieldValue === \"string\") {\n fieldValue = fieldValue.trim();\n }\n\n set.hasMissingRequiredAuthFields = Boolean(\n set.hasMissingRequiredAuthFields ||\n (af.isRequired &&\n (fieldValue === null ||\n fieldValue === undefined ||\n fieldValue === \"\"))\n );\n }\n\n return set;\n }, summary);\n}\n\nexport const isLoggedIn = computed(\n () => loginState.value?.loginStateType === \"SignedUp\"\n);\n\nexport async function loadLoginState(): Promise {\n const endpoint = `${LOGIN_STATE_API_URL}?guid=${campaignApp.guid}`;\n const fetchResponse = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n headers: prepareHeaders(endpoint, requestHeaders),\n method: \"GET\",\n });\n\n await processRetrievedLoginState(fetchResponse);\n\n return Promise.resolve(_loginState.value);\n}\n\nexport async function saveLoginState() {\n patchLoginState({ setCookie: true });\n\n const selectedAuthOptionType =\n authProgress.value?.authOption?._type ||\n authProgress.value?.loginState?.authenticationType ||\n loginState.value?.authenticationType;\n const endpoint = LOGIN_STATE_API_URL;\n let saveResponse;\n\n try {\n saveResponse = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n headers: prepareHeaders(endpoint, requestHeaders),\n method: \"POST\",\n body: JSON.stringify(_loginState.value),\n });\n } catch (err) {\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_FAILURE_WITH.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_FAILURE_WITH.category,\n selectedAuthOptionType\n );\n\n return Promise.reject();\n }\n\n if (saveResponse.status === 201) {\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_SUCCESS.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_SUCCESS.category,\n selectedAuthOptionType\n );\n\n // TODO send LOGIN_SUCCESS_KIOSK when kiosk will be implemented\n // socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\mixins\\LoginState.js : 104\n }\n\n await processRetrievedLoginState(saveResponse);\n\n return Promise.resolve(_loginState);\n}\n\nexport async function signIn() {\n patchLoginState({ setCookie: true });\n\n const endpoint = LOGIN_STATE_SIGN_IN_API_URL;\n const signInResponse = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n headers: prepareHeaders(endpoint, requestHeaders),\n method: \"POST\",\n body: JSON.stringify(_loginState.value),\n });\n\n if (!signInResponse.ok) {\n throw new Error(signInResponse.statusText);\n }\n\n await processRetrievedLoginState(signInResponse);\n\n return Promise.resolve(_loginState.value);\n}\n\nexport function patchLoginState(loginStatePatch: Partial) {\n setLoginState({\n ..._loginState.value,\n ...loginStatePatch,\n } as ILoginState);\n}\n\nexport function resetLoginState(\n campaignAppGuid: string = campaignApp.guid\n): void {\n if (_loginState.value) {\n patchLoginState({\n ...getResetAuthFields(),\n campaignAppGuid: campaignAppGuid,\n isNew: false,\n loginStateType: undefined,\n });\n }\n}\n\nexport function setLoginState(loginState: ILoginState): void {\n _loginState.value = loginState;\n}\n\nexport function setLoginStateBasedOnForm(\n formFields: FormFieldDefinition[],\n authenticationType: string\n): void {\n const loginState: {\n [key: string]:\n | string\n | number\n | boolean\n | Date\n | number[]\n | null\n | undefined;\n } = {\n campaignAppGuid: campaignApp.guid,\n authenticationType: authenticationType,\n };\n\n formFields.forEach((field) => {\n loginState[field.id] = field.value;\n });\n\n patchLoginState(loginState as Partial);\n}\n\nexport function setMyPageToken(myPageToken: string) {\n if (_loginState.value) {\n patchLoginState({ myPageToken });\n\n if (myPageToken) {\n storeAuthToken(myPageToken);\n }\n }\n}\n\nfunction getResetAuthFields() {\n return getAuthFields().reduce((authFields, authField) => {\n authFields[authField.id] = null;\n\n return authFields;\n }, {} as { [key: string]: null });\n}\n\nasync function processRetrievedLoginState(response: Response) {\n const loginState = (await response.json()) as ILoginState;\n\n loginState.isNew = response.status === 201;\n setLoginState(loginState as ILoginState);\n\n if (_loginState.value?.token || _loginState.value?.myPageToken) {\n storeAuthToken(_loginState.value.token || _loginState.value?.myPageToken);\n }\n\n return _loginState.value;\n}\n","/* This is a generic modal service. It serves as a state source for ModalContainer component.\nIts goal is to provide methods to open/close modals in this app and provide some communication\nbetween modal opener and modal instance. */\n\nimport { PromiseFunc } from \"@/models/promiseFunc._model\";\nimport { markRaw, ref } from \"vue\";\nimport { resetAuthFields } from \"./auth/authFields.service\";\n\nexport const DIALOG_MODAL_CSS_CLASS = \"fd-dialog-modal\";\nexport const currentModal = ref();\nexport const MODAL_CONFIG = ref({\n canCloseByOverlay: false,\n});\nexport const currentModalPromise = ref();\n\nlet _currentModalPromiseResolve: PromiseFunc;\nlet _currentModalPromiseReject: PromiseFunc;\n\nexport function openModal(view: object, model?: unknown): Promise {\n if (currentModalPromise.value) {\n currentModalPromise.value.catch(() => {\n /* yeah, we shouldn't throw imho*/\n return;\n });\n\n _currentModalPromiseReject(undefined);\n }\n\n currentModalPromise.value = new Promise((resolve, reject) => {\n _currentModalPromiseResolve = resolve;\n _currentModalPromiseReject = reject;\n\n currentModal.value = {\n view: markRaw(view),\n model,\n onConfirm: (param: unknown) => {\n _currentModalPromiseResolve(param);\n closeModal();\n },\n onClose: closeModal,\n onError: ({\n error,\n withClose = true,\n }: {\n error?: unknown;\n withClose: boolean;\n }) => {\n _currentModalPromiseReject(error);\n\n if (withClose) {\n closeModal();\n }\n },\n };\n });\n\n return currentModalPromise.value;\n}\n\nexport function closeModal() {\n if (_currentModalPromiseResolve) {\n _currentModalPromiseResolve(undefined);\n }\n\n currentModal.value = undefined;\n}\n\nexport function resetWithClose() {\n resetAuthFields();\n closeModal();\n}\n","import { get } from \"./http.service\";\n\nconst ENDPOINT = `campaignapplive/privatebundle`;\n\nexport async function getPrivateData(): Promise {\n return await get(ENDPOINT);\n}\n","import { EnvGlobals } from \"@/models/campaign/envGlobals.model\";\nimport { PublicData } from \"@/models/campaign/publicData._model\";\nimport { DeepReadonly } from \"vue\";\n\ndeclare global {\n interface Window {\n FD_PUBLIC_DATA: unknown;\n FD_ENV_GLOBALS: unknown;\n grecaptcha: ReCaptcha;\n }\n}\n\nexport const PUBLIC_DATA: DeepReadonly =\n window.FD_PUBLIC_DATA as DeepReadonly;\n\nexport const ENV_GLOBALS: DeepReadonly =\n window.FD_ENV_GLOBALS as DeepReadonly;\n","import { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { ICampaignSetting } from \"@/models/campaign/campaignSetting.model\";\n\nexport const getCampaignSetting = (\n key: string\n): ICampaignSetting | undefined => {\n const campaignSettings = PUBLIC_DATA.campaignSettings ?? [];\n\n if (!campaignSettings || !campaignSettings.campaignSettings.length) {\n throw Error(\"Could not read Campaign settings from public bundle\");\n }\n\n const setting = campaignSettings.campaignSettings.find(\n (setting: ICampaignSetting) => setting.key === key\n );\n\n return setting;\n};\n\nexport const getCampaignBooleanSettingValue = (key: string): boolean => {\n const value = getCampaignSettingValue(key);\n\n return value === \"true\";\n};\n\nexport const getCampaignDateTimeSetting = (key: string): Date | undefined => {\n const value = getCampaignSettingValue(key);\n\n return value ? new Date(value) : undefined;\n};\n\nexport const getCampaignDateTimeSettingAsTime = (\n key: string\n): number | undefined => {\n const date = getCampaignDateTimeSetting(key);\n\n return date ? date.getTime() : undefined;\n};\n\nexport const getCampaignSettingValue = (\n key: string\n): string | undefined | null => {\n const setting = getCampaignSetting(key);\n\n return setting ? setting.value : undefined;\n};\n\nexport const hasCampaignSetting = (key: string): boolean => {\n const { campaignSettings } = PUBLIC_DATA.campaignSettings ?? [];\n return Boolean(\n campaignSettings.find((setting: ICampaignSetting) => setting.key === key)\n );\n};\n","import { computed } from \"vue\";\nimport { getSingleFileUrl } from \"../files.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"../settings.service\";\nimport { isEmptyOrWhitespace } from \"@/utils/string\";\n\nexport const hasSportsHeaderEnabled =\n getCampaignBooleanSettingValue(\"hasSportsHeader\");\n\nexport const customImageUrl = getSingleFileUrl(\n getCampaignSettingValue(\"customSportsHeaderImage\") as string\n);\n\nexport const preselectedImageUrl = getCampaignSettingValue(\n \"sportsHeaderImageUrl\"\n);\n\nexport const sportsHeaderImageUrl = computed(() =>\n isEmptyOrWhitespace(preselectedImageUrl as string)\n ? customImageUrl\n : preselectedImageUrl\n);\n\nexport const hasSportsHeaderImageUrl = computed(() =>\n Boolean(sportsHeaderImageUrl.value)\n);\n\nexport const hasSportsHeaderWithImage = computed(\n () => hasSportsHeaderEnabled && hasSportsHeaderImageUrl.value\n);\n","import { campaignStateService, StateObj } from \"./campaignState.service\";\n\ntype SerializerHandler = (value: EventParam) => StateObj;\ntype NormalizerHandler = (value: EventParam) => void;\ntype EventParam = {\n resolve: (value?: StateObj) => void;\n state?: StateObj;\n};\n\ntype StateConsumer = {\n id?: number;\n serializer?: SerializerHandler;\n normalizer?: NormalizerHandler;\n};\n\nlet nextStateConsumerId = 1;\nconst stateConsumers: StateConsumer[] = [];\n\nasync function executeHandler(\n handler: SerializerHandler | NormalizerHandler = () => {\n return null;\n },\n state?: StateObj\n) {\n return new Promise((resolve) => handler({ resolve, state }));\n}\n\nexport async function serializeCampaignState() {\n const promises = stateConsumers\n .filter((sc) => sc.serializer !== undefined)\n .map((sc) => executeHandler(sc.serializer) as Promise);\n\n return Promise.all(promises).then((subStates: StateObj[]) => {\n const state = subStates.reduce((allState, state) => {\n allState = {\n ...allState,\n ...(state || {}),\n };\n\n return allState;\n }, {});\n\n return campaignStateService.setState(state);\n });\n}\n\nexport async function normalizeCampaignState() {\n const state = campaignStateService.getState();\n\n if (state) {\n const promises = stateConsumers.map((sc) =>\n executeHandler(sc.normalizer, state)\n );\n\n return Promise.all(promises);\n }\n\n return Promise.resolve();\n}\n\nexport function registerAsStateConsumer(stateConsumerDTO: StateConsumer) {\n stateConsumers.push({\n ...stateConsumerDTO,\n id: nextStateConsumerId++,\n });\n}\n","export const SUPPORTED_QUERY_PARAMS = {\n AUTH_TOKEN: \"authToken\",\n LANGUAGE: \"language\",\n REDIRECT_FLOW: \"redirectFlow\",\n};\n\nexport const basePrivateApiUrl = \"/privateapi/\";\nexport let queryParams: { [k: string]: string } | null = null;\n\nexport const deleteQueryParam = (key: string): void => {\n const searchParams = new URLSearchParams(window.location.search);\n\n searchParams.delete(key);\n updateUrlWithQueryParams(searchParams);\n};\n\nexport const getQueryParam = (key: string): string | null => {\n return queryParams ? queryParams[key] : null;\n};\n\nexport const initializeQueryParams = () => {\n queryParams = getQueryParams();\n\n // this should be dropped from URL asap after load\n deleteQueryParam(SUPPORTED_QUERY_PARAMS.AUTH_TOKEN);\n};\n\nexport const stripTags = (text: string): string =>\n text ? text.replaceAll(/(<([^>]+)>)/gi, \"\") : text;\n\nexport const updateQueryParam = (key: string, value: string): void => {\n const searchParams = new URLSearchParams(window.location.search);\n\n searchParams.set(key, value);\n updateUrlWithQueryParams(searchParams);\n};\n\nconst getQueryParams = () =>\n Object.fromEntries(new URLSearchParams(window.location.search));\n\nconst updateUrlWithQueryParams = (searchParams: URLSearchParams) => {\n const newRelativePathQuery = `${\n window.location.pathname\n }?${searchParams.toString()}${window.location.hash}`;\n history.pushState(null, \"\", newRelativePathQuery);\n};\n\nexport function hasCMTokenInURL() {\n return !!getCMToken();\n}\n\nexport function getCMToken() {\n return getQueryParam(\"cmtoken\") || getQueryParam(\"cmToken\") || getQueryParam(\"token\");\n}\n\nexport function removeCMToken() {\n deleteQueryParam(\"cmtoken\");\n deleteQueryParam(\"cmToken\");\n deleteQueryParam(\"token\");\n\n if (queryParams) {\n delete queryParams.cmtoken;\n delete queryParams.cmToken;\n delete queryParams.token;\n }\n}\n","import { I18nInstance } from \"@/mixins/i18n.mixin\";\nimport { _i18n } from \"@/services/i18n.service\";\n\ntype FormatOptions = {\n [key in\n | \"LLLL\"\n | \"LLL\"\n | \"LL\"\n | \"L\"\n | \"MMMM\"\n | \"MMM\"\n | \"L LT\"\n | \"HH:mm\"\n | \"LT\"]: Intl.DateTimeFormatOptions;\n};\n\nconst formatOptions: FormatOptions = {\n LLLL: {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n },\n LLL: {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n },\n LL: {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n },\n L: {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n },\n MMMM: {\n month: \"long\",\n },\n MMM: {\n month: \"short\",\n },\n \"L LT\": {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"numeric\",\n minute: \"2-digit\",\n },\n LT: {\n hour: \"numeric\",\n minute: \"2-digit\",\n },\n \"HH:mm\": {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: false,\n },\n};\n\nexport function formatDate(\n date: number | Date,\n format: keyof FormatOptions\n): string {\n if (!date) return \"global.err_invalidDate\";\n\n const options: Intl.DateTimeFormatOptions = formatOptions[format];\n\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts\n // TODO format to remove 'at' from english (and potentially other) date formats. Moment.js did not included 'at'\n // expected: December 20, 2023 10:09 AM\n // actual: December 20, 2023 at 10:09 AM\n\n return new Intl.DateTimeFormat(\n (_i18n as I18nInstance).global.locale.value,\n options\n ).format(date);\n}\n","/**\n * Simple check if whole string is empty or whitespace only.\n * @param candidate for possible empty or whitespace only string\n * @returns true if candidate is an empty or whitespace only string\n */\nexport function isEmptyOrWhitespace(candidate: string): boolean {\n return !candidate?.toString().trim();\n}\n\nexport function countChar(text: string, char: string): number {\n return ((text || \"\").match(new RegExp(char, \"g\")) || []).length;\n}\n\nexport function trimToLength(text: string, maxLength: number) {\n return text && text.length > maxLength\n ? `${text.substring(0, maxLength)}...`\n : text;\n}\n","/**\n * Simple check if whole string is an email address.\n * @param candidate for possible email address\n * @returns true if candidate is an email address\n */\nexport function isEmail(candidate: string): boolean {\n const regex = new RegExp(\n /^[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/gi\n );\n return regex.test(candidate);\n}\n\nexport function preloadImages(\n imageUrls: string[],\n fallbackImgUrl: string | null | undefined = undefined\n) {\n (imageUrls || []).forEach((imgUrl: string) => {\n try {\n preloadImage(imgUrl, fallbackImgUrl);\n } catch (err) {\n // ...\n }\n });\n}\n\nexport function preloadImage(\n imageUrl: string,\n fallbackImgUrl: string | null | undefined = undefined\n) {\n return new Promise((resolve, reject) => {\n const imgEl = document.createElement(\"img\");\n\n imgEl.addEventListener(\"load\", () => resolve());\n imgEl.addEventListener(\"error\", () => {\n if (fallbackImgUrl) {\n imgEl.src = fallbackImgUrl;\n fallbackImgUrl = null;\n } else {\n reject();\n }\n });\n\n imgEl.src = imageUrl;\n });\n}\n\nexport function getRandomNumber() {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n}\n\nexport function getAsUrlParams(data: any) {\n if (!data) {\n return \"\";\n }\n\n const paramsString: string = Object.entries(data).reduce(\n (result: string, [propName, propValue]) => {\n if (propValue !== undefined && propValue !== \"\") {\n if (Array.isArray(propValue)) {\n const arrayParams = propValue\n .filter((v) => Boolean(v))\n .map((value: any) => `${propName}[]=${value}`)\n .join(\"&\");\n\n result += `&${arrayParams}`;\n } else {\n result += `&${propName}=${propValue}`;\n }\n }\n\n return result;\n },\n \"\"\n );\n\n return paramsString ? `&${paramsString}` : \"\";\n}\n\nexport function debounce(callback: (args?: any) => any, timeout: number) {\n let timeoutId: number | undefined = undefined;\n\n return (...args: any) => {\n window.clearTimeout(timeoutId);\n\n timeoutId = window.setTimeout(() => {\n callback(...args);\n }, timeout);\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\n\nimport { trimToLength } from \"@/utils/string\";\n\nimport { htmlToText } from \"html-to-text\";\n\nconst INGRESS_MAX_LENGTH = 100; // different from TLA due to XLA designs\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'DisplayableItemIngress',\n props: {\n ingress: String,\n description: String,\n},\n setup(__props) {\n\nconst props = __props;\n\nconst ingressToShow =\n !props.ingress && props.description\n ? trimToLength(htmlToText(props.description), INGRESS_MAX_LENGTH)\n : props.ingress || \"\";\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", { innerHTML: _unref(ingressToShow) }, null, 8, _hoisted_1))\n}\n}\n\n})","import script from \"./DisplayableItemIngress.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DisplayableItemIngress.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createBlock as _createBlock, renderList as _renderList, Fragment as _Fragment, createVNode as _createVNode } from \"vue\"\nimport _imports_0 from '@/assets/images/video-overlay-1-1.png'\n\n\nconst _hoisted_1 = {\n key: 0,\n src: _imports_0,\n class: \"cursor-pointer absolute w-full h-full left-0 top-0\"\n}\nconst _hoisted_2 = { class: \"content p-10 flex-grow shrink-0\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"vote-count rounded-sm text-sm font-bold inline-flex line-height-1 mb-20 h-[25px] items-center px-10 bg-text-color/10\"\n}\nconst _hoisted_4 = { class: \"w-full mb-10 text-ellipsis overflow-hidden whitespace-nowrap break-words\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { class: \"categories-wrapper mt-10\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"categories\"\n}\nconst _hoisted_8 = { class: \"actions flex flex-wrap mobileXl:flex-nowrap w-full gap-10 justify-between items-center p-10\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { key: 0 }\nconst _hoisted_11 = { key: 1 }\n\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { computed } from \"vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport DisplayableItemIngress from \"@/components/content/DisplayableItemIngress.vue\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ListVotingItem',\n props: {\n item: DisplayableVotingItem,\n hasAnyLoadingState: {\n type: Boolean,\n default: false,\n },\n hasVotingDisabled: {\n type: Boolean,\n default: false,\n },\n withCategories: {\n type: Boolean,\n default: true,\n },\n},\n emits: [\"goToItem\", \"sendVote\", \"shareItem\"],\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst imgRatio = getCampaignSettingValue(\"imageRatio\");\nconst showShareButton = getCampaignBooleanSettingValue(\"showShareButton\");\nconst hasVoteBtnDisabled = computed(() =>\n Boolean(props.item?.votingVotes?.length)\n);\nconst showVoteCount = getCampaignBooleanSettingValue(\"showVoteCount\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"voting-item overflow-hidden text-text-color shadow-sm rounded-lg flex flex-col\", `${\n __props.item?.votingVotes?.length ? 'bg-text-color/5' : ''\n } voting-item-${__props.item?.id}`])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"image-container overflow-hidden\", `ratio-${_unref(imgRatio)?.replace(':', '-')}`])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"image w-full h-full cursor-pointer bg-center bg-no-repeat bg-cover relative\", `${\n __props.item?.hasPlaceholderPreviewImage ? 'with-placeholder' : ''\n } ${__props.item?.hasVideoPreviewImage ? 'with-video' : ''}`]),\n style: _normalizeStyle({ backgroundImage: `url(${__props.item?.previewImage})` }),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('goToItem', __props.item)))\n }, [\n (__props.item?.hasVideoPreviewImage && !__props.item?.hasPlaceholderPreviewImage)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_1))\n : _createCommentVNode(\"\", true)\n ], 6)\n ], 2),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(showVoteCount))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_vote\", {\n count: __props.item?.voteCount,\n })), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"a\", {\n class: \"item-link font-bold text-sm inline hover:underline\",\n href: \"javascript:;\",\n title: __props.item?.title,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('goToItem', __props.item)))\n }, _toDisplayString(__props.item?.title), 9, _hoisted_5)\n ]),\n (__props.item?.ingress || __props.item?.description)\n ? (_openBlock(), _createBlock(DisplayableItemIngress, {\n key: 1,\n class: \"ingress text-sm opacity-70 overflow-hidden text-ellipsis line-clamp-2\",\n ingress: __props.item?.ingress,\n description: __props.item?.description\n }, null, 8, [\"ingress\", \"description\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n (__props.withCategories && __props.item?.votingCategories?.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item?.votingCategories, (category) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: category.id,\n class: \"category inline-block font-semibold text-xs\"\n }, _toDisplayString(category.name), 1))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (!__props.hasVotingDisabled)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\"vote bg-primary-color inline-flex items-center justify-center text-primary-color-inverted-for-text rounded-lg p-10 text-sm font-bold\", {\n 'hover:opacity-70': !hasVoteBtnDisabled.value,\n 'opacity-50': hasVoteBtnDisabled.value,\n 'w-full mobileXl:w-1/2': _unref(showShareButton),\n 'w-full': !_unref(showShareButton),\n }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('sendVote', __props.item))),\n disabled: hasVoteBtnDisabled.value\n }, [\n (__props.item?.votingVotes?.length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_voted\")), 1))\n : _createCommentVNode(\"\", true),\n (!__props.item?.votingVotes?.length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_vote\")), 1))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_9))\n : _createCommentVNode(\"\", true),\n (_unref(showShareButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"share bg-facebook text-white text-sm font-bold rounded-lg p-10 inline-flex grow basis-1/2 items-center justify-center hover:opacity-70\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('shareItem', __props.item)))\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-15\",\n icon: _unref(faFacebook)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", null, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_share\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n}\n}\n\n})","import script from \"./ListVotingItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ListVotingItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ListVotingItem.vue?vue&type=style&index=0&id=1be75e23&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1be75e23\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"fd-video-object\",\n ref: \"cmpEl\"\n}\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = [\"src\", \"allow\", \"width\", \"height\"]\nconst _hoisted_4 = {\n key: 1,\n class: \"text-danger-color incorrect-url-info\"\n}\n\nimport { countChar } from \"@/utils/string\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { faExclamationCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { computed, getCurrentInstance, onMounted } from \"vue\";\n\n\nconst DEFAULT_WIDTH = '400';\nconst DEFAULT_HEIGHT = '250';\nconst W_MODE_PARAM = \"wmode=transparent\";\nconst AUTOPLAY_PARAM_ON = \"autoplay=1\";\nconst AUTOPLAY_PARAM_OFF = \"autoplay=0\";\nconst YT_FORMAT_A = \"www.youtube.com/watch?v=\";\nconst YT_FORMAT_B = \"youtu.be/\";\nconst YT_FORMAT_C = \"youtube.com/watch?v=\";\nconst YT_TARGET_FORMAT = \"www.youtube.com/embed/\";\nconst YT_MUTED_PARAM_ON = \"mute=1\";\nconst YT_MUTED_PARAM_OFF = \"mute=0\";\nconst YT_PARAM_KEYS_MAP: { [key: string]: string } = {\n // add more params when necessary, from https://developers.google.com/youtube/player_parameters\n t: \"start\",\n};\nconst VIMEO_FORMAT_A = \"vimeo.com/\";\nconst VIMEO_TARGET_FORMAT = \"player.vimeo.com/video/\";\nconst VIMEO_MUTED_PARAM_ON = \"muted=1\";\nconst VIMEO_MUTED_PARAM_OFF = \"muted=0\";\n\nconst __default__ = {};\n\nexport default /*@__PURE__*/_defineComponent({\n ...__default__,\n __name: 'VideoObject',\n props: {\n src: {\n type: String,\n required: true,\n },\n width: {\n default: DEFAULT_WIDTH,\n },\n height: {\n default: DEFAULT_HEIGHT,\n },\n allowFullscreen: {\n type: Boolean,\n default: true,\n },\n allowAutoplay: {\n type: Boolean,\n default: false,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\nconst allowParamString = computed(() =>\n [\n ...(props.allowAutoplay ? [\"autoplay\"] : []),\n ...(props.allowFullscreen ? [\"fullscreen\"] : []),\n ].join(\"; \")\n);\n\nconst displayableSrc = computed(() => {\n let src = props.src;\n\n if (isYTFormat.value) {\n src = parseYTSrc(src);\n } else if (isVimeoFormat.value) {\n src = parseVimeoSrc(src);\n }\n\n src = verifyAutoplay(src);\n src = fixProtocol(src);\n src = fixQueryParams(src);\n\n return src;\n});\n\nconst isYTFormatA = computed(() => props.src.includes(YT_FORMAT_A));\nconst isYTFormatB = computed(() => props.src.includes(YT_FORMAT_B));\nconst isYTFormatC = computed(() => props.src.includes(YT_FORMAT_C));\nconst isYTFormat = computed(\n () => isYTFormatA.value || isYTFormatB.value || isYTFormatC.value\n);\n\nconst isVimeoFormat = computed(() => props.src.includes(VIMEO_FORMAT_A));\n\nconst isCorrect = computed(() => isYTFormat.value || isVimeoFormat.value);\n\nconst cmpInstance = getCurrentInstance();\n\nonMounted(() => {\n const cmpEl = cmpInstance?.proxy?.$el as HTMLElement;\n const iFrameEl = cmpEl.querySelector(\"iframe\") as HTMLIFrameElement;\n\n iFrameEl?.setAttribute(\"width\", props.width.toString());\n iFrameEl?.setAttribute(\"height\", props.height.toString());\n});\n\n// ------------\nconst fixProtocol = (url: string) => {\n const protocol = window.location.protocol;\n const isHttps = protocol.indexOf(\"https\") !== -1;\n const urlShouldBeChanged = isHttps && url.indexOf(\"https\") === -1;\n\n return urlShouldBeChanged ? url.replace(\"http://\", \"https://\") : url;\n};\n\nconst fixQueryParams = (url: string) => {\n const queryStartPos = url.indexOf(\"?\");\n const firstParamPos = url.indexOf(\"&\");\n\n if (\n queryStartPos === -1 ||\n (firstParamPos === -1 && countChar(url, \"\\\\?\") === 1) ||\n queryStartPos < firstParamPos\n ) {\n return url;\n }\n\n return url.replaceAll(\"?\", \"&\").replace(\"&\", \"?\");\n};\n\nconst mapKnownYTParams = (params: string[]) => {\n return (params || []).reduce((mapped: string[], paramKeyValue: string) => {\n const [paramKey, paramValue] = paramKeyValue.split(\"=\");\n const mappedParamKey = YT_PARAM_KEYS_MAP[paramKey];\n\n if (mappedParamKey) {\n mapped.push(`${mappedParamKey}=${paramValue}`);\n }\n\n return mapped;\n }, []);\n};\n\nconst parseVimeoSrc = (src: string) => {\n let matchedVimeoFormat = isVimeoFormat.value ? VIMEO_FORMAT_A : null;\n\n if (!matchedVimeoFormat) {\n return src;\n }\n\n src = src.replace(matchedVimeoFormat, VIMEO_TARGET_FORMAT);\n\n const extraParametersIndex = src.indexOf(\"&\");\n\n src = extraParametersIndex === -1 ? src : src.slice(0, extraParametersIndex);\n\n return src;\n};\n\nconst parseYTSrc = (src: string) => {\n let matchedYTFormat = null;\n\n if (isYTFormatA.value) {\n matchedYTFormat = YT_FORMAT_A;\n } else if (isYTFormatB.value) {\n matchedYTFormat = YT_FORMAT_B;\n } else if (isYTFormatC.value) {\n matchedYTFormat = YT_FORMAT_C;\n }\n\n if (!matchedYTFormat) {\n return src;\n }\n\n src = src.replace(matchedYTFormat, YT_TARGET_FORMAT);\n src = processYTParams(src);\n\n return src;\n};\n\nconst processYTParams = (src: string) => {\n let params: string[] = [];\n const paramsStartIndex = src.indexOf(\"?\");\n\n if (paramsStartIndex !== -1) {\n params = src.substring(paramsStartIndex + 1).split(\"&\");\n params = mapKnownYTParams(params);\n src = src.substring(0, paramsStartIndex);\n }\n\n params.push(W_MODE_PARAM);\n\n return `${src}?${params.join(\"&\")}`;\n};\n\nconst verifyAutoplay = (src: string) => {\n const isYT = isYTFormat.value;\n const mutedParamOn = isYT ? YT_MUTED_PARAM_ON : VIMEO_MUTED_PARAM_ON;\n const mutedParamOff = isYT ? YT_MUTED_PARAM_OFF : VIMEO_MUTED_PARAM_OFF;\n\n if (!props.allowAutoplay) {\n src\n .replace(AUTOPLAY_PARAM_ON, AUTOPLAY_PARAM_OFF)\n .replace(mutedParamOn, mutedParamOff);\n } else {\n const hasQPStart = src.indexOf(\"?\") !== -1;\n\n if (src.indexOf(AUTOPLAY_PARAM_ON) === -1) {\n src += `${hasQPStart ? \"&\" : \"?\"}${AUTOPLAY_PARAM_ON}`;\n }\n\n if (src.indexOf(mutedParamOn) === -1) {\n src += `&${mutedParamOn}`;\n }\n }\n\n return src;\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (isCorrect.value && displayableSrc.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"iframe\", {\n src: displayableSrc.value,\n allow: allowParamString.value,\n width: __props.width,\n height: __props.height\n }, null, 8, _hoisted_3)\n ]))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_4, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-20 text-sm\",\n icon: _unref(faExclamationCircle)\n }, null, 8, [\"icon\"])\n ]))\n ], 512))\n}\n}\n\n})","import script from \"./VideoObject.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VideoObject.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = [\"onClick\"]\nconst _hoisted_2 = { class: \"w-full flex justify-center items-center overscroll-contain overflow-hidden\" }\nconst _hoisted_3 = [\"src\"]\n\nimport { SwiperSlide, Swiper } from \"swiper/vue\";\nimport { Pagination, Autoplay, Navigation } from \"swiper/modules\";\nimport { PaginationOptions } from \"swiper/types\";\nimport \"swiper/scss\";\nimport \"swiper/scss/pagination\";\nimport \"swiper/scss/navigation\";\nimport \"swiper/scss/autoplay\";\nimport { ref, computed } from \"vue\";\nimport FullscreenModal from \"@/components/FullscreenModal.vue\";\nimport { VotingItemImage } from \"@/models/campaign/voting/votingPublicData._model\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\n\n// --------- setup\nconst SLIDES_PER_VIEW = 2;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'VotingItemImageCarousel',\n props: {\n item: DisplayableVotingItem,\n},\n setup(__props) {\n\nconst props = __props;\n\nconst votingItemImagePreview = ref | null>(\n null\n);\n\nconst votingItemImageCount = computed(\n () => props.item?.sortedImages?.length || 0\n);\n// ---------\n\n// --------- carousel plugin config\nconst canLoop = votingItemImageCount.value >= SLIDES_PER_VIEW * 2;\n\nconst autoplay = {\n delay: 2500,\n};\n\nconst pagination: PaginationOptions = {\n clickable: !canLoop, // when loop is on, then pagination bullets gets buggy\n dynamicBullets: canLoop,\n renderBullet: function (_: number, className: string) {\n return ``;\n },\n};\n\nconst modules = [Pagination, Autoplay, Navigation];\nconst navigation = {\n nextEl: \".carousel-next\",\n prevEl: \".carousel-prev\",\n};\n// -------------------------\n\nconst imgRatio = getCampaignSettingValue(\"imageRatio\");\n\nconst currentImage = ref(undefined);\nconst imageUrl = ref(\"\");\n\nfunction getVotingItemImageUrl(votingItemImage: VotingItemImage) {\n return getSingleFileUrl(\n `${votingItemImage.fileMetaDataId}`,\n campaignApp.guid\n );\n}\n\nfunction onIndexChange(event: typeof Swiper) {\n currentImage.value = (props.item?.sortedImages || [])[event.realIndex];\n}\n\nfunction openImagePreview(votingItemImage: VotingItemImage) {\n imageUrl.value = getVotingItemImageUrl(votingItemImage) as string;\n votingItemImagePreview.value?.openModal();\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_unref(Swiper), {\n class: \"voting-item-image-carousel\",\n modules: modules,\n loop: canLoop,\n rewind: !canLoop,\n pagination: pagination,\n autoplay: autoplay,\n navigation: navigation,\n centeredSlides: true,\n slidesOffsetBefore: 0,\n autoHeight: false,\n spaceBetween: 20,\n slidesPerView: SLIDES_PER_VIEW,\n onActiveIndexChange: _cache[0] || (_cache[0] = ($event: any) => (onIndexChange($event as any)))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item?.sortedImages, (votingItemImage, iter) => {\n return (_openBlock(), _createBlock(_unref(SwiperSlide), {\n class: \"rounded-[4px] overflow-hidden pb-30 bg-transparent\",\n key: iter\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (openImagePreview(votingItemImage)),\n class: \"bg-transparent rounded-[4px]\"\n }, [\n _createElementVNode(\"div\", {\n class: \"xla-prize-image bg-no-repeat bg-center bg-cover rounded-[4px]\",\n style: _normalizeStyle(`background-image: url(${getVotingItemImageUrl(\n votingItemImage\n )}); aspect-ratio: ${_unref(imgRatio)?.replace(':', '/')};`)\n }, null, 4)\n ], 8, _hoisted_1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"rewind\"]),\n _createVNode(FullscreenModal, {\n ref_key: \"votingItemImagePreview\",\n ref: votingItemImagePreview\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"img\", {\n class: \"w-10/12 mobileXl:w-1/3 py-80\",\n src: imageUrl.value\n }, null, 8, _hoisted_3)\n ])\n ]),\n _: 1\n }, 512)\n ]))\n}\n}\n\n})","import script from \"./VotingItemImageCarousel.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VotingItemImageCarousel.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./VotingItemImageCarousel.vue?vue&type=style&index=0&id=928149e0&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-928149e0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"voting-item bg-background-color text-text-color\" }\nconst _hoisted_2 = { class: \"item-title flex flex-row justify-between p-20\" }\nconst _hoisted_3 = { class: \"flex items-center gap-10\" }\nconst _hoisted_4 = { class: \"hidden mobileXl:block text-2xl text-left font-bold\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"votes-count mr-10 px-10 py-[4px] font-bold text-xs rounded-sm bg-text-sc-black/10\"\n}\nconst _hoisted_6 = { class: \"font-bold text-base\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"video p-20\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"images-wrapper w-full mt-20 px-20\"\n}\nconst _hoisted_9 = { class: \"w-full p-20 flex justify-between\" }\nconst _hoisted_10 = { class: \"w-full text-left inline-flex flex-col\" }\nconst _hoisted_11 = { class: \"empty:mb-0 mb-20\" }\nconst _hoisted_12 = { class: \"block mobileXl:hidden mb-20 text-xl text-left font-bold\" }\nconst _hoisted_13 = [\"innerHTML\"]\nconst _hoisted_14 = [\"innerHTML\"]\nconst _hoisted_15 = {\n key: 2,\n class: \"mt-20\"\n}\nconst _hoisted_16 = { class: \"actions flex w-full justify-start items-center\" }\nconst _hoisted_17 = [\"disabled\"]\nconst _hoisted_18 = { key: 0 }\nconst _hoisted_19 = { key: 1 }\nconst _hoisted_20 = [\"disabled\"]\nconst _hoisted_21 = [\"disabled\"]\nconst _hoisted_22 = [\"disabled\"]\nconst _hoisted_23 = { class: \"w-full flex justify-center items-center overscroll-contain overflow-hidden\" }\nconst _hoisted_24 = [\"src\"]\n\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { computed, ref } from \"vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { faArrowLeft } from \"@fortawesome/free-solid-svg-icons\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport VideoObject from \"@/components/VideoObject.vue\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport VotingItemImageCarousel from \"./VotingItemImageCarousel.vue\";\nimport FullscreenModal from \"@/components/FullscreenModal.vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'VotingItem',\n props: {\n item: DisplayableVotingItem,\n showNavigationButtons: {\n type: Boolean,\n default: true,\n },\n hasPreviousItems: {\n type: Boolean,\n default: false,\n },\n hasMoreItems: {\n type: Boolean,\n default: false,\n },\n hasAnyLoadingState: {\n type: Boolean,\n default: false,\n },\n hasVotingDisabled: {\n type: Boolean,\n default: false,\n },\n withCategories: {\n type: Boolean,\n default: true,\n },\n},\n emits: [\n \"getPrevItem\",\n \"getNextItem\",\n \"backToList\",\n \"goToItem\",\n \"sendVote\",\n \"shareItem\",\n],\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst imgRatio = getCampaignSettingValue(\"imageRatio\");\nconst imgRatioClass = `ratio-${imgRatio?.replace(\":\", \"-\")}`;\nconst showVoteCount = getCampaignBooleanSettingValue(\"showVoteCount\");\nconst showShareButton = getCampaignBooleanSettingValue(\"showShareButton\");\n\nconst hasAtLeastOneImage = computed(\n () => (props.item?.votingItemImages?.length || 0) <= 1\n);\n\nconst hasVotes = computed(() => {\n return Boolean(props.item?.votingVotes?.length);\n});\n\nconst imagePreview = ref | null>(null);\n\nfunction seeMainImage() {\n if (!props.item?.hasPlaceholderPreviewImage) {\n imagePreview.value?.openModal();\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"voting-item-wrapper\", `voting-item-${__props.item?.id}`])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, [\n _createElementVNode(\"h3\", _hoisted_4, _toDisplayString(__props.item?.title), 1),\n (_unref(showVoteCount))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_vote\", {\n count: __props.item?.voteCount,\n })), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n class: \"back-to-list-button flex items-center px-20 py-10 rounded-lg bg-background-color mobileXl:bg-text-color text-text-color mobileXl:text-[var(--text-color-inverted)] hover:opacity-70\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('backToList')))\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-15 text-lg align-middle\",\n icon: _unref(faArrowLeft)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref($ttt)(\"campaign.voting.btn_backToList\")), 1)\n ])\n ]),\n _cache[7] || (_cache[7] = _createElementVNode(\"div\", { class: \"border border-solid border-text-color/20\" }, null, -1)),\n (__props.item?.videoUrl)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createVNode(VideoObject, {\n src: __props.item.videoUrl,\n width: '100%',\n height: '100%'\n }, null, 8, [\"src\"])\n ]))\n : _createCommentVNode(\"\", true),\n ((__props.item?.votingItemImages?.length || 0) >= 2)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createVNode(VotingItemImageCarousel, { item: __props.item }, null, 8, [\"item\"])\n ]))\n : _createCommentVNode(\"\", true),\n (hasAtLeastOneImage.value && !__props.item?.hasVideoPreviewImage)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: _normalizeClass([\"image block mobileXl:hidden rounded-lg mx-20 mt-20 bg-center h-full bg-no-repeat bg-cover relative shrink-0\", [\n {\n 'hover:cursor-pointer': !props.item?.hasPlaceholderPreviewImage,\n },\n imgRatioClass,\n ]]),\n style: _normalizeStyle({\n backgroundImage: `url(${__props.item?.previewImage})`,\n }),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (seeMainImage()))\n }, null, 6))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"h3\", _hoisted_12, _toDisplayString(__props.item?.title), 1),\n (__props.item?.ingress)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"ingress ingress--detail-view text-base mobileXl:text-lg mb-10\",\n innerHTML: __props.item?.ingress\n }, null, 8, _hoisted_13))\n : _createCommentVNode(\"\", true),\n (__props.item?.description)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"description text-sm\",\n innerHTML: __props.item?.description\n }, null, 8, _hoisted_14))\n : _createCommentVNode(\"\", true),\n (__props.withCategories && __props.item?.votingCategories?.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item?.votingCategories, (category) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: category.id,\n class: \"inline-block font-semibold text-base mr-10\"\n }, _toDisplayString(category.name), 1))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n (!__props.hasVotingDisabled)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\"vote w-full mobileXl:w-auto min-w-[109px] h-[50px] mobileXl:h-auto p-10 mr-10 leading-[22px] inline-flex items-center justify-center bg-primary-color text-primary-color-inverted-for-text rounded-lg font-bold\", {\n 'hover:opacity-70': !hasVotes.value && !__props.hasAnyLoadingState,\n 'opacity-50': hasVotes.value || __props.hasAnyLoadingState,\n }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('sendVote', __props.item))),\n disabled: hasVotes.value || __props.hasAnyLoadingState\n }, [\n (hasVotes.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_voted\")), 1))\n : _createCommentVNode(\"\", true),\n (!hasVotes.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_19, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_vote\")), 1))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_17))\n : _createCommentVNode(\"\", true),\n (_unref(showShareButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n disabled: __props.hasAnyLoadingState,\n class: _normalizeClass([\"share w-full mobileXl:w-auto min-w-[109px] h-[50px] mobileXl:h-auto p-10 leading-[22px] bg-facebook text-white font-bold rounded-lg inline-flex items-center justify-center\", {\n 'hover:opacity-70': !__props.hasAnyLoadingState,\n 'opacity-50': __props.hasAnyLoadingState,\n }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('shareItem', __props.item)))\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-15\",\n icon: _unref(faFacebook)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", null, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_share\")), 1)\n ], 10, _hoisted_20))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n (hasAtLeastOneImage.value && !__props.item?.hasVideoPreviewImage)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"image hidden mobileXl:block rounded-lg ml-10 bg-center h-full bg-no-repeat bg-cover relative shrink-0 w-[30%]\", [\n {\n 'hover:cursor-pointer': !props.item?.hasPlaceholderPreviewImage,\n },\n imgRatioClass,\n ]]),\n style: _normalizeStyle({\n backgroundImage: `url(${__props.item?.previewImage})`,\n }),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (seeMainImage()))\n }, null, 6))\n : _createCommentVNode(\"\", true)\n ]),\n _cache[8] || (_cache[8] = _createElementVNode(\"div\", { class: \"border border-solid border-text-color/20\" }, null, -1)),\n (__props.showNavigationButtons)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 3,\n class: _normalizeClass([\"prev-next-controls p-20 flex\", {\n 'prev-only': __props.hasMoreItems,\n 'next-only': __props.hasPreviousItems,\n }])\n }, [\n (__props.hasPreviousItems)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\"min-w-[109px] p-10 bg-none border-2 border-solid border-primary-color text-[var(--background-color-inverted)] text-base font-bold rounded-lg\", {\n 'hover:opacity-70': !__props.hasAnyLoadingState,\n 'opacity-50': __props.hasAnyLoadingState,\n }]),\n disabled: __props.hasAnyLoadingState,\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('getPrevItem', __props.item)))\n }, _toDisplayString(_unref($ttt)(\"tools.pager.txt_previous\")), 11, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (__props.hasMoreItems)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: _normalizeClass([\"ml-auto min-w-[109px] p-10 bg-none border-2 border-solid border-primary-color text-[var(--background-color-inverted)] text-base font-bold rounded-lg\", {\n 'hover:opacity-70': !__props.hasAnyLoadingState,\n 'opacity-50': __props.hasAnyLoadingState,\n }]),\n disabled: __props.hasAnyLoadingState,\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('getNextItem', __props.item)))\n }, _toDisplayString(_unref($ttt)(\"tools.pager.txt_next\")), 11, _hoisted_22))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FullscreenModal, {\n ref_key: \"imagePreview\",\n ref: imagePreview\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"img\", {\n class: \"w-10/12 mobileXl:w-1/3 py-80\",\n src: __props.item?.mainImage\n }, null, 8, _hoisted_24)\n ])\n ]),\n _: 1\n }, 512)\n ], 2))\n}\n}\n\n})","import script from \"./VotingItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VotingItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./VotingItem.vue?vue&type=style&index=0&id=515e1b02&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-515e1b02\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center align-middle\" }\n\n\ninterface Props {\n color: \"success\" | \"cancel\" | \"error\" | \"info\";\n}\n\nconst commonBoxClass = `cm-alert-box py-30 px-30 rounded text-xl w-full tracking-[0.5px]`;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AlertBox',\n props: {\n color: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (props.color === 'success')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass(`${commonBoxClass} bg-primary-color text-primary-color-inverted-for-text `)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true),\n (props.color === 'cancel')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass(`${commonBoxClass} bg-white border-2 border-solid border-primary-color`)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true),\n (props.color === 'error')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 2,\n class: _normalizeClass(`${commonBoxClass} bg-text-sc-black/10 border-2 border-solid border-text-sc-black/10`)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true),\n (props.color === 'info')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 3,\n class: _normalizeClass(`${commonBoxClass} bg-white border-2 border-solid border-text-sc-black/20 text-text-sc-black/50`)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AlertBox.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertBox.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"fixed top-0 left-0 right-0 z-10 bg-black/40 w-full h-full overflow-y-scroll overflow-x-hidden overscroll-none\" }\nconst _hoisted_2 = { class: \"pb-10 border-b border-text-sc-black/10 text-lg\" }\nconst _hoisted_3 = { class: \"border-t border-text-sc-black/10\" }\nconst _hoisted_4 = { class: \"flex justify-end\" }\n\nimport { onMounted, onUnmounted, ref } from \"vue\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { resetWithClose } from \"@/services/modal.service\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { DIALOG_MODAL_CSS_CLASS } from \"@/services/modal.service\";\nimport { callIFrameParent } from \"@/services/auth/iFrameHandler.service\";\nimport { isEmbedded } from \"@/services/auth/embedding.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'DialogModal',\n setup(__props) {\n\nlibrary.add(faTimes);\nconst dialogElement = ref(null);\nconst modalTopPosition = ref();\n\nonMounted(() => {\n dialogElement.value?.show();\n\n if (isEmbedded.value) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callIFrameParent().then((parent: any) => {\n setTimeout(() => {\n parent.scroll(-1);\n }, 10);\n });\n }\n\n if (dialogElement.value) {\n dialogElement.value.addEventListener(\"keyup\", (ev) => {\n if (ev.key === \"Escape\") {\n resetWithClose();\n }\n });\n }\n\n // --- fix for scrollbar showing\n const bodyEl = document.getElementsByTagName(\"body\")[0] as HTMLElement;\n\n bodyEl.classList.add(\"dialog-modal-opened\");\n // ----------\n});\n\nonUnmounted(() => {\n // --- reset fix for scrollbar showing\n const bodyEl = document.getElementsByTagName(\"body\")[0] as HTMLElement;\n\n bodyEl.classList.remove(\"dialog-modal-opened\");\n // ----------\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dialog\", {\n class: _normalizeClass([\"p-15 my-20 rounded-md shadow-fd-md w-full max-w-[var(--modal-md-width)]\", _unref(DIALOG_MODAL_CSS_CLASS)]),\n style: _normalizeStyle({ top: modalTopPosition.value }),\n ref_key: \"dialogElement\",\n ref: dialogElement\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"header\"),\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_unref(resetWithClose)())),\n class: \"absolute top-0 right-0 cursor-pointer flex flex-col items-center mt-10 mr-10 text-text-sc-black/50 text-sm z-50 p-5 hover:invert\"\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa faTimes text-sm\",\n icon: _unref(faTimes)\n }, null, 8, [\"icon\"])\n ])\n ]),\n _renderSlot(_ctx.$slots, \"content\"),\n _createElementVNode(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"footer\", {}, () => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_unref(resetWithClose)())),\n class: \"mt-10 py-5 px-10 border border-solid rounded-md border-text-sc-black/20 hover:bg-text-sc-black/20\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_ok\")), 1)\n ])\n ])\n ])\n ], 6)\n ]))\n}\n}\n\n})","import script from \"./DialogModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DialogModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./DialogModal.vue?vue&type=style&index=0&id=401bc914&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"fixed w-full h-full z-50 overflow-y-auto\" }\nconst _hoisted_2 = { class: \"container mx-auto h-auto text-left p-30 text-white\" }\n\nimport { ref, onMounted, onUnmounted } from \"vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'FullscreenModal',\n setup(__props, { expose: __expose }) {\n\nlet isModalOpened = ref(false);\n\nonMounted(() => {\n document.addEventListener(\"keydown\", onKeyboardEvent);\n});\n\nonUnmounted(() => {\n document.removeEventListener(\"keydown\", onKeyboardEvent);\n});\n\nfunction openModal() {\n isModalOpened.value = true;\n}\n\nfunction closeModal() {\n isModalOpened.value = false;\n}\n\nfunction onKeyboardEvent(event: KeyboardEvent) {\n if (event.code === \"Escape\") {\n closeModal();\n }\n}\n\n__expose({\n openModal,\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"flex items-center justify-center\", {\n 'overflow-x-hidden': _unref(isModalOpened),\n 'overflow-y-visible': _unref(isModalOpened),\n }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"modal fixed w-full h-full top-0 left-0 flex z-50 items-center justify-center\", {\n 'opacity-0': !_unref(isModalOpened),\n 'pointer-events-none': !_unref(isModalOpened),\n }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal()))\n }, [\n _cache[3] || (_cache[3] = _createElementVNode(\"div\", { class: \"absolute w-full h-full bg-black opacity-70\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (closeModal())),\n class: \"absolute top-0 right-0 cursor-pointer flex flex-col items-center mt-30 mr-30 text-white text-sm z-50 p-5 hover:invert\"\n }, _cache[2] || (_cache[2] = [\n _createElementVNode(\"svg\", {\n class: \"fill-current text-white\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\"\n }, [\n _createElementVNode(\"path\", { d: \"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\" })\n ], -1)\n ])),\n _createElementVNode(\"section\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ])\n ], 2)\n ], 2))\n}\n}\n\n})","import script from \"./FullscreenModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FullscreenModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FullscreenModal.vue?vue&type=style&index=0&id=3c2028dc&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3c2028dc\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./LoadIndicator.vue?vue&type=template&id=c1430f38&scoped=true\"\nconst script = {}\n\nimport \"./LoadIndicator.vue?vue&type=style&index=0&id=c1430f38&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c1430f38\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { currentModal } from \"@/services/modal.service\";\nimport { ref } from \"vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ModalContainer',\n setup(__props) {\n\n/* This is a generic \"modal wrapper\" component, that's bound with `modal.service`.\nIts goal is to keep track of any pending modal request at which point it should\ndisplay a certain modal component instance and pass actions/model from/to\n`modal.service` and that component \n\nAll modal components must implement:\n\n-- const emit = defineEmits<{\n-- confirm: [result: unknown];\n-- close: [];\n-- error: [error: unknown];\n-- }>();\n\nAll modal components may implement following, to get some param from `model.service`:\n-- const model = defineProps([\"model\"]);\n\nCheck `AuthSelectionModal.vue` to see an example modal component implementation.\n*/\n\nconst modal = ref(currentModal);\n\nreturn (_ctx: any,_cache: any) => {\n return (modal.value)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(modal.value.view), {\n key: 0,\n model: modal.value.model,\n onConfirm: _cache[0] || (_cache[0] = ($event: any) => (modal.value?.onConfirm($event))),\n onClose: _cache[1] || (_cache[1] = ($event: any) => (modal.value?.onClose($event))),\n onError: _cache[2] || (_cache[2] = ($event: any) => (modal.value?.onError($event)))\n }, null, 40, [\"model\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./ModalContainer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ModalContainer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ModalContainer.vue?vue&type=style&index=0&id=72c9184e&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72c9184e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { ref, computed, watch } from \"vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'PaginationComponent',\n props: {\n totalPageCount: {\n type: Number,\n required: true,\n },\n pageSize: {\n type: Number,\n required: true,\n },\n maxPagesShown: {\n type: Number,\n default: 10,\n },\n currentPage: {\n type: Number,\n default: 1,\n },\n showFirstLast: {\n type: Boolean,\n default: true,\n },\n hidePrevNextWhenEnds: {\n type: Boolean,\n default: true,\n },\n isDisabled: {\n type: Boolean,\n default: false,\n },\n},\n emits: [\"pageChanged\"],\n setup(__props, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\nconst _totalItemCount = computed(() => props.totalPageCount * props.pageSize);\nconst page = ref(props.currentPage);\n\nwatch(\n () => props.currentPage,\n () => {\n page.value = props.currentPage;\n }\n);\n\nfunction onClickHandler(page: number) {\n emit(\"pageChanged\", page - 1);\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_VueAwesomePaginate = _resolveComponent(\"VueAwesomePaginate\")!\n\n return (_openBlock(), _createBlock(_component_VueAwesomePaginate, {\n modelValue: page.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((page).value = $event)),\n class: _normalizeClass({ '!hidden': __props.totalPageCount === 1 }),\n \"total-items\": _totalItemCount.value,\n \"items-per-page\": __props.pageSize,\n \"max-pages-shown\": __props.maxPagesShown,\n \"show-ending-buttons\": __props.showFirstLast,\n \"hide-prev-next-when-ends\": __props.hidePrevNextWhenEnds,\n disablePagination: __props.isDisabled,\n onClick: onClickHandler\n }, {\n \"prev-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_previous\")), 1)\n ]),\n \"next-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_next\")), 1)\n ]),\n \"first-page-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_first\")), 1)\n ]),\n \"last-page-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_last\")), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"class\", \"total-items\", \"items-per-page\", \"max-pages-shown\", \"show-ending-buttons\", \"hide-prev-next-when-ends\", \"disablePagination\"]))\n}\n}\n\n})","import script from \"./PaginationComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PaginationComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PaginationComponent.vue?vue&type=style&index=0&id=00ec599c&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-00ec599c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-ppa-wrapper bg-text-color/10 text-text-color rounded-[4px] p-40 mt-20 mx-20 text-center\"\n}\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = [\"href\"]\nconst _hoisted_4 = { class: \"mt-40 inline-flex py-10 px-20 rounded-[4px] bg-primary-color hover:bg-primary-color/80 text-primary-color-inverted-for-text items-center whitespace-nowrap align-middle touch-manipulation select-none\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"mt-40\"\n}\nconst _hoisted_6 = { class: \"inline-block bg-black rounded-sm\" }\nconst _hoisted_7 = { class: \"text-[18px] tracking-[0.45px] mr-30 leading-none\" }\n\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { isEmail } from \"@/utils/utils\";\nimport { faSquareFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { shareParticipation } from \"@/mixins/sharing.mixin\";\nimport { createQueryForFbShare, shareOnFb } from \"@/services/facebook.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\n\n\ninterface Props {\n customShareUrl?: undefined | string;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'PostParticipationAction',\n props: {\n customShareUrl: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst postParticipationText = translateCampaignSetting(\n \"postParticipationContent\"\n);\n\nconst postParticipationActionCaption = translateCampaignSetting(\n \"postParticipationActionCaption\"\n);\n\nlet postParticipationActionLink = getCampaignSettingValue(\n \"postParticipationActionLink\"\n) as string;\n\nif (\n postParticipationActionLink &&\n postParticipationActionLink.length > 0 &&\n isEmail(postParticipationActionLink)\n) {\n postParticipationActionLink = `mailto:${postParticipationActionLink}`;\n}\n\nconst hasParticipation =\n PUBLIC_DATA.campaignApps.linked.campaignAppTypes[0].hasParticipation;\nconst showShareButton = getCampaignBooleanSettingValue(\"showShareButton\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (\n (_unref(postParticipationText) && _unref(postParticipationText).length > 0) ||\n (_unref(postParticipationActionCaption) &&\n _unref(postParticipationActionCaption).length > 0)\n )\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n (_unref(postParticipationText))\n ? (_openBlock(), _createElementBlock(\"p\", {\n key: 0,\n innerHTML: _unref(postParticipationText),\n class: \"text-[16px] no-tailwindcss-base\"\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n (_unref(postParticipationActionCaption))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n href: _unref(postParticipationActionLink),\n target: \"_blank\"\n }, [\n _createElementVNode(\"button\", _hoisted_4, _toDisplayString(_unref(postParticipationActionCaption)), 1)\n ], 8, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(hasParticipation) && _unref(showShareButton))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n props.customShareUrl\n ? _unref(shareOnFb)(_unref(createQueryForFbShare)(props.customShareUrl))\n : _unref(shareParticipation)()\n )),\n class: \"my-0 mx-auto py-15 px-0 flex items-center shadow-lg bg-facebook hover:bg-facebook/80 text-detail-bg rounded-sm\"\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fab fa-square-facebook my-0 mx-20 text-[22px] text-base\",\n icon: _unref(faSquareFacebook)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_unref($ttt)(\"campaign.facebookShare.btn_shareParticipation\")), 1)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./PostParticipationAction.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PostParticipationAction.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = { class: \"py-30 text-sm\" }\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = { class: \"align-middle\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = { class: \"flex justify-end\" }\n\nimport { IDisplayableAuthenticationOption } from \"@/models/campaign/displayableAuthenticationOption._model\";\nimport { getDisplayableAuthOptions } from \"@/services/auth/campaignAppAuthenticationOptions.service\";\nimport { ref } from \"vue\";\nimport DialogModal from \"../DialogModal.vue\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport {\n faMobileAlt,\n faSignInAlt,\n faBuilding,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { faIdCard } from \"@fortawesome/free-regular-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AuthSelectionModal',\n emits: [\"confirm\", \"close\", \"error\"],\n setup(__props, { emit: __emit }) {\n\nlibrary.add(faFacebook, faMobileAlt, faSignInAlt, faIdCard, faBuilding);\n\nconst emit = __emit;\n\nconst displayableAuthOptions = getDisplayableAuthOptions();\nconst simpleAuthOption = ref(displayableAuthOptions.simple);\nconst complexAuthOptions = ref(\n displayableAuthOptions.complex\n);\n\nfunction authSelected(displayableAuthOption: IDisplayableAuthenticationOption) {\n emit(\"confirm\", displayableAuthOption.option);\n}\n\nfunction closeModal() {\n emit(\"close\");\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\n \"global.campaignAuthentication.authSelectionModal.hdr_authentication\"\n )), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"section\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(complexAuthOptions.value, (authOption) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n key: authOption.name,\n onClick: ($event: any) => (authSelected(authOption)),\n class: \"block w-full rounded-md py-15 px-15 mb-15 text-left hover:opacity-80\",\n style: _normalizeStyle(authOption.brandSpecificButtonStyles)\n }, [\n (\n !authOption.displayableImageIconUrl && authOption.iconCssClass\n )\n ? (_openBlock(), _createBlock(_unref(FontAwesomeIcon), {\n key: 0,\n class: \"mr-15 text-lg align-middle\",\n icon: authOption.iconCssClass\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n (authOption.displayableImageIconUrl)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"h-15 inline-block mr-15\",\n src: authOption.displayableImageIconUrl\n }, null, 8, _hoisted_4))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(authOption.name), 1)\n ], 12, _hoisted_3))\n }), 128)),\n (complexAuthOptions.value.length && simpleAuthOption.value)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_6, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.authSelectionModal.txt_or\")), 1))\n : _createCommentVNode(\"\", true),\n (simpleAuthOption.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (authSelected(simpleAuthOption.value))),\n class: \"block w-full border border-solid rounded-md border-text-sc-black/20 py-15 px-15 mt-15 text-center hover:bg-text-sc-black/10\"\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref($ttt)(simpleAuthOption.value.name)), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./AuthSelectionModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthSelectionModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\nconst CUSTOM_FORM_FIELD_PREFIX = \"custom-\";\n\nexport function craftLabel(formField: FormFieldDefinition): string {\n if (formField.customLabel) {\n return formField.customLabel;\n }\n\n if (formField.customLabelTranslationKey) {\n return $ttt(formField.customLabelTranslationKey);\n }\n\n if (formField.id.includes(CUSTOM_FORM_FIELD_PREFIX)) {\n return formField.id.replace(CUSTOM_FORM_FIELD_PREFIX, \"\");\n }\n\n return $ttt(`global.campaignAuthentication.field.txt_${formField.id}`);\n}\n\nexport function craftInvalidMessage(formField: FormFieldDefinition): string {\n if (formField.id.includes(CUSTOM_FORM_FIELD_PREFIX)) {\n return $ttt(\"global.campaignAuthentication.field.txt_fieldInvalid\");\n }\n\n return $ttt(\"global.campaignAuthentication.field.txt_enterValidField\", {\n fieldName: craftLabel(formField),\n });\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, Fragment as _Fragment, renderList as _renderList, toDisplayString as _toDisplayString, mergeProps as _mergeProps, createBlock as _createBlock, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = {\n key: 0,\n class: \"text-brand-danger mr-[1px] text-lg\"\n}\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = [\"pattern\", \"required\", \"disabled\", \"id\", \"type\", \"inputmode\", \"value\"]\nconst _hoisted_5 = [\"required\", \"disabled\", \"id\", \"type\", \"inputmode\", \"value\"]\nconst _hoisted_6 = [\"required\", \"disabled\", \"id\", \"type\", \"inputmode\", \"value\", \"max\", \"min\"]\nconst _hoisted_7 = [\"pattern\", \"required\", \"disabled\", \"id\", \"type\", \"inputMode\", \"value\"]\nconst _hoisted_8 = [\"required\", \"disabled\", \"id\", \"value\"]\nconst _hoisted_9 = {\n key: 0,\n disabled: \"\",\n value: \"\"\n}\nconst _hoisted_10 = {\n key: 1,\n value: \"\"\n}\nconst _hoisted_11 = [\"required\", \"disabled\", \"id\", \"type\", \"value\", \"max\", \"min\"]\nconst _hoisted_12 = [\"required\", \"disabled\", \"id\", \"value\", \"max\", \"min\"]\nconst _hoisted_13 = [\"required\", \"disabled\", \"id\", \"checked\"]\nconst _hoisted_14 = [\"for\"]\nconst _hoisted_15 = [\"innerHTML\"]\nconst _hoisted_16 = {\n key: 0,\n class: \"text-brand-danger ml-5\"\n}\nconst _hoisted_17 = {\n key: 8,\n class: \"text-brand-danger mt-10 block\"\n}\nconst _hoisted_18 = { class: \"ml-10\" }\nconst _hoisted_19 = {\n key: 9,\n class: \"text-brand-danger mt-10 block\"\n}\nconst _hoisted_20 = [\"innerHTML\"]\n\nimport { ref, toRef, computed } from \"vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { AuthenticationFieldTypes } from \"@/common/authentication.dictionary\";\nimport { VueTelInput } from \"vue-tel-input\";\nimport \"vue-tel-input/vue-tel-input.css\";\nimport {\n craftInvalidMessage,\n craftLabel,\n} from \"@/services/auth/utility/labelTranslationHelper.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { faTriangleExclamation } from \"@fortawesome/free-solid-svg-icons\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\n\nconst MAX_DOB_YEARS_FROM_NOW = 10;\nconst MIN_DOB_YEARS_FROM_NOW = 100;\n\ninterface Props {\n field: FormFieldDefinition;\n}\n\ninterface TelInputValidityChangeEvent {\n countryCallingCode: string;\n nationalNumber: string;\n number: string;\n country: {\n name: string;\n iso2: string;\n dialCode: string;\n };\n countryCode: string;\n valid: boolean;\n formatted: string;\n}\n\nconst inputClasses = `xla-form-field w-full text-[15px] py-[7px] px-15 border border-solid border-text-sc-black/30 rounded-md invalid:border-brand-danger invalid:shadow-[1px_3px_5px_0_rgba(0,0,0,0.05)]`;\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'FormField',\n props: {\n field: {}\n },\n emits: [\"update:field\"],\n setup(__props: any, { emit: __emit }) {\n\nlibrary.add(faTriangleExclamation);\n\nconst telInput = ref | null>();\nconst props = __props;\nconst emit = __emit;\nconst fieldVisited = ref(props.field.visited);\n\nconst phoneNumberValue = toRef(props.field, \"value\");\nconst phoneNumberValid = ref(false);\n\nconst phoneInputProps = ref({\n disabledFetchingCountry: false,\n disabled: toRef(() => props.field.isReadOnly),\n disabledFormatting: false,\n required: props.field.isRequired,\n enabledCountryCode: false,\n ignoredCountries: [],\n autocomplete: \"on\",\n name: \"phone\",\n maxLen: 25,\n wrapperClasses: \"\",\n inputClasses: \"\",\n inputOptions: {\n showDialCode: true,\n type: \"tel\",\n },\n defaultCountry: campaignApp.countryCode,\n});\n\nconst genderOptions = [\n \"global.campaignAuthentication.field.option.gender.txt_male\",\n \"global.campaignAuthentication.field.option.gender.txt_female\",\n \"global.campaignAuthentication.field.option.gender.txt_other\",\n \"global.campaignAuthentication.field.option.gender.txt_undefined\",\n];\n\nconst isRequired = computed(() => {\n return (\n props.field.isRequired &&\n !props.field.value &&\n props.field.visited &&\n props.field.type !== \"hidden\"\n );\n});\n\nconst isInvalid = computed(() => {\n return (\n (isTouchedAndInvalid() && !props.field.isRequired) ||\n (isTouchedAndInvalid() && props.field.isRequired && props.field.value)\n );\n});\n\nfunction isTouchedAndInvalid() {\n return (\n !props.field.valid && props.field.visited && props.field.type !== \"hidden\"\n );\n}\n\nfunction inputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n\n emit(\"update:field\", {\n value:\n props.field.type === \"checkbox\" || props.field.type === \"consentTexts\"\n ? input.checked\n : input.value,\n valid:\n props.field.id === \"phoneNumber\"\n ? phoneNumberValid\n : input.checkValidity(),\n visited: fieldVisited.value,\n });\n}\n\nfunction formatMinMaxDateTime(\n dateTime: string | undefined,\n isWithTime: boolean | undefined\n): string | undefined {\n if (!dateTime) {\n return;\n }\n\n const day = new Date(dateTime).toISOString().split(\"T\")[0];\n\n return isWithTime ? `${day}T00:00` : day;\n}\n\nfunction getCurrentDateMinusYears(years: number) {\n const date = new Date(); // now\n\n date.setFullYear(date.getFullYear() - years);\n\n return date.toISOString().split(\"T\")[0];\n}\n\nfunction getMaxDateOfBirth() {\n return getCurrentDateMinusYears(MAX_DOB_YEARS_FROM_NOW);\n}\n\nfunction getMinDateOfBirth() {\n return (\n props.field.minDate || getCurrentDateMinusYears(MIN_DOB_YEARS_FROM_NOW)\n );\n}\n\nfunction phoneInputChange(event: TelInputValidityChangeEvent) {\n if (!event.valid) {\n telInput.value?.$el.classList.add(\"error\");\n } else {\n telInput.value?.$el.classList.remove(\"error\");\n }\n\n phoneNumberValid.value = event.valid;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (\n props.field.type !== _unref(AuthenticationFieldTypes).CHECK_BOX &&\n props.field.type !== _unref(AuthenticationFieldTypes).HIDDEN &&\n props.field.type !== _unref(AuthenticationFieldTypes).CONSENT_TEXT\n )\n ? (_openBlock(), _createElementBlock(\"label\", {\n key: 0,\n class: \"block font-bold text-sm mb-5\",\n for: props.field.id\n }, [\n (props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \"*\"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", {\n innerHTML: _unref(craftLabel)(props.field)\n }, null, 8, _hoisted_3)\n ], 8, _hoisted_1))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).TEXT)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n (!props.field.multiline)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n pattern: props.field.pattern,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputmode: props.field.inputMode,\n value: props.field.value,\n onInput: _cache[0] || (_cache[0] = ($event: any) => (inputChange($event))),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_4))\n : _createCommentVNode(\"\", true),\n (props.field.multiline)\n ? (_openBlock(), _createElementBlock(\"textarea\", {\n key: 1,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputmode: props.field.inputMode,\n value: (props.field.value as string),\n onInput: _cache[2] || (_cache[2] = ($event: any) => (inputChange($event))),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).NUMBER)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputmode: props.field.inputMode,\n value: props.field.value,\n max: props.field.maxValue,\n min: props.field.minValue,\n onInput: _cache[4] || (_cache[4] = ($event: any) => (inputChange($event))),\n onClick: _cache[5] || (_cache[5] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_6))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).EMAIL)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 3,\n pattern: props.field.pattern,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputMode: props.field.inputMode,\n value: props.field.value,\n onInput: _cache[6] || (_cache[6] = ($event: any) => (inputChange($event))),\n onClick: _cache[7] || (_cache[7] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_7))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).OPTION)\n ? (_openBlock(), _createElementBlock(\"select\", {\n key: 4,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n value: props.field.value,\n onInput: _cache[8] || (_cache[8] = ($event: any) => (inputChange($event))),\n onClick: _cache[9] || (_cache[9] = ($event: any) => (fieldVisited.value = true))\n }, [\n (props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"option\", _hoisted_9))\n : _createCommentVNode(\"\", true),\n (!props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"option\", _hoisted_10))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(props.field.selectOptions, (option) => {\n return (_openBlock(), _createElementBlock(\"option\", { key: option }, _toDisplayString(option), 1))\n }), 128)),\n (props.field.id === 'gender')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, _renderList(genderOptions, (option, index) => {\n return _createElementVNode(\"option\", { key: index }, _toDisplayString(_unref($ttt)(option)), 1)\n }), 64))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_8))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).TEL)\n ? (_openBlock(), _createBlock(_unref(VueTelInput), _mergeProps({\n key: 5,\n ref_key: \"telInput\",\n ref: telInput,\n id: props.field.id,\n onInput: _cache[10] || (_cache[10] = ($event: any) => (inputChange($event))),\n onValidate: _cache[11] || (_cache[11] = ($event: any) => (phoneInputChange($event))),\n onClick: _cache[12] || (_cache[12] = ($event: any) => (fieldVisited.value = true)),\n class: \"py-[2px] px-5\",\n modelValue: phoneNumberValue.value,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((phoneNumberValue).value = $event))\n }, phoneInputProps.value, { mode: \"international\" }), null, 16, [\"id\", \"modelValue\"]))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).DATE_TIME)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 6 }, [\n (props.field.id !== 'dateOfBirth')\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.includeTime ? 'datetime-local' : 'date',\n value: props.field.value,\n max: formatMinMaxDateTime(props.field.maxDate, props.field.includeTime),\n min: formatMinMaxDateTime(props.field.minDate, props.field.includeTime),\n onInput: _cache[14] || (_cache[14] = ($event: any) => (inputChange($event))),\n onClick: _cache[15] || (_cache[15] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_11))\n : _createCommentVNode(\"\", true),\n (props.field.id === 'dateOfBirth')\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: 'date',\n value: props.field.value,\n max: getMaxDateOfBirth(),\n min: getMinDateOfBirth(),\n onInput: _cache[16] || (_cache[16] = ($event: any) => (inputChange($event))),\n onClick: _cache[17] || (_cache[17] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_12))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true),\n (\n props.field.type === _unref(AuthenticationFieldTypes).CHECK_BOX ||\n props.field.type === _unref(AuthenticationFieldTypes).CONSENT_TEXT\n )\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 7 }, [\n _createElementVNode(\"input\", {\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n id: props.field.id,\n type: 'checkbox',\n checked: Boolean(props.field.value),\n onInput: _cache[18] || (_cache[18] = ($event: any) => (inputChange($event))),\n onClick: _cache[19] || (_cache[19] = ($event: any) => (fieldVisited.value = true)),\n class: \"w-20 h-20 align-middle\"\n }, null, 40, _hoisted_13),\n _createElementVNode(\"label\", {\n class: \"w-full font-bold pl-10 align-middle\",\n for: props.field.id\n }, [\n _createElementVNode(\"span\", {\n innerHTML: _unref(craftLabel)(props.field)\n }, null, 8, _hoisted_15),\n (props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, \" * \"))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_14)\n ], 64))\n : _createCommentVNode(\"\", true),\n (isRequired.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_17, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.field.txt_fieldRequired\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (isInvalid.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_19, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", {\n class: \"ml-10\",\n innerHTML: _unref(craftInvalidMessage)(props.field)\n }, null, 8, _hoisted_20)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./FormField.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FormField.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FormField.vue?vue&type=style&index=0&id=463c2a20&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SecureMobileModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SecureMobileModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SignUpFormModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SignUpFormModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SimpleEmailLoginModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SimpleEmailLoginModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SimpleMobileModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SimpleMobileModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\n\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AuthenticationDescription',\n setup(__props) {\n\nconst authenticationDescription = translateCampaignSetting(\n \"authenticationDescription\"\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"section\", {\n class: \"no-tailwindcss-base mt-30\",\n innerHTML: _unref(authenticationDescription)\n }, null, 8, _hoisted_1))\n}\n}\n\n})","import script from \"./AuthenticationDescription.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AuthenticationDescription.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"outside-activity-msg\" }\nconst _hoisted_2 = { class: \"text-center\" }\n\n\nimport { CampaignStatus } from \"@/services/campaignStatus.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport AlertBox from \"../AlertBox.vue\";\nimport { formatDate } from \"@/utils/dateFormatter.helper\";\n\ninterface Props {\n campaignStatus: CampaignStatus;\n visualType: string;\n activity: string;\n activityStartDate?: Date;\n}\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'OutsideActivityMsg',\n props: {\n campaignStatus: {},\n visualType: {},\n activity: {},\n activityStartDate: {}\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(AlertBox, {\n class: \"m-20\",\n color: 'info'\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_2, [\n (_ctx.campaignStatus.isBeforeActivity && _ctx.activityStartDate)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(_toDisplayString(_unref($ttt)(`campaign.${_ctx.visualType}.txt_${_ctx.activity}NotAvailableYet`, {\n submissionStartDate: _unref(formatDate)(_ctx.activityStartDate, \"LLL\"),\n })), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n (!_ctx.campaignStatus.isBeforeActivity)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_unref($ttt)(`campaign.${_ctx.visualType}.txt_${_ctx.activity}NotAvailableAlready`)), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./OutsideActivityMsg.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./OutsideActivityMsg.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n","import { render } from \"./DefaultPrivacyPolicyTemplate.vue?vue&type=template&id=bcabbf48\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"xla-campaign-copyright mt-5 text-text-color font-bold leading-tight text-xs\" }\nconst _hoisted_2 = {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: \"https://crowdmanager.io/\",\n target: \"_blank\"\n}\nconst _hoisted_3 = {\n key: 0,\n class: \"inline-block\"\n}\nconst _hoisted_4 = [\"href\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"inline-block\"\n}\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = {\n key: 2,\n class: \"inline-block\"\n}\nconst _hoisted_8 = [\"innerHTML\"]\n\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport FullscreenModal from \"../FullscreenModal.vue\";\nimport DefaultPrivacyPolicyTemplate from \"./DefaultPrivacyPolicyTemplate.vue\";\nimport { ref } from \"vue\";\nimport { VisualTypesWithPayments } from \"@/common/visualType.dictionary\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { isEmptyOrWhitespace } from \"@/utils/string\";\n\ntype ModalInstance = InstanceType | null;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CopyrightAndPrivacyPolicy',\n setup(__props) {\n\nconst privacyPolicyModal = ref(null);\nconst paymentTermsModal = ref(null);\n\nconst myProfileLinkVisible = getCampaignBooleanSettingValue(\n \"myProfileLinkVisible\"\n);\n\nconst myProfileLink = myProfileLinkVisible\n ? (getCampaignSettingValue(\"myProfileLink\") as string)\n : undefined;\n\nconst paymentTerms = translateCampaignSetting(\"paymentTerms\") as string;\nconst canShowPaymentTerms =\n VisualTypesWithPayments.includes(campaignApp.visualType) &&\n !isEmptyOrWhitespace(paymentTerms);\n\nconst customPrivacyPolicy = translateCampaignSetting(\"privacyPolicy\");\nconst hasCustomPrivacyPolicy = !isEmptyOrWhitespace(customPrivacyPolicy);\n\nfunction openPrivacyPolicy(event: Event) {\n event.preventDefault();\n privacyPolicyModal.value?.openModal();\n}\n\nfunction openPaymentTerms(event: Event) {\n event.preventDefault();\n paymentTermsModal.value?.openModal();\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, [\n _createElementVNode(\"a\", _hoisted_2, _toDisplayString(`Copyright © ${new Date().getFullYear()} Fandrive`), 1),\n (_unref(myProfileLinkVisible))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _cache[2] || (_cache[2] = _createElementVNode(\"span\", { class: \"mx-5\" }, \"|\", -1)),\n _createElementVNode(\"a\", {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: _unref(myProfileLink),\n target: \"_blank\"\n }, _toDisplayString(_unref($ttt)(\"tools.campaignCopyright.txt_myProfile\")), 9, _hoisted_4)\n ]))\n : _createCommentVNode(\"\", true),\n true\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _cache[3] || (_cache[3] = _createElementVNode(\"span\", { class: \"mx-5\" }, \"|\", -1)),\n _createElementVNode(\"a\", {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: \"\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (openPrivacyPolicy($event)))\n }, _toDisplayString(_unref($ttt)(\"tools.campaignCopyright.txt_privacyPolicy\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(FullscreenModal, {\n ref_key: \"privacyPolicyModal\",\n ref: privacyPolicyModal\n }, {\n default: _withCtx(() => [\n (!hasCustomPrivacyPolicy)\n ? (_openBlock(), _createBlock(DefaultPrivacyPolicyTemplate, { key: 0 }))\n : _createCommentVNode(\"\", true),\n hasCustomPrivacyPolicy\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 1,\n innerHTML: _unref(customPrivacyPolicy),\n class: \"no-tailwindcss-base text-text-sc-black\"\n }, null, 8, _hoisted_6))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 512),\n (_unref(paymentTerms) && _unref(canShowPaymentTerms))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _cache[4] || (_cache[4] = _createElementVNode(\"span\", { class: \"mx-5\" }, \"|\", -1)),\n _createElementVNode(\"a\", {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: \"\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openPaymentTerms($event)))\n }, _toDisplayString(_unref($ttt)(\"tools.campaignCopyright.txt_paymentTerms\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(FullscreenModal, {\n ref_key: \"paymentTermsModal\",\n ref: paymentTermsModal\n }, {\n default: _withCtx(() => [\n (_unref(paymentTerms) && _unref(canShowPaymentTerms))\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 0,\n innerHTML: _unref(paymentTerms),\n class: \"no-tailwindcss-base text-text-sc-black\"\n }, null, 8, _hoisted_8))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 512)\n ]))\n}\n}\n\n})","import script from \"./CopyrightAndPrivacyPolicy.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CopyrightAndPrivacyPolicy.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-background-color flex-grow text-center pb-80\" }\n\nimport CopyrightAndPrivacyPolicy from \"./CopyrightAndPrivacyPolicy.vue\";\nimport TermsAndConditions from \"./TermsAndConditions.vue\";\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CampaignFooter',\n setup(__props) {\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"footer\", _hoisted_1, [\n _createVNode(TermsAndConditions, {\n class: \"mt-60 mb-30\",\n \"text-color\": 'campaign-theme'\n }),\n _createVNode(CopyrightAndPrivacyPolicy)\n ]))\n}\n}\n\n})","import script from \"./CampaignFooter.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CampaignFooter.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"justify-center flex\"\n}\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"px-30\"\n}\nconst _hoisted_4 = { class: \"list-decimal text-left\" }\nconst _hoisted_5 = { class: \"mb-20 pl-20 leading-normal\" }\nconst _hoisted_6 = { class: \"mb-20 pl-20 leading-normal\" }\nconst _hoisted_7 = { class: \"mb-20 pl-20 leading-normal\" }\n\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\n\ninterface Props {\n textColor: \"campaign-theme\" | \"inherit\";\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'TermsAndConditionsContent',\n props: {\n textColor: { default: \"inherit\" }\n },\n setup(__props: any) {\n\n\n\nconst customTerms = translateCampaignSetting(\"termsAndConditions\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_unref(customTerms))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _unref(customTerms),\n class: _normalizeClass([\"no-tailwindcss-base\", { 'text-text-color': _ctx.textColor === 'campaign-theme' }])\n }, null, 10, _hoisted_2)\n ]))\n : _createCommentVNode(\"\", true),\n (!_unref(customTerms))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"ol\", _hoisted_4, [\n _createElementVNode(\"li\", _hoisted_5, _toDisplayString(_unref($ttt)(\"campaign.terms.txt_termsLine1\")), 1),\n _createElementVNode(\"li\", _hoisted_6, _toDisplayString(_unref($ttt)(\"campaign.terms.txt_termsLine2\")), 1),\n _createElementVNode(\"li\", _hoisted_7, _toDisplayString(_unref($ttt)(\"campaign.terms.txt_termsLine3\")), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./TermsAndConditionsContent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TermsAndConditionsContent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"xla-campaign-terms\" }\nconst _hoisted_2 = [\"open\"]\nconst _hoisted_3 = [\"tabindex\"]\nconst _hoisted_4 = {\n key: 0,\n class: \"underline hover:scale-105 hover:opacity-70 hover:cursor-pointer mt-15 mb-30\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"inline mt-15 mb-30\"\n}\nconst _hoisted_6 = { class: \"px-40\" }\n\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport TermsAndConditionsContent from \"./TermsAndConditionsContent.vue\";\nimport { onMounted, ref } from \"vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { registerAsStateConsumer } from \"@/services/stateProcessor.service\";\n\ninterface Props {\n textColor: \"campaign-theme\" | \"inherit\";\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'TermsAndConditions',\n props: {\n textColor: { default: \"inherit\" }\n },\n setup(__props: any) {\n\n\n\nconst termsMustNotCollapse = getCampaignBooleanSettingValue(\n \"termsExpanding\"\n) as boolean;\nlet termsExpanded = ref(termsMustNotCollapse);\n\nfunction toggleExpand() {\n if (!termsMustNotCollapse) {\n termsExpanded.value = !termsExpanded.value;\n }\n}\n\nonMounted(() =>\n registerAsStateConsumer({\n serializer: ({ resolve }) => {\n resolve({\n termsAndConditions: {\n termsExpanded: termsExpanded.value,\n },\n });\n },\n normalizer: ({ resolve, state }) => {\n const thisState = state[\"termsAndConditions\"];\n\n if (thisState) {\n termsExpanded = thisState[\"termsExpanded\"];\n }\n\n resolve();\n },\n })\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"details\", {\n open: _unref(termsExpanded),\n onToggle: toggleExpand,\n class: _normalizeClass({ 'text-text-color': _ctx.textColor === 'campaign-theme' })\n }, [\n _createElementVNode(\"summary\", {\n class: _normalizeClass([\"inline-block\", { 'pointer-events-none': _unref(termsMustNotCollapse) }]),\n tabindex: _unref(termsMustNotCollapse) ? -1 : 0\n }, [\n (!_unref(termsMustNotCollapse))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, _toDisplayString(_unref($ttt)(\"global.txt_termsAndConditions\")), 1))\n : _createCommentVNode(\"\", true),\n (_unref(termsMustNotCollapse))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_5, _toDisplayString(_unref($ttt)(\"global.txt_termsAndConditions\")), 1))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_3),\n _createElementVNode(\"section\", _hoisted_6, [\n _createVNode(TermsAndConditionsContent, { \"text-color\": _ctx.textColor }, null, 8, [\"text-color\"])\n ])\n ], 42, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./TermsAndConditions.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TermsAndConditions.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TermsAndConditions.vue?vue&type=style&index=0&id=244df1e2&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-244df1e2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createVNode as _createVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"tablet:flex justify-between items-center p-20 bg-header-text-color/[0.03]\" }\nconst _hoisted_2 = { class: \"text-left text-2xl font-medium\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 0,\n class: \"text-left block mt-10 tablet:mt-0\"\n}\nconst _hoisted_6 = { class: \"text-lg\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"relative\"\n}\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = {\n key: 2,\n class: \"bg-cover bg-bottom h-auto pb-[50%]\"\n}\nconst _hoisted_11 = {\n key: 3,\n class: \"absolute text-black flex flex-grow justify-around left-0 top-1/2 -translate-y-1/2 w-full\"\n}\nconst _hoisted_12 = [\"src\"]\nconst _hoisted_13 = [\"src\"]\n\nimport {\n SportsMatchVotingPublicData,\n SportsTeam,\n} from \"@/models/campaign/sportsMatchVoting/sportsMatchVotingPublicData._model\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { formatDate } from \"@/utils/dateFormatter.helper\";\nimport { faCalendarAlt } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { translateObject } from \"@/services/i18n.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SportsMatchHeader',\n setup(__props) {\n\nconst publicData = PUBLIC_DATA as SportsMatchVotingPublicData;\n\nconst preselectedSportsHeaderImageName = getCampaignSettingValue(\n \"sportsHeaderImageUrl\"\n)\n ? getCampaignSettingValue(\"sportsHeaderImageUrl\")?.split(\"/\")[4] // file name comes with path to TLA's asset folder instead of XLA's\n : null;\n\nconst customSportsHeaderImageUrl = getCampaignSettingValue(\n \"customSportsHeaderImage\"\n)\n ? getSingleFileUrl(getCampaignSettingValue(\"customSportsHeaderImage\") ?? \"\")\n : null;\n\nconst showTeamsLogo = getCampaignBooleanSettingValue(\"showTeamLogos\");\nconst showLogosWrapper =\n showTeamsLogo ||\n preselectedSportsHeaderImageName ||\n customSportsHeaderImageUrl;\n\nconst homeTeamId =\n publicData.campaignSportsMatches.campaignSportsMatches[0].homeSportsTeamId;\nconst awayTeamId =\n publicData.campaignSportsMatches.campaignSportsMatches[0].awaySportsTeamId;\n\nconst homeTeam = publicData.campaignSportsMatches.linked.sportsTeams.find(\n (team: SportsTeam) => team.id === homeTeamId.toString()\n);\nconst awayTeam = publicData.campaignSportsMatches.linked.sportsTeams.find(\n (team: SportsTeam) => team.id === awayTeamId.toString()\n);\n\nconst canShowMatchDate = Boolean(\n publicData.campaignSportsMatches.campaignSportsMatches[0].startDateTime\n);\n\nconst matchDateTime = new Date(\n publicData.campaignSportsMatches.campaignSportsMatches[0].startDateTime\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"section\", _hoisted_1, [\n _createElementVNode(\"span\", _hoisted_2, [\n (_unref(homeTeamId) && _unref(homeTeam))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, _toDisplayString(_unref(translateObject)(_unref(homeTeam), \"name\", \"sportsTeam\")), 1))\n : _createCommentVNode(\"\", true),\n (_unref(awayTeamId) && _unref(awayTeam))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, _toDisplayString(_unref(translateObject)(_unref(awayTeam), \"name\", \"sportsTeam\")), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(canShowMatchDate))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-10 fa fa-lg fa-calendar-alt text-header-text-color opacity-30\",\n icon: _unref(faCalendarAlt)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(formatDate)(_unref(matchDateTime), \"L LT\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(showLogosWrapper))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n (_unref(preselectedSportsHeaderImageName) && !_unref(customSportsHeaderImageUrl))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: \n require(`@/assets/campaigns/sportsMatchHeader/${_unref(preselectedSportsHeaderImageName)}`)\n ,\n alt: \"Sports Header Background Image\"\n }, null, 8, _hoisted_8))\n : _createCommentVNode(\"\", true),\n (_unref(customSportsHeaderImageUrl) && !_unref(preselectedSportsHeaderImageName))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: _unref(customSportsHeaderImageUrl),\n class: \"w-full\",\n alt: \"Sports Header Background Image\"\n }, null, 8, _hoisted_9))\n : _createCommentVNode(\"\", true),\n (\n _unref(showTeamsLogo) &&\n !_unref(customSportsHeaderImageUrl) &&\n !_unref(preselectedSportsHeaderImageName)\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10))\n : _createCommentVNode(\"\", true),\n (_unref(showTeamsLogo))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_unref(homeTeam) && _unref(homeTeam).logoFileMetaDataId)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"w-[160px] h-[160px]\",\n src: _unref(getSingleFileUrl)(_unref(homeTeam).logoFileMetaDataId.toString()),\n alt: \"Home team logo\"\n }, null, 8, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(awayTeam) && _unref(awayTeam).logoFileMetaDataId)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"w-[160px] h-[160px]\",\n src: _unref(getSingleFileUrl)(_unref(awayTeam).logoFileMetaDataId.toString()),\n alt: \"Away team logo\"\n }, null, 8, _hoisted_13))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./SportsMatchHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SportsMatchHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CampaignHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CampaignHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-sponsor-logo max-w-[75%] mx-auto mb-30 mobileXl:mb-40\"\n}\nconst _hoisted_2 = [\"href\"]\nconst _hoisted_3 = [\"src\", \"alt\"]\nconst _hoisted_4 = [\"src\", \"alt\"]\n\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SponsorLogo',\n setup(__props) {\n\nconst sponsorLogoImageSrc = getSingleFileUrl(\n getCampaignSettingValue(\"sponsorLogoImage\") as string\n);\n\nconst sponsorLogoRedirectUrl = getCampaignSettingValue(\n \"sponsorLogoUrl\"\n) as string;\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(sponsorLogoImageSrc))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sponsorLogoRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: _unref(sponsorLogoRedirectUrl),\n target: \"_blank\"\n }, [\n _createElementVNode(\"img\", {\n class: \"mt-0 mr-auto inline-block\",\n src: _unref(sponsorLogoImageSrc),\n alt: _unref($ttt)('global.alt_sponsorLogo')\n }, null, 8, _hoisted_3)\n ], 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n (!_unref(sponsorLogoRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"mt-0 mr-auto inline-block\",\n src: _unref(sponsorLogoImageSrc),\n alt: _unref($ttt)('global.alt_sponsorLogo')\n }, null, 8, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./SponsorLogo.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SponsorLogo.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-facebook-share pb-40 flex items-center justify-center\"\n}\nconst _hoisted_2 = { class: \"mr-10 inline-block bg-black rounded-[4px]\" }\nconst _hoisted_3 = { class: \"text-sm tracking-[0.4px]\" }\n\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { shareCampaign } from \"@/mixins/sharing.mixin\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'FacebookShare',\n setup(__props) {\n\nconst canShowFacebookShare =\n getCampaignBooleanSettingValue(\"showShareButton\") &&\n campaignApp?.status === \"running\";\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(canShowFacebookShare))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = () => _unref(shareCampaign)()),\n class: \"py-[6px] px-[8px] leading-none items-center rounded-[4px] flex bg-facebook text-detail-bg text-xs hover:bg-facebook/80 active:outline-2 active:outline active:-outline-offset-2 active:outline-black\"\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fab fa-facebook mr-[8px] text-base\",\n icon: _unref(faFacebook)\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref($ttt)(\"global.txt_facebookShare\")), 1)\n ])\n ]),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_unref($ttt)(\"campaign.facebookShare.txt_campaignShareDescription\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./FacebookShare.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FacebookShare.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FacebookShare.vue?vue&type=style&index=0&id=1370fb0e&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1370fb0e\"]])\n\nexport default __exports__","import { PrizeAssignment } from \"@/models/prizeAssignment/prizeAssignment.model\";\nimport { getSingleFileUrl } from \"./files.service\";\nimport { PUBLIC_DATA } from \"./publicData.service\";\nimport { DeepReadonly } from \"vue\";\nimport { Prize } from \"@/models/prizeAssignment/prize.model\";\nimport { translateObject } from \"./i18n.service\";\n\nexport function getPrizeAssignments(): DeepReadonly[] {\n return PUBLIC_DATA.prizeAssignments.prizeAssignments.map((pa) => {\n const prize = PUBLIC_DATA.prizeAssignments.linked.prizes.find(\n (prize) => prize.id === pa.links.prize\n );\n\n const translatedPrize: Prize = {\n ...(prize as Prize),\n name: translateObject(prize, \"name\", \"prize\"),\n description: translateObject(prize, \"description\", \"prize\"),\n };\n\n return {\n id: pa.id,\n createdDateTime: pa.createdDateTime,\n createdById: pa.createdById,\n tenantId: pa.tenantId,\n objectId: pa.objectId,\n objectType: pa.objectType,\n assignedQuantity: pa.assignedQuantity,\n campaignAppGuid: pa.campaignAppGuid,\n prizeId: pa.prizeId,\n prize: translatedPrize,\n };\n });\n}\n\nexport function getPrizeAssignmentImageUrl(\n prizeAssignment: PrizeAssignment\n): string {\n return prizeAssignment.prize?.fileMetaDataId\n ? getSingleFileUrl(String(prizeAssignment.prize.fileMetaDataId))\n : require(\"@/assets/images/image-placeholder-300x160.png\");\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-prizes-carousel py-40\"\n}\nconst _hoisted_2 = { class: \"mr-40\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex flex-col relative py-30 items-center\"\n}\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = { class: \"border border-solid rounded-sca border-header-text-color/20 p-20 mt-10 mobileXl:mt-0 text-left\" }\nconst _hoisted_6 = { class: \"mb-10 font-bold\" }\nconst _hoisted_7 = [\"innerHTML\"]\nconst _hoisted_8 = { class: \"flex\" }\nconst _hoisted_9 = [\"innerHTML\"]\nconst _hoisted_10 = [\"onClick\"]\nconst _hoisted_11 = [\"innerHTML\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"flex flex-col relative py-30 items-center\"\n}\nconst _hoisted_13 = { class: \"w-full\" }\nconst _hoisted_14 = { class: \"flex bg-header-text-color/[0.07] rounded-[4px] mt-60 mx-20 mb-20\" }\nconst _hoisted_15 = { class: \"p-20 text-xs carousel-prev active:shadow-inner\" }\nconst _hoisted_16 = { class: \"w-full flex items-center justify-center\" }\nconst _hoisted_17 = [\"innerHTML\"]\nconst _hoisted_18 = { class: \"p-20 text-xs carousel-next active:shadow-inner\" }\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 0,\n class: \"absolute top-[5%] left-[5%] py-5 px-10 mr-[8px] rounded-sm text-detail-bg text-[14px] tracking-[0.38px] font-bold backdrop-blur-sm bg-black/25 shadow-sm\"\n}\nconst _hoisted_21 = [\"innerHTML\"]\nconst _hoisted_22 = [\"innerHTML\"]\nconst _hoisted_23 = { class: \"w-full flex justify-center items-center overscroll-contain overflow-hidden\" }\nconst _hoisted_24 = [\"src\"]\n\nimport { SwiperSlide, Swiper } from \"swiper/vue\";\nimport { Pagination, Autoplay, Navigation } from \"swiper/modules\";\nimport { PaginationOptions } from \"swiper/types\";\nimport \"swiper/scss\";\nimport \"swiper/scss/pagination\";\nimport \"swiper/scss/navigation\";\nimport \"swiper/scss/autoplay\";\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport {\n faAngleRight,\n faAngleLeft,\n faGift,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport {\n getPrizeAssignments,\n getPrizeAssignmentImageUrl,\n} from \"@/services/prizeAssignments.service\";\nimport { PrizeAssignment } from \"@/models/prizeAssignment/prizeAssignment.model\";\nimport { onMounted, ref, watch } from \"vue\";\nimport FullscreenModal from \"@/components/FullscreenModal.vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { registerAsStateConsumer } from \"@/services/stateProcessor.service\";\n\ninterface DisplayablePrize {\n descriptionExpanded: boolean;\n isDescriptionExpandable: boolean;\n prizeAssignment: PrizeAssignment;\n}\n\nconst DESCRIPTION_CHECK_INTERVAL_TIME = 1000 * 0.5;\n\nconst SLIDES_PER_VIEW = 2;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'PrizesCarousel',\n setup(__props) {\n\nconst prizeImagePreview = ref | null>(\n null\n);\nconst prizeImageURL = ref(\"\");\nconst carouselPrizeDescriptionEl = ref(null);\nconst carouselPrizeDescriptionWrapperEl = ref(null);\nconst lightViewPrizeDescriptions = ref(null); // there should be two elements max in light view\n\nconst modules = [Pagination, Autoplay, Navigation];\n\nconst autoplay = {\n delay: 2500,\n};\n\n// sorry, the way this Component was written before needs 'mutable' version\nlet displayablePrizes = ref(\n (getPrizeAssignments() as unknown as PrizeAssignment[]).map((pa) => {\n return {\n prizeAssignment: pa,\n descriptionExpanded: false,\n isDescriptionExpandable: false,\n };\n })\n);\n\nlet currentDisplayablePrize = ref(displayablePrizes.value[0]);\n\nconst canLoop = displayablePrizes.value.length >= SLIDES_PER_VIEW * 2;\n\nconst pagination: PaginationOptions = {\n clickable: !canLoop, // when loop is on, then pagination bullets gets buggy\n dynamicBullets: canLoop,\n renderBullet: function (index: number, className: string) {\n return '' + \"\";\n },\n};\n\nconst navigation = {\n nextEl: \".carousel-next\",\n prevEl: \".carousel-prev\",\n};\n\nconst openPrizesPanelByDefault = getCampaignBooleanSettingValue(\n \"openPrizesPanelByDefault\"\n);\nconst prizesPanelOpened = ref(openPrizesPanelByDefault);\n\nconst showPrizesPanel = getCampaignBooleanSettingValue(\"showPrizesPanel\");\n\nfunction togglePrizesPanel() {\n prizesPanelOpened.value = !prizesPanelOpened.value;\n}\n\nfunction onIndexChange(event: typeof Swiper) {\n currentDisplayablePrize.value = displayablePrizes.value[event.realIndex];\n}\n\nwatch(currentDisplayablePrize, checkCarouselDescriptionSize);\n\nfunction expandPrizeDescription(\n displayablePrize: DisplayablePrize | undefined\n) {\n if (!displayablePrize) {\n return;\n }\n displayablePrize.descriptionExpanded = true;\n}\n\nfunction openImagePreview(prizeAssignment: PrizeAssignment) {\n prizeImageURL.value = getPrizeAssignmentImageUrl(prizeAssignment);\n prizeImagePreview.value?.openModal();\n}\n\nonMounted(() => {\n const descriptionSizeChecker = setInterval(() => {\n if (\n !isLightView() ||\n !lightViewPrizeDescriptions.value ||\n lightViewPrizeDescriptions.value.length < 0\n ) {\n checkCarouselDescriptionSize();\n } else {\n lightViewPrizeDescriptions.value.forEach(\n (el: HTMLSpanElement, index: number) => {\n displayablePrizes.value[index].isDescriptionExpandable =\n el?.offsetHeight < el?.scrollHeight;\n\n if (el.offsetHeight > 0) {\n clearInterval(descriptionSizeChecker);\n }\n }\n );\n }\n }, DESCRIPTION_CHECK_INTERVAL_TIME);\n\n registerAsStateConsumer({\n serializer: ({ resolve }) => {\n resolve({\n prizesCarousel: {\n prizesPanelOpened: prizesPanelOpened.value,\n },\n });\n },\n normalizer: ({ resolve, state }) => {\n const thisState = state[\"prizesCarousel\"];\n\n if (thisState) {\n prizesPanelOpened.value = thisState[\"prizesPanelOpened\"];\n }\n\n resolve();\n },\n });\n});\n\nfunction isLightView() {\n return displayablePrizes.value.length <= 2;\n}\n\nfunction checkCarouselDescriptionSize() {\n {\n if (\n carouselPrizeDescriptionWrapperEl?.value &&\n carouselPrizeDescriptionEl?.value\n ) {\n if (currentDisplayablePrize.value?.prizeAssignment.prize?.description) {\n carouselPrizeDescriptionEl.value.innerHTML =\n currentDisplayablePrize.value?.prizeAssignment.prize.description;\n }\n\n currentDisplayablePrize.value.isDescriptionExpandable =\n carouselPrizeDescriptionWrapperEl?.value.offsetHeight <\n carouselPrizeDescriptionWrapperEl?.value.scrollHeight;\n }\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showPrizesPanel) && _unref(displayablePrizes).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"button\", {\n class: \"py-15 px-20 border-solid border-2 border-header-text-color rounded-[4px] tracking-[.8px]\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (togglePrizesPanel()))\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_unref($ttt)(`campaign.btn_checkMainPrizes`, {\n count: _unref(displayablePrizes).length,\n })), 1),\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-angle-right text-header-text-color rotate-90\",\n icon: _unref(faAngleRight)\n }, null, 8, [\"icon\"])\n ])\n ]),\n _createElementVNode(\"div\", null, [\n (_unref(showPrizesPanel) && prizesPanelOpened.value)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (isLightView())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(displayablePrizes), (displayablePrize, iter) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: iter,\n class: \"p-20 w-full block mobileXl:grid mobileXl:grid-cols-2 gap-20\"\n }, [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (openImagePreview(displayablePrize.prizeAssignment)),\n class: \"xla-prize-image w-full aspect-video bg-no-repeat bg-center bg-cover rounded-[4px] overflow-hidden hover:cursor-pointer\",\n style: _normalizeStyle(`background-image: url(${_unref(getPrizeAssignmentImageUrl)(\n displayablePrize.prizeAssignment\n )});`)\n }, null, 12, _hoisted_4),\n _createElementVNode(\"section\", _hoisted_5, [\n _createElementVNode(\"h2\", _hoisted_6, [\n _createElementVNode(\"span\", {\n innerHTML: displayablePrize.prizeAssignment.prize?.name\n }, null, 8, _hoisted_7),\n _cache[3] || (_cache[3] = _createElementVNode(\"span\", { class: \"px-5\" }, \"x\", -1)),\n _createElementVNode(\"span\", null, _toDisplayString(displayablePrize.prizeAssignment.assignedQuantity), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (!displayablePrize.descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n ref_for: true,\n ref_key: \"lightViewPrizeDescriptions\",\n ref: lightViewPrizeDescriptions,\n class: \"relative text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words h-[78px] leading-[26px] tracking-[0.4px] w-4/5\"\n }, [\n _createElementVNode(\"span\", {\n innerHTML: \n displayablePrize.prizeAssignment.prize?.description\n \n }, null, 8, _hoisted_9),\n (\n displayablePrize.isDescriptionExpandable &&\n !displayablePrize.descriptionExpanded &&\n displayablePrize.prizeAssignment.prize?.description\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (expandPrizeDescription(displayablePrize)),\n class: \"underline absolute bottom-0 right-0 hover:text-header-text-color/80 pl-80 bg-gradient-to-r from-transparent to-header-background-color to-50%\"\n }, _toDisplayString(_unref($ttt)(\"global.txt_seeMore\")), 9, _hoisted_10))\n : _createCommentVNode(\"\", true)\n ], 512))\n : _createCommentVNode(\"\", true),\n (displayablePrize.descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words leading-[26px] tracking-[0.4px] w-4/5\",\n innerHTML: displayablePrize.prizeAssignment.prize?.description\n }, null, 8, _hoisted_11))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (!isLightView())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-angle-left text-header-text-color\",\n icon: _unref(faAngleLeft)\n }, null, 8, [\"icon\"])\n ]),\n _createElementVNode(\"span\", _hoisted_16, [\n _createElementVNode(\"span\", {\n innerHTML: \n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.name\n \n }, null, 8, _hoisted_17),\n _cache[4] || (_cache[4] = _createElementVNode(\"span\", { class: \"px-5\" }, \"x\", -1)),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(currentDisplayablePrize)?.prizeAssignment.assignedQuantity), 1)\n ]),\n _createElementVNode(\"button\", _hoisted_18, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-angle-right text-header-text-color\",\n icon: _unref(faAngleRight)\n }, null, 8, [\"icon\"])\n ])\n ])\n ]),\n _createVNode(_unref(Swiper), {\n modules: modules,\n loop: canLoop,\n rewind: !canLoop,\n pagination: pagination,\n autoplay: autoplay,\n navigation: navigation,\n class: \"prizes-carousel\",\n centeredSlides: true,\n \"slides-offset-before\": 0,\n \"auto-height\": false,\n \"space-between\": 20,\n \"slides-per-view\": SLIDES_PER_VIEW,\n onActiveIndexChange: _cache[1] || (_cache[1] = ($event: any) => (onIndexChange($event as any)))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(displayablePrizes), (displayablePrize, iter) => {\n return (_openBlock(), _createBlock(_unref(SwiperSlide), { key: iter }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (openImagePreview(displayablePrize.prizeAssignment)),\n class: \"pb-40 bg-header-background-color\"\n }, [\n (\n _unref(currentDisplayablePrize)?.prizeAssignment.id ===\n displayablePrize.prizeAssignment.id\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_20, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas fa-gift\",\n icon: _unref(faGift)\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" \" + _toDisplayString(displayablePrize.prizeAssignment.assignedQuantity), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"xla-prize-image aspect-video bg-no-repeat bg-center bg-cover rounded-[4px] overflow-hidden\",\n style: _normalizeStyle(`background-image: url(${_unref(getPrizeAssignmentImageUrl)(\n displayablePrize.prizeAssignment\n )});`)\n }, null, 4)\n ], 8, _hoisted_19)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"rewind\"]),\n (!_unref(currentDisplayablePrize).descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n ref_key: \"carouselPrizeDescriptionWrapperEl\",\n ref: carouselPrizeDescriptionWrapperEl,\n class: \"relative text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words h-[78px] leading-[26px] tracking-[0.4px] text-center w-4/5\"\n }, [\n _createElementVNode(\"span\", {\n ref_key: \"carouselPrizeDescriptionEl\",\n ref: carouselPrizeDescriptionEl,\n innerHTML: \n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.description\n \n }, null, 8, _hoisted_21),\n (\n _unref(currentDisplayablePrize).isDescriptionExpandable &&\n !_unref(currentDisplayablePrize).descriptionExpanded &&\n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.description\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (expandPrizeDescription(_unref(currentDisplayablePrize)))),\n class: \"underline absolute bottom-0 right-0 hover:text-header-text-color/80 pl-80 bg-gradient-to-r from-transparent to-header-background-color to-50%\"\n }, _toDisplayString(_unref($ttt)(\"global.txt_seeMore\")), 1))\n : _createCommentVNode(\"\", true)\n ], 512))\n : _createCommentVNode(\"\", true),\n (_unref(currentDisplayablePrize).descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words leading-[26px] tracking-[0.4px] text-center w-4/5\",\n innerHTML: \n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.description\n \n }, null, 8, _hoisted_22))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(FullscreenModal, {\n ref_key: \"prizeImagePreview\",\n ref: prizeImagePreview\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"img\", {\n class: \"w-10/12 mobileXl:w-1/3 py-80\",\n src: prizeImageURL.value\n }, null, 8, _hoisted_24)\n ])\n ]),\n _: 1\n }, 512)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./PrizesCarousel.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PrizesCarousel.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PrizesCarousel.vue?vue&type=style&index=0&id=edaba1d6&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-edaba1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-header-content mt-80 mb-40 text-center\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"text-3xl font-bold w-[70%] mx-auto mb-40 text-center leading-[1.25] tracking-[0.8px]\"\n}\nconst _hoisted_3 = [\"innerHTML\"]\n\nimport SponsorLogo from \"@/components/header/common/SponsorLogo.vue\";\nimport FacebookShare from \"@/components/header/common/FacebookShare.vue\";\nimport PrizesCarousel from \"@/components/PrizesCarousel.vue\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'HeaderContent',\n setup(__props) {\n\nconst campaignTitle = translateCampaignSetting(\"externalTitle\");\nconst introduction = translateCampaignSetting(\"externalDescription\");\n\nconst showPrizesPanel = getCampaignBooleanSettingValue(\"showPrizesPanel\");\nconst canShowFacebookShare =\n getCampaignBooleanSettingValue(\"showShareButton\") &&\n campaignApp?.status === \"running\";\nconst sponsorLogoImageSrc = getSingleFileUrl(\n getCampaignSettingValue(\"sponsorLogoImage\") as string\n);\n\nconst canShowHeaderContent =\n campaignTitle ||\n introduction ||\n showPrizesPanel ||\n canShowFacebookShare ||\n sponsorLogoImageSrc;\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(canShowHeaderContent))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(campaignTitle))\n ? (_openBlock(), _createElementBlock(\"h1\", _hoisted_2, _toDisplayString(_unref(campaignTitle)), 1))\n : _createCommentVNode(\"\", true),\n (_unref(introduction))\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 1,\n innerHTML: _unref(introduction),\n class: \"no-tailwindcss-base text-header-text-color w-[80%] mx-auto mb-40 text-center break-words text-base leading-[1.5] tracking-[0.4px]\"\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true),\n _createVNode(SponsorLogo),\n _createVNode(FacebookShare),\n _createVNode(PrizesCarousel)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./HeaderContent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./HeaderContent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"items-center bg-header-background-color flex border-b border-solid border-header-text-color/10 justify-between h-40 px-20\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"flex items-center overflow-x-auto\"\n}\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = [\"v-if\", \"src\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"flex items-center overflow-x-auto\"\n}\nconst _hoisted_6 = [\"onClick\"]\nconst _hoisted_7 = { class: \"h-20 text-sm\" }\n\nimport { onMounted, ref } from \"vue\";\nimport {\n getLanguagesUsedByCampaign,\n switchLanguageTo,\n} from \"@/services/i18n.service\";\nimport { LanguageMappings } from \"@/common/languages.dictionary\";\nimport { Language } from \"@/models/language/language.model\";\nimport { faGlobe } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport { useI18n } from \"vue-i18n\";\n\ntype SwitcherType = \"flags\" | \"languageCodes\";\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'LanguageSwitcher',\n setup(__props) {\n\nconst { locale } = useI18n({ useScope: \"global\" });\n\nlet langs = ref([]);\n\nconst switcherType = ref(\n getCampaignBooleanSettingValue(\"showLanguageFlag\") ? \"flags\" : \"languageCodes\"\n);\n\nconst selectedLanguage = ref(locale);\n\nonMounted(async () => {\n langs.value = await getLanguagesUsedByCampaign();\n});\nasync function switchLanguage(lang: Language) {\n switchLanguageTo(lang.languageCode);\n}\n\nfunction mapCountryCodeFromLanguage(language: Language): string | undefined {\n return LanguageMappings.languageToCountryCode.find(\n (c) => c.key === language.languageCode\n )?.value;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(langs) && _unref(langs).length > 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-globe text-header-text-color opacity-30\",\n icon: _unref(faGlobe)\n }, null, 8, [\"icon\"]),\n (switcherType.value === 'flags')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(langs), (lang) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: `locale=${lang.languageCode}`,\n onClick: ($event: any) => (switchLanguage(lang)),\n class: _normalizeClass([{\n 'bg-header-text-color/30': selectedLanguage.value === lang.languageCode,\n }, \"rounded-sm px-[7px] py-[3px] ml-10 uppercase hover:cursor-pointer hover:bg-header-text-color/30 justify-center items-center shrink-0\"])\n }, [\n _createElementVNode(\"img\", {\n class: \"h-20\",\n \"v-if\": mapCountryCodeFromLanguage(lang),\n src: \n require(`@/assets/images/flags/${mapCountryCodeFromLanguage(\n lang\n )?.toUpperCase()}.png`)\n \n }, null, 8, _hoisted_4)\n ], 10, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (switcherType.value === 'languageCodes')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(langs), (lang) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: `locale=${lang.languageCode}`,\n onClick: ($event: any) => (switchLanguage(lang)),\n class: _normalizeClass([{\n 'opacity-50': selectedLanguage.value !== lang.languageCode,\n }, \"border border-black/25 border-solid rounded-sm px-[7px] py-[3px] ml-10 uppercase hover:cursor-pointer hover:opacity-100 justify-center items-center flex\"])\n }, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(lang.twoLetterLanguageCode), 1)\n ], 10, _hoisted_6))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./LanguageSwitcher.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LanguageSwitcher.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./LoginBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginBar.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"href\"]\nconst _hoisted_2 = [\"src\", \"alt\"]\nconst _hoisted_3 = [\"src\", \"alt\"]\n\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'TopBanner',\n setup(__props) {\n\nconst topBannerImageUrl = getSingleFileUrl(\n getCampaignSettingValue(\"topBannerImage\") as string\n);\nconst topBannerRedirectUrl = getCampaignSettingValue(\"topBannerUrl\") as\n | string\n | undefined;\n\nconst isSportsMatch =\n getCampaignBooleanSettingValue(\"hasSportsHeader\") && !!topBannerImageUrl;\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(topBannerImageUrl))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"xla-top-banner mt-0 mr-auto mb-15\", {\n 'is-sports-match': _unref(isSportsMatch),\n }])\n }, [\n (_unref(topBannerRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: _unref(topBannerRedirectUrl),\n target: \"_blank\"\n }, [\n _createElementVNode(\"img\", {\n class: \"w-full\",\n src: _unref(topBannerImageUrl),\n alt: _unref($ttt)('global.alt_campaignBanner')\n }, null, 8, _hoisted_2)\n ], 8, _hoisted_1))\n : _createCommentVNode(\"\", true),\n (!_unref(topBannerRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"w-full\",\n src: _unref(topBannerImageUrl),\n alt: _unref($ttt)('global.alt_campaignBanner')\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./TopBanner.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TopBanner.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TopBanner.vue?vue&type=style&index=0&id=d6006f26&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","var map = {\n\t\"./football1.jpg\": 78826,\n\t\"./football2.jpg\": 68470,\n\t\"./football3.jpg\": 2856,\n\t\"./handball1.jpg\": 52593,\n\t\"./iceHockey1.jpg\": 80447,\n\t\"./iceHockey2.jpg\": 8504\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 11384;","var map = {\n\t\"./AD.png\": 61515,\n\t\"./AE.png\": 26297,\n\t\"./AF.png\": 63843,\n\t\"./AG.png\": 59168,\n\t\"./AH.png\": 98503,\n\t\"./AI.png\": 75350,\n\t\"./AK.png\": 32052,\n\t\"./AL.png\": 64258,\n\t\"./AM.png\": 72184,\n\t\"./AN.png\": 19521,\n\t\"./AO.png\": 92424,\n\t\"./AQ.png\": 78533,\n\t\"./AR.png\": 82877,\n\t\"./AS.png\": 12392,\n\t\"./AT.png\": 71602,\n\t\"./AU.png\": 90326,\n\t\"./AW.png\": 46406,\n\t\"./AX.png\": 93840,\n\t\"./AZ.png\": 7238,\n\t\"./BA.png\": 29795,\n\t\"./BB.png\": 420,\n\t\"./BD.png\": 16514,\n\t\"./BE.png\": 19656,\n\t\"./BF.png\": 64040,\n\t\"./BG.png\": 57705,\n\t\"./BH.png\": 50077,\n\t\"./BI.png\": 97147,\n\t\"./BJ.png\": 76628,\n\t\"./BL.png\": 68755,\n\t\"./BM.png\": 81979,\n\t\"./BN.png\": 12498,\n\t\"./BO.png\": 96775,\n\t\"./BQ.png\": 74431,\n\t\"./BR.png\": 51325,\n\t\"./BS.png\": 74668,\n\t\"./BT.png\": 16394,\n\t\"./BV.png\": 91902,\n\t\"./BW.png\": 18814,\n\t\"./BY.png\": 67196,\n\t\"./BZ.png\": 62574,\n\t\"./CA.png\": 65112,\n\t\"./CC.png\": 49093,\n\t\"./CD.png\": 6911,\n\t\"./CF.png\": 22279,\n\t\"./CG.png\": 50127,\n\t\"./CH.png\": 51805,\n\t\"./CI.png\": 4220,\n\t\"./CK.png\": 97759,\n\t\"./CL.png\": 33389,\n\t\"./CM.png\": 99280,\n\t\"./CN.png\": 63495,\n\t\"./CO.png\": 31002,\n\t\"./CR.png\": 78210,\n\t\"./CU.png\": 35419,\n\t\"./CV.png\": 72433,\n\t\"./CW.png\": 20504,\n\t\"./CX.png\": 39728,\n\t\"./CY.png\": 35784,\n\t\"./CZ.png\": 92334,\n\t\"./DE.png\": 45376,\n\t\"./DJ.png\": 73580,\n\t\"./DK.png\": 92926,\n\t\"./DM.png\": 67220,\n\t\"./DO.png\": 30360,\n\t\"./DZ.png\": 81513,\n\t\"./EC.png\": 10057,\n\t\"./EE.png\": 58665,\n\t\"./EG.png\": 16546,\n\t\"./EH.png\": 82917,\n\t\"./ER.png\": 34904,\n\t\"./ES.png\": 61112,\n\t\"./ET.png\": 8887,\n\t\"./EU.png\": 42640,\n\t\"./FI.png\": 58794,\n\t\"./FJ.png\": 14908,\n\t\"./FK.png\": 66393,\n\t\"./FM.png\": 59733,\n\t\"./FO.png\": 3229,\n\t\"./FR.png\": 84785,\n\t\"./GA.png\": 20598,\n\t\"./GB.png\": 24252,\n\t\"./GD.png\": 63198,\n\t\"./GE.png\": 80039,\n\t\"./GF.png\": 87702,\n\t\"./GG.png\": 22936,\n\t\"./GH.png\": 35543,\n\t\"./GI.png\": 93277,\n\t\"./GL.png\": 39653,\n\t\"./GM.png\": 84222,\n\t\"./GN.png\": 10538,\n\t\"./GP.png\": 52387,\n\t\"./GQ.png\": 53500,\n\t\"./GR.png\": 62,\n\t\"./GS.png\": 24726,\n\t\"./GT.png\": 16801,\n\t\"./GU.png\": 39215,\n\t\"./GW.png\": 45092,\n\t\"./GY.png\": 94222,\n\t\"./HK.png\": 44428,\n\t\"./HM.png\": 74414,\n\t\"./HN.png\": 96919,\n\t\"./HR.png\": 60005,\n\t\"./HT.png\": 80681,\n\t\"./HU.png\": 63948,\n\t\"./IC.png\": 52923,\n\t\"./ID.png\": 44582,\n\t\"./IE.png\": 53017,\n\t\"./IL.png\": 11008,\n\t\"./IM.png\": 27987,\n\t\"./IN.png\": 37761,\n\t\"./IO.png\": 76790,\n\t\"./IQ.png\": 14613,\n\t\"./IR.png\": 32360,\n\t\"./IS.png\": 55274,\n\t\"./IT.png\": 52390,\n\t\"./JE.png\": 70812,\n\t\"./JM.png\": 44845,\n\t\"./JO.png\": 83689,\n\t\"./JP.png\": 94775,\n\t\"./KE.png\": 69721,\n\t\"./KG.png\": 58581,\n\t\"./KH.png\": 79450,\n\t\"./KI.png\": 68183,\n\t\"./KM.png\": 80179,\n\t\"./KN.png\": 80380,\n\t\"./KP.png\": 15270,\n\t\"./KR.png\": 29031,\n\t\"./KW.png\": 84575,\n\t\"./KY.png\": 48439,\n\t\"./KZ.png\": 6491,\n\t\"./LA.png\": 34877,\n\t\"./LB.png\": 63871,\n\t\"./LC.png\": 39220,\n\t\"./LI.png\": 36464,\n\t\"./LK.png\": 13351,\n\t\"./LR.png\": 65681,\n\t\"./LS.png\": 80226,\n\t\"./LT.png\": 18914,\n\t\"./LU.png\": 71007,\n\t\"./LV.png\": 14257,\n\t\"./LY.png\": 30268,\n\t\"./MA.png\": 50713,\n\t\"./MC.png\": 55177,\n\t\"./MD.png\": 88444,\n\t\"./ME.png\": 85320,\n\t\"./MF.png\": 99076,\n\t\"./MG.png\": 30203,\n\t\"./MH.png\": 82675,\n\t\"./MK.png\": 480,\n\t\"./ML.png\": 98324,\n\t\"./MM.png\": 71837,\n\t\"./MN.png\": 97491,\n\t\"./MO.png\": 56882,\n\t\"./MP.png\": 60006,\n\t\"./MQ.png\": 45833,\n\t\"./MR.png\": 96888,\n\t\"./MS.png\": 85296,\n\t\"./MT.png\": 80589,\n\t\"./MU.png\": 25525,\n\t\"./MV.png\": 38168,\n\t\"./MW.png\": 48542,\n\t\"./MX.png\": 64583,\n\t\"./MY.png\": 19648,\n\t\"./MZ.png\": 27820,\n\t\"./NA.png\": 43627,\n\t\"./NC.png\": 36607,\n\t\"./NE.png\": 40138,\n\t\"./NF.png\": 74923,\n\t\"./NG.png\": 41200,\n\t\"./NI.png\": 6173,\n\t\"./NL.png\": 30662,\n\t\"./NO.png\": 66280,\n\t\"./NP.png\": 15509,\n\t\"./NR.png\": 2717,\n\t\"./NU.png\": 37789,\n\t\"./NY.png\": 30525,\n\t\"./NZ.png\": 54920,\n\t\"./OM.png\": 54926,\n\t\"./PA.png\": 66466,\n\t\"./PE.png\": 59647,\n\t\"./PF.png\": 77338,\n\t\"./PG.png\": 32493,\n\t\"./PH.png\": 88124,\n\t\"./PK.png\": 61321,\n\t\"./PL.png\": 24863,\n\t\"./PM.png\": 20215,\n\t\"./PN.png\": 83858,\n\t\"./PR.png\": 76948,\n\t\"./PS.png\": 81976,\n\t\"./PT.png\": 5574,\n\t\"./PW.png\": 58002,\n\t\"./PY.png\": 82281,\n\t\"./QA.png\": 35297,\n\t\"./RE.png\": 66042,\n\t\"./RO.png\": 44899,\n\t\"./RS.png\": 89598,\n\t\"./RU.png\": 13946,\n\t\"./RW.png\": 40850,\n\t\"./SA.png\": 15825,\n\t\"./SB.png\": 76818,\n\t\"./SC.png\": 99174,\n\t\"./SD.png\": 33880,\n\t\"./SE.png\": 42080,\n\t\"./SG.png\": 83004,\n\t\"./SH.png\": 19493,\n\t\"./SI.png\": 8942,\n\t\"./SJ.png\": 24417,\n\t\"./SK.png\": 21554,\n\t\"./SL.png\": 34403,\n\t\"./SM.png\": 16570,\n\t\"./SN.png\": 53863,\n\t\"./SO.png\": 31686,\n\t\"./SR.png\": 98319,\n\t\"./SS.png\": 477,\n\t\"./ST.png\": 36693,\n\t\"./SV.png\": 48917,\n\t\"./SX.png\": 55454,\n\t\"./SY.png\": 1961,\n\t\"./SZ.png\": 99129,\n\t\"./TC.png\": 40537,\n\t\"./TD.png\": 10480,\n\t\"./TF.png\": 86805,\n\t\"./TG.png\": 70291,\n\t\"./TH.png\": 75691,\n\t\"./TJ.png\": 52386,\n\t\"./TK.png\": 34144,\n\t\"./TL.png\": 52249,\n\t\"./TM.png\": 49965,\n\t\"./TN.png\": 63696,\n\t\"./TO.png\": 64691,\n\t\"./TR.png\": 47754,\n\t\"./TT.png\": 82069,\n\t\"./TV.png\": 40186,\n\t\"./TW.png\": 16079,\n\t\"./TZ.png\": 58568,\n\t\"./UA.png\": 7043,\n\t\"./UG.png\": 66057,\n\t\"./UM.png\": 67265,\n\t\"./US.png\": 64501,\n\t\"./UY.png\": 41918,\n\t\"./UZ.png\": 91229,\n\t\"./VA.png\": 14553,\n\t\"./VC.png\": 20877,\n\t\"./VE.png\": 42931,\n\t\"./VG.png\": 76621,\n\t\"./VI.png\": 89840,\n\t\"./VN.png\": 58371,\n\t\"./VU.png\": 50107,\n\t\"./WF.png\": 80436,\n\t\"./WS.png\": 30180,\n\t\"./XK.png\": 60562,\n\t\"./YE.png\": 62596,\n\t\"./YT.png\": 98077,\n\t\"./ZA.png\": 68266,\n\t\"./ZM.png\": 26558,\n\t\"./ZW.png\": 41823\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 49925;"],"names":["window","hadGlobal","oldGlobal","Modernizr","e","n","o","t","s","i","r","_version","_config","classPrefix","enableClasses","enableJSClass","usePrefixes","_q","on","this","setTimeout","addTest","push","name","fn","options","addAsyncTest","prototype","a","cookie","indexOf","localStorage","setItem","removeItem","sessionStorage","c","f","u","hasOwnProperty","toLowerCase","aliases","length","split","Boolean","join","document","module","exports","_hoisted_1","class","_hoisted_2","key","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_defineComponent","__name","emits","setup","__props","emit","__emit","library","add","faTriangleExclamation","authFields","ref","id","isEnabled","isRequired","customLabel","type","isMandatory","value","valid","undefined","visited","customLabelTranslationKey","inputMode","pattern","RegExp","source","phoneAuthField","smsTokenField","isFormInValid","computed","userHasToken","isRecaptchaEmpty","showRecaptchaRequiredMessage","isLoading","phoneCheckupErrorMessageKey","recaptchaSuccess","recaptchaExpired","fieldUpdated","newValue","field","submitForm","grecaptcha","getResponse","executePhoneNumberLookup","phoneNumber","recaptchaToken","smsToken","then","ls","setLoginState","authenticationType","authProgress","authOption","_type","campaignAppGuid","campaignApp","guid","enforceRequiredAuthFields","loginState","error","reset","statusToError","errorKey","status","currentModal","model","isLogIn","sendCampaignEvent","GOOGLE_ANALYTICS_EVENTS","CAMPAIGN","COMMON","LOGIN_CANCELLED","action","category","finally","executeSMSTokenRequest","getAuthFields","find","af","isReadOnly","closeModal","message","onMounted","script","createElement","setAttribute","async","defer","head","appendChild","onload","initCaptchaInterval","setInterval","render","clearInterval","sitekey","ENV_GLOBALS","RECAPTCHA_SITE_KEY","callback","_ctx","_cache","_openBlock","_createBlock","DialogModal","header","_withCtx","_createElementVNode","_toDisplayString","_unref","$ttt","content","_createVNode","AuthenticationDescription","_createCommentVNode","_createElementBlock","FormField","$event","_createTextVNode","onClick","href","FontAwesomeIcon","icon","LoadIndicator","footer","disabled","_","index","some","v","mapConsentTextCheckboxesToConsentTextIds","purifyAuthFields","setLoginStateBasedOnForm","resetAuthFields","consentTextIds","filter","map","Number","authField","consentTextsIds","Object","entries","patchLoginState","fromEntries","forEach","fieldKey","fieldValue","replace","AuthenticationFieldTypes","DATE_TIME","prepareDateAuthFieldValue","date","cutOffTimezonePart","Date","includeTime","slice","year","getFullYear","month","getMonth","toString","padStart","day","getDate","hours","getHours","minutes","getMinutes","_Fragment","_renderList","TermsAndConditions","SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME","email","OptionTypes","FORM","phone","props","canShowLanguageSwitcher","default","LanguageSwitcher","hasSportsHeaderEnabled","SportsMatchHeader","TopBanner","hasLoginSupport","hasCMTokenInURL","LoginBar","HeaderContent","faFacebook","faMobileAlt","faSignInAlt","faIdCard","faBuilding","user","displayableAuthOptions","getDisplayableAuthOptions","displayableBrandLoginButton","displayableSimpleLoginButton","login","option","Promise","resolve","openAuthSelectionModal","result","authLogin","updateUser","logOut","clearLoginState","logout","isLoggedIn","displayName","nickname","nickName","complex","simple","brandName","watch","_normalizeClass","style","_normalizeStyle","brandSpecificButtonStyles","displayableImageIconUrl","iconCssClass","src","faCheck","DisplayableVotingCategory","constructor","dto","_defineProperty","votingCategoryTypeId","$to","DisplayableVotingCategoryType","links","selectedCategory","votingCategories","vc","selectedCategoryId","DisplayableVotingItem","isRemoved","itemShareUrl","videoThumbnailFileMetaDataId","videoUrl","voteCount","votePercentage","title","ingress","description","videoThumbnail","getSingleFileUrl","evaluateImages","sortedImages","votingItemImages","sort","b","ordinal","mainImage","fileMetaDataId","hasVideoPreviewImage","previewImage","hasPlaceholderPreviewImage","require","hasGalleryPreview","votingCategoryTypes","votingItems","votingItemsMetadata","_extractVotingItemData","campaignStatus","useCampaignStatus","showSubmissionResponse","isSaving","isEmbedded","_isEmbedded","canShowSubmissionResponse","lastVotedItem","showItemCount","getCampaignBooleanSettingValue","hasAnyItem","isLoadingAnything","hasToRecalculatePages","cantShowNoItemsInfo","hasNoItemsInFiltering","isFiltering","hasNoItemsNotFiltering","canShowBackButton","totalItemCount","isLoadingItems","currentPage","pageIndex","singleItemLoadedByRoute","ITEM_ROUTE","currentPath","location","hash","hasNextItem","hasPrevItem","isCalculatingNeighborItem","addEventListener","isSingleItemView","selectedSingleItem","itemId","itemInCurrentPage","item","getProcessedVotingItem","immediate","VOTING_ITEMS_MAX_PAGES","FILTERING_DEBOUNCE_TIMEOUT","showCategoryFilter","showSearchTextFilter","selectedCategories","isReloadingAfterFiltering","searchText","votes","votingMode","getCampaignSettingValue","votingModeCustomCount","votedMessage","canPlaceVotes","voting","useCustomJS","useCustomCSS","registerAsStateConsumer","serializer","state","selectedCategoriesIds","vote","selectedSingleItemId","normalizer","votingCategoryType","vct","onSelectedCategoryChange","loadItemsPage","votedItem","votingVotes","sendVote","normalizeCampaignState","handleIfEmbedded","loadVotes","err","isAuthenticating","navigateToSingleItemView","navigateToList","navigateToNextItem","navigateToPrevItem","pageChanged","getFilteringData","clearFilters","searchTextChanged","applyFiltering","debouncedApplyFiltering","canShowVoteButton","shareItem","getNeighborItem","side","itemIndex","findIndex","votingItem","reduce","selected","filters","pageData","getVotingItemsPage","processedPageData","processVotingItemsPagePayload","categoryIds","languageCode","getLanguageCodeToSearchBy","event","target","debounce","data","getPrivateData","votingItemId","isAfterActivity","isBeforeActivity","saveParticipation","saveVote","AUTH_CANCELLED_ERROR_NAME","LOGIN_SELECTION_CANCELLED_ERROR_NAME","errorService","errorMessage","scrollToResponseWrapper","response","createVote","V","VOTE","clearErrorMessage","raiseErrorMessage","shareOnFb","createQueryForFbShare","element","querySelector","scrollToPosition","scrollIntoView","publicData","PUBLIC_DATA","linked","categoryType","reactive","totalPageCount","ENDPOINT","RANDOM_ITEM_SORT_ORDER","headers","Accept","pageSize","itemSortOrder","hasRandomSortOrder","endpoint","basePrivateApiUrl","getAsUrlParams","getRandomNumber","fetch","method","responseHandler","getVotingItem","votingItemResponse","vi","votingItemCategories","stringId","vic","votingCategoryId","categories","includes","itemImages","vii","metadata","res","ok","json","Error","statusText","post","JSON","stringify","FACEBOOK","MYPAGE","SIMPLE_MOBILE","SECURE_MOBILE","SPORTS_ALLIANCE","OpenIdOptionTypes","OIDC_SINGLE_SIGN_ON","TEXT","EMAIL","CHECK_BOX","TEL","NUMBER","OPTION","HIDDEN","CONSENT_TEXT","SimpleOptionTypes","AuthMappings","authenticationOptionTypeToIconCssClass","authenticationOptionTypeToColorStyle","authenticationOptionTypeToIconImageUrl","LanguagesDictionary","languageCodes","ENGLISH","NORWEGIAN","SWEDISH","DANISH","NORWEGIAN_NYNORSK","ITALIAN","GERMAN","POLISH","DUTCH","FRENCH","SPANISH","PORTUGUESE","SPANISH_LA","KOREAN","LanguageMappings","languageToFacebookSdkCode","languageToCountryCode","VisualTypes","AUCTION","VOTING","ITEM_LIST","ADVANCED_FORM","SIMPLE_FORM","SIGN_UP","PERSONA_QUIZ","CALENDAR_QUIZ","KNOWLEDGE_QUIZ","GUESS_THE_LINE_UP","GUESS_THE_AUDIENCE","GUESS_THE_NUMBER","GUESS_THE_SCORE","SPORTS_MATCH_VOTING","EVENT_SELFIE","WHEEL_OF_FORTUNE","CROWDFUNDING","SLOT_MACHINE","SCRATCH_CARD","GUESS_THE_OUTCOMES","GUESS_THE_PLAYER","GOAL_CLUB","SEASONAL_GUESS_THE_OUTCOMES","SEASONAL_GUESS_THE_SCORE","GUESS_THE_ITEM","LIVE_EVENT","SORTING_QUIZ","VisualTypesWithPayments","VisualTypesWithLoginFeature","params","pluralizeTranslationKey","locale","trimMustachesInTranslation","_i18n","global","$te","_locale","effectiveLocale","messages","object","fieldName","objectType","defaultValue","translateObject","param","count","cardinalRules","Intl","PluralRules","concat","select","removeLoadIndicator","getElementsByClassName","remove","getElementsByTagName","classList","shareCampaign","linkToShare","campaignApps","smartLinks","smartLinkId","url","sendShareEvent","shareParticipation","authInitializationProgress","authToken","queryParams","SUPPORTED_QUERY_PARAMS","AUTH_TOKEN","CM_TOKEN_AUTH_TYPE","cancelAuth","errorName","resetLoginState","rejectHook","confirmAuth","saveLoginState","resolveHook","AUTH_ERROR_ERROR_NAME","finalizeComplexAuth","forcedAuthType","signIn","handleIncompleteComplexAuthRegistration","Response","myPageToken","removeCMToken","finalizeSilentComplexAuth","evaluateSilentComplexAuthType","finalizeSimpleAuthLogIn","newLoginState","simplifyProcessForMobileAuths","handleSimpleAuthLogInError","handleComplexAuth","handleAuthSelection","beginOpenIdClientAuth","handleSimpleAuth","CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES","beginSimpleEmailLogIn","beginSimpleEmailAuth","beginSimpleMobileLogIn","beginSimpleMobileAuth","beginSecureMobileLogIn","beginSecureMobileAuth","initializeAuthentication","hasParticipationSupport","cmToken","getCMToken","hasSuspendedCMTokenLogin","loginWithCMToken","campaignState","campaignStateService","getState","resumeComplexLogIn","initializeDefaultAuthFlow","setupForEmbedding","authProgressPromise","startAuthProgress","continueAuth","identityClientConfiguration","getIdentityClientConfiguration","logoutUrl","authorityUrl","iframe","display","body","listener","removeEventListener","reload","resumeComplexAuth","tryRestoreAuthTypeFromCampaignState","userManager","createUserManagerInstance","signinRedirectCallback","removeCallbackParamsFromUrl","confirmOpenIdClientAuth","cancelOpenIdClientAuth","authInitProgress","beginAuthentication","selectedAuthOptionId","restoredAuthOption","getProcessedGroupedAuthOptions","all","caao","catch","reject","continueWithDefaultAuthMethod","defaultOnlyOption","defaultWhenOnlyAuthOption","syncSelectedAuthOption","caaoIsSimple","createAuthProgressFlow","promise","progress","canSignUpComplexAuth","isNewUser","skipPersonalDataForm","campaignAppAuthenticationOptions","isKillswitchActive","summary","getMissingAuthFieldsSummary","hasMissingRequiredConsents","hasMissingRequiredAuthFields","hasMissingConsents","openAuthFormModal","loginStatePart","loadLoginState","enabledComplexAuthOptions","enabledComplex","beginOpenIdClientSilentAuth","authProgressFlow","currentAuthType","expectedCaao","signInLoginState","selectedOption","isSimpleMobile","isSecureMobile","defaultAuthOption","potentiallyUsedAuthOptions","figureOutPotentiallyUsedAuthOptions","topPriorityOption","prev","current","priority","profile","FacebookAppIdentity","MyPage","Email","SportsAllianceId","checkForOIDCClaims","console","setState","regex","test","initializeAuthFields","authFieldsResponse","customAuthFields","customAuthenticationFields","consentTexts","consentTextBundles","parse","setupCustomAuthFields","moveTermsToBottomOfTheArray","consentText","termsVerificationField","aF","customAuthField","properties","fieldType","setupOptionNames","maxValue","max","minValue","min","maxDate","minDate","withTime","multiline","selectOptions","openModal","AuthSelectionModalVue","openAuthModal","modalPromise","SignUpFormModalVue","SimpleMobileModalVue","SecureMobileModalVue","openSimpleEmailLogInModal","SimpleEmailLoginModalVue","SIMPLE_CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES","ProcessedGroupedAuthOptions","hasMobileSignInOnlySecure","simpleMobileOption","secureMobileOption","hasSomeMobileSignIn","enabledSimple","getDisplayableSimpleAuthOption","simpleAuthOption","getDisplayableComplexAuthOptions","complexAuthOptions","brandForegroundColor","brandColor","p","customizedBrandName","groups","simpleEmailOption","facebookAuthOption","myPageAuthOption","processedGroupedAuthOptions","checkIsInIFrame","callIFrameParent","parent","overflow","childInitialized","userAgent","navigator","scroll","tryAuthorize3rdParty","msg","confirm","open","getBoundingClientRect","y","iFrameParentConnection","CONNECTION_PARENT_WAIT_TIMEOUT","resolvedParent","resolvedTimeout","getIFrameParentConnection","_resolve","methods","connectToParent","getCurrentSize","fixMainContentHeights","height","app","getElementById","outerOuterWrapper","children","innerOuterWrapper","innerWrapper","el","htmlEl","modalEl","querySelectorAll","DIALOG_MODAL_CSS_CLASS","htmlElRectSize","htmlElStyle","getComputedStyle","htmlElMarginY","pxToFloat","marginTop","marginBottom","htmlElMarginX","marginLeft","marginRight","newHeight","modalElRectSize","modalElStyle","modalElMarginY","modalElHeight","Math","width","isModal","pxValue","parseFloat","IDENTITY_CLIENT_CONFIGURATION_API_URL","PHONE_LOOKUP_URL","REQUEST_TOKEN_URL","requestInit","mobileAuth","OPEN_ID_CONFIG_CLIENT_ID","OPEN_ID_CONFIG_POPUP_REDIRECT_HTML_NAME","OPEN_ID_CONFIG_REDIRECT_HTML_NAME","OPEN_ID_CONFIG_SILENT_REDIRECT_HTML_NAME","OPEN_ID_POPUP_WINDOW_FEATURES","OPEN_ID_RESPONSE_TYPE","OPEN_ID_SCOPE","OPEN_ID_LOAD_USER_INFO","OPEN_ID_AUTOMATIC_SILENT_RENEW","OPEN_ID_FILTER_PROTOCOL_CLAIMS","OPEN_ID_ASSETS_BASE_PATH","origin","OPEN_ID_AUTH_POPUP_OPEN_ERROR_NAME","OPEN_ID_AUTH_ERROR_NAME","OPEN_ID_INTERNAL_ERROR_POPUP_CLOSED","OPEN_ID_INTERNAL_ERROR_POPUP_OPEN","OPEN_ID_EXTERNAL_PROVIDER_QUERY_PARAM_NAME","POPUP_RETURN_CHECK_LS_KEY_NAME","POPUP_CHECK_INTERVAL","POPUP_CHECK_MAX_TIME","popupCurrentCheckTotalTime","popupCurrentCheckIntervalRef","userManagerConfig","authority","client_id","popup_redirect_uri","redirect_uri","popupWindowFeatures","response_type","scope","loadUserInfo","silent_redirect_uri","automaticSilentRenew","filterProtocolClaims","isLogin","externalProviderName","checkRedirectFlowSupport","stateStorePromise","serializeSignInStateAndStore","serializeSignUpStateAndStore","searchParams","URLSearchParams","search","set","lastStoredGuid","campaignUrl","pathname","signinRedirect","extraQueryParams","createOpenIdClientExtraQueryParams","clearPopupCheckLsKey","signinPopup","externalProviderNames","signinSilent","confirmOpenIdClientSilentAuth","handleDetachedPopup","setMyPageToken","access_token","UserManager","callbackParams","deleteQueryParam","browserCompatibility","hasLocalStorage","selectedAuthMethod","checkInterval","log","interval","timeSpentAlready","getItem","signinPopupCallback","Log","logger","AUTH_MOBILE_CANCELLED_ERROR_NAME","bootstrapCampaign","component","plugins","i18n","initializeI18n","initializeQueryParams","initializeBrowserCompatibility","initializeCampaignState","createApp","VueGtagPlugin","config","GOOGLE_ANALYTICS_MEASUREMENT_ID","plugin","pluginConfig","use","mount","setTitleAndIcon","getBrowserCompatibility","forceRedirectFlow","checkHasPopups","hasCookies","hasSessionStorage","hasPopups","redirectFlowUserAgentGroups","getRedirectFlowUserAgentGroups","userAgentsToCheck","groupAgents","agent","agents","every","rfua","parseJSON","REDIRECT_FLOW","getAbbreviatedVisualType","visualType","w","charAt","BK_STORE_ENDPOINT_URL","CampaignStateService","_lastStoreGuid","authTokenParam","getQueryParam","read","storeGuid","store","serializeCampaignState","_state","activityName","now","isPlanning","isRunning","isEndedOrArchived","activityStartSettingName","activityEndSettingName","activityStartDateTime","getCampaignDateTimeSettingAsTime","activityEndDateTime","isDuringActivity","activityStartDate","getCampaignDateTimeSetting","activityEndDate","stylesSetting","append","textContent","_customJSFunc","_setupCustomJS","customJSSetting","eval","_executeCustomJs","context","onUpdated","ULTIMATE_FALLBACK_WINDOW_TITLE","setWindowTitle","translateCampaignSetting","trim","fallbackTrnKey","setWindowIcon","linkEl","ErrorService","_errorMessage","m","HOST_URI","protocol","host","SCRAPE_URI","fbAppId","facebookAppId","encodeURIComponent","shareURL","outerHeight","screenY","x","outerWidth","screenX","imgUrl","smartLink","parameters","stripTags","createDescriptionForFbShare","redirectDesktopUrl","originalUrl","redirectMobileUrl","mobileUrl","createImageLinkForFbShare","imageUrl","paramsString","escapedParamsString","base64Params","btoa","settings","campaignSettings","smartLinkImageId","imageFileMetaDataId","fallbackImage","FILES_API_URL","getUrlWithParams","campaignGuid","LOGIN_FAILURE_WITH","LOGIN_SELECTION_OPENED","LOGIN_SUCCESS","LOGIN_SUCCESS_KIOSK","LOGIN_SUCCESS_WITH","PARTICIPATION_SHARE","POST_PARTICIPATION_ACTION_LINK_CLICK","SHARE","SPONSOR_LOGO_LINK_CLICK","CQ","ANSWER_SENT","GTA","GTN","GTLU","DREAM_TEAM_GUESS_SENT","GTS","ANSWER_SENT_KIOSK","KQ","ANSWERS_SENT","PQ","SU","SIGNED_UP","SF","SMV","WOF","MADE_ATTEMPT","MADE_ATTEMPT_KIOSK","SM","SCA","IL","LINK_ACTION_BTN","MAIL_ACTION_BTN","ES","UPLOAD_BTN","UPLOAD_COMPLETE","UPLOAD_SUBMIT","AF","FORM_SENT","GTO","GTP","SGTO","CHOICE_MADE","GUESS_SENT","ROUND_POST_PARTICIPATION_BUTTON_CLICK","SGTS","MATCH_POST_PARTICIPATION_BUTTON_CLICK","GTI","LE","SQ","GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS","SC_CAMPAIGN_TYPE","SC_EVENT_VALUE","SC_ORGANIZATION_ID","eventAction","eventCategory","eventValue","event_category","event_label","get","customHeaders","prepareHeaders","del","isCrossDomain","requestUrl","URL","authHeaders","storedAuthToken","getAuthToken","Authorization","Headers","LANGUAGES_ENDPOINT","getLanguages","CAMPAIGN_COMMON_LANGUAGE_MODULE","TRANSLATIONS_ENDPOINT","LANGUAGE_OVERRIDES_ENDPOINT","getTranslationsForLanguage","campaignVisualType","getLanguageOverridesFor","translations","fallbackLocale","languageOverrides","availableLanguages","dict","getInitialTranslationsDictionary","language","values","resultLangCode","establishLanguageCodeFromQueryParam","establishLanguageCodeFromLocalStorage","establishLanguageCodeFromBrowser","isCampaignUsingThisLanguage","switchLanguageTo","updateQueryParam","LANGUAGE","createI18n","legacy","globalInjection","missing","missingTranslationHandler","dictionary","dictionaries","getCampaignSetting","withReload","fetchTranslationsForLanguage","fetchLanguageOverrides","storeCampaignLanguage","warn","campaign","languageTranslationsOverrides","override","translationOverrides","objectId","getCampaignLanguage","languages","matchedLanguage","browserLanguageCode","twoLetterLanguageCode","substring","fetchLanguagesUsedByCampaign","allLanguages","campaignLangsIds","campaignLangs","mainLanguage","lang","langs","getLanguagesUsedByCampaign","setting","settingLanguageOverride","withDefaultValuePassed","settingValue","lo","ot","String","translation","text","parsed","LANGUAGE_PREFIX","AUTH_TOKEN_LOCAL_STORAGE_PREFIX","storeAuthToken","clearAuthToken","_loginState","readonly","CLEAR_COOKIES_API_URL","LOGIN_STATE_API_URL","LOGIN_STATE_SIGN_IN_API_URL","requestHeaders","lsValue","isMissing","missingConsentTextIds","parseInt","loginStateType","fetchResponse","processRetrievedLoginState","setCookie","selectedAuthOptionType","saveResponse","signInResponse","loginStatePatch","getResetAuthFields","isNew","formFields","token","currentModalPromise","canCloseByOverlay","_currentModalPromiseResolve","_currentModalPromiseReject","view","markRaw","onConfirm","onClose","onError","withClose","resetWithClose","FD_PUBLIC_DATA","FD_ENV_GLOBALS","getTime","customImageUrl","preselectedImageUrl","sportsHeaderImageUrl","isEmptyOrWhitespace","hasSportsHeaderImageUrl","nextStateConsumerId","stateConsumers","executeHandler","handler","promises","sc","subStates","allState","stateConsumerDTO","delete","updateUrlWithQueryParams","getQueryParams","replaceAll","newRelativePathQuery","history","pushState","cmtoken","formatOptions","LLLL","weekday","hour","minute","LLL","LL","L","MMMM","MMM","LT","hour12","formatDate","format","DateTimeFormat","candidate","countChar","char","match","trimToLength","maxLength","isEmail","preloadImage","fallbackImgUrl","imgEl","crypto","getRandomValues","Uint32Array","propName","propValue","Array","isArray","arrayParams","timeout","timeoutId","args","clearTimeout","INGRESS_MAX_LENGTH","ingressToShow","htmlToText","innerHTML","__exports__","_imports_0","hasAnyLoadingState","hasVotingDisabled","withCategories","imgRatio","showShareButton","hasVoteBtnDisabled","showVoteCount","backgroundImage","$emit","DisplayableItemIngress","DEFAULT_WIDTH","DEFAULT_HEIGHT","W_MODE_PARAM","AUTOPLAY_PARAM_ON","AUTOPLAY_PARAM_OFF","YT_FORMAT_A","YT_FORMAT_B","YT_FORMAT_C","YT_TARGET_FORMAT","YT_MUTED_PARAM_ON","YT_MUTED_PARAM_OFF","YT_PARAM_KEYS_MAP","VIMEO_FORMAT_A","VIMEO_TARGET_FORMAT","VIMEO_MUTED_PARAM_ON","VIMEO_MUTED_PARAM_OFF","__default__","required","allowFullscreen","allowAutoplay","allowParamString","displayableSrc","isYTFormat","parseYTSrc","isVimeoFormat","parseVimeoSrc","verifyAutoplay","fixProtocol","fixQueryParams","isYTFormatA","isYTFormatB","isYTFormatC","isCorrect","cmpInstance","getCurrentInstance","cmpEl","proxy","$el","iFrameEl","isHttps","urlShouldBeChanged","queryStartPos","firstParamPos","mapKnownYTParams","mapped","paramKeyValue","paramKey","paramValue","mappedParamKey","matchedVimeoFormat","extraParametersIndex","matchedYTFormat","processYTParams","paramsStartIndex","isYT","mutedParamOn","mutedParamOff","hasQPStart","allow","faExclamationCircle","SLIDES_PER_VIEW","votingItemImagePreview","votingItemImageCount","canLoop","autoplay","delay","pagination","clickable","dynamicBullets","renderBullet","className","modules","Pagination","Autoplay","Navigation","navigation","nextEl","prevEl","currentImage","getVotingItemImageUrl","votingItemImage","onIndexChange","realIndex","openImagePreview","Swiper","loop","rewind","centeredSlides","slidesOffsetBefore","autoHeight","spaceBetween","slidesPerView","onActiveIndexChange","iter","SwiperSlide","FullscreenModal","ref_key","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","showNavigationButtons","hasPreviousItems","hasMoreItems","imgRatioClass","hasAtLeastOneImage","hasVotes","imagePreview","seeMainImage","faArrowLeft","VideoObject","VotingItemImageCarousel","commonBoxClass","color","_renderSlot","$slots","faTimes","dialogElement","modalTopPosition","show","ev","bodyEl","onUnmounted","top","expose","__expose","isModalOpened","onKeyboardEvent","code","xmlns","viewBox","d","modal","_resolveDynamicComponent","maxPagesShown","showFirstLast","hidePrevNextWhenEnds","isDisabled","_totalItemCount","page","onClickHandler","_component_VueAwesomePaginate","_resolveComponent","modelValue","disablePagination","customShareUrl","postParticipationText","postParticipationActionCaption","postParticipationActionLink","hasParticipation","campaignAppTypes","faSquareFacebook","authSelected","displayableAuthOption","CUSTOM_FORM_FIELD_PREFIX","craftLabel","formField","craftInvalidMessage","MAX_DOB_YEARS_FROM_NOW","MIN_DOB_YEARS_FROM_NOW","inputClasses","telInput","fieldVisited","phoneNumberValue","toRef","phoneNumberValid","phoneInputProps","disabledFetchingCountry","disabledFormatting","enabledCountryCode","ignoredCountries","autocomplete","maxLen","wrapperClasses","inputOptions","showDialCode","defaultCountry","countryCode","genderOptions","isInvalid","isTouchedAndInvalid","inputChange","input","checked","checkValidity","formatMinMaxDateTime","dateTime","isWithTime","toISOString","getCurrentDateMinusYears","years","setFullYear","getMaxDateOfBirth","getMinDateOfBirth","phoneInputChange","for","inputmode","onInput","VueTelInput","_mergeProps","onValidate","mode","authenticationDescription","activity","AlertBox","submissionStartDate","privacyPolicyModal","paymentTermsModal","myProfileLinkVisible","myProfileLink","paymentTerms","canShowPaymentTerms","customPrivacyPolicy","hasCustomPrivacyPolicy","openPrivacyPolicy","preventDefault","openPaymentTerms","DefaultPrivacyPolicyTemplate","CopyrightAndPrivacyPolicy","textColor","customTerms","termsMustNotCollapse","termsExpanded","toggleExpand","termsAndConditions","thisState","onToggle","tabindex","TermsAndConditionsContent","preselectedSportsHeaderImageName","customSportsHeaderImageUrl","showTeamsLogo","showLogosWrapper","homeTeamId","campaignSportsMatches","homeSportsTeamId","awayTeamId","awaySportsTeamId","homeTeam","sportsTeams","team","awayTeam","canShowMatchDate","startDateTime","matchDateTime","faCalendarAlt","alt","logoFileMetaDataId","sponsorLogoImageSrc","sponsorLogoRedirectUrl","canShowFacebookShare","getPrizeAssignments","prizeAssignments","pa","prize","prizes","translatedPrize","createdDateTime","createdById","tenantId","assignedQuantity","prizeId","getPrizeAssignmentImageUrl","prizeAssignment","DESCRIPTION_CHECK_INTERVAL_TIME","prizeImagePreview","prizeImageURL","carouselPrizeDescriptionEl","carouselPrizeDescriptionWrapperEl","lightViewPrizeDescriptions","displayablePrizes","descriptionExpanded","isDescriptionExpandable","currentDisplayablePrize","openPrizesPanelByDefault","prizesPanelOpened","showPrizesPanel","togglePrizesPanel","expandPrizeDescription","displayablePrize","isLightView","checkCarouselDescriptionSize","offsetHeight","scrollHeight","descriptionSizeChecker","prizesCarousel","faAngleRight","ref_for","faAngleLeft","faGift","campaignTitle","introduction","canShowHeaderContent","SponsorLogo","FacebookShare","PrizesCarousel","useI18n","useScope","switcherType","selectedLanguage","switchLanguage","mapCountryCodeFromLanguage","faGlobe","toUpperCase","topBannerImageUrl","topBannerRedirectUrl","isSportsMatch","webpackContext","req","webpackContextResolve","__webpack_require__","keys"],"sourceRoot":""}