{"version":3,"sources":["Svg.js","ComponentLoader.js","SubscriptionFlow.js","Receipt.js","MembershipFlow.js","UnsubscribeFlow.js","GamesFlow.js","VbfFlow.js","Toggle.js","ToggleModal.js","ToggleChurnModal.js","Slide.js","WebPlayer.js","VerticalSlide.js","ClubNavigation.js","Subscriber.js","ModalOverlayComponent.js","ModalGivePermissionComponent.js","ModalBasicComponent.js"],"names":["defineDs","FrameworkSvg","icon","config","options","_objectSpread","href","count","register","$element","hasAttribute","setAttribute","dataset","component","name","callback","$elements","document","querySelectorAll","concat","filter","item","detect","length","forEach","internals","settings","getAttribute","JSON","parse","bind","Component","Reepay","Api","LoginCache","Step2","m","route","root","controller","this","isLoading","prop","userData","getUserObj","customerInfo","paymentData","discountCode","discountData","isApplePayAvailable","init","_ref","_asyncToGenerator","apiCalls","load","Promise","resolve","reject","fetchOnePlanData","planHandle","then","response","catch","error","console","couponCode","fetchCouponData","discount","all","fetchDiscountData","state","handle","amount","redraw","apply","arguments","back","window","history","view","_ref2","className","class","xmlns","fill","viewBox","cx","cy","r","stroke","d","Utils","Ensighten","Button","Modal","NewsletterPromotion","invoiceData","consentData","EmailPermission","invoiceId","currentDiscount","formatDiscount","_paymentData","Math","abs","fetchInvoiceData","body","classList","add","getParameter","location","search","fetchOneInvoiceData","order_lines","unit_amount","invoice","Date","period_to","fetchPaymentData","pushVirtualPage","pathname","pushGaEvent","fetchConsentData","data","fetchMembershipData","activeSubscription","subscription","plan","handleClick","redirectLink","url","query","ctrl","confetti","inline","classNames","title","description","confirmationText","_ctrl$userData","userName","email","_ctrl$invoiceData","transactions","transactionId","id","variant","onClick","text","Ensigten","Tabs","Tab","MembershipPaymentCard","Invoice","Confetti","PaymentMethods","Checkbox","cancelledMembership","uncancelledMembership","subscriptionData","paymentCardsData","allPaymentMethods","chosenInvoice","checkboxPermission","consentLoading","nextDiscount","isNavigation","shouldInitPaymentMethodsComponent","_subscriptionData","formatDate","date","dateTime","getDate","getMonth","getFullYear","setupPaymentMethods","_paymentCardsData","isActive","undefined","localResponse","method","card","types","applepay","_method$applepay","_method$applepay2","_method$applepay3","push","card_type","masked_card","other","otherMethod","active","activeMethod","_ref3","nextInvoice","optionsDate","day","month","year","locale","is_cancelled","membershipIsCancelled","dateString","expires","toLocaleDateString","expiresDate","cancelDateTime","cancelled_date","diff","floor","next_period_start","invoiceDate","_x","_ref4","includes","validateCoupon","discountUsed","customer","StatusCode","Message","some","orderLine","origin_handle","log","message","fetchData","_ref5","fetchPlanData","fetchActivePaymentMethods","fetchPaymentCardsData","_subscriptionData2","coupons","couponPromises","map","coupon","_invoice$transactions","_method$card","payment_method","recurring_payment_method","cardnumber","_method$applepay4","_method$applepay5","exp_date","created","dateRange","period_from","_ref6","searchParams","hash","split","pop","paymentMethodId","URLSearchParams","get","payment_method_id","changePaymentMethod","handleCancellation","subscriptionUncancel","membershipCancelSubscriptionLink","goBack","goToInvoice","setConsentData","referenceId","handleReadMore","marketingReadMore","checkNavigation","ignoreelement","isInitialized","setTimeout","clubNavigation","querySelector","_ref7","_consentData","_subscriptionData3","_subscriptionData4","_subscriptionData5","_paymentCardsData2","_paymentCardsData3","_paymentCardsData4","_paymentCardsData5","_subscriptionData6","_invoiceData","membership","membershipSectionTitle","trust","replace","completedText","marketingTitle","src","imagePlaneSeat","marketingDescription","dark","value","isRichText","marketingAcceptCheckboxLabel","loading","onclick","disabled","marketingAccept","membershipPriceTitle","membershipBillingCycleTitle","nextPriceTitle","cancelText","resubscribeButtonText","paymentSectionTitle","_data$card","_data$card2","_data$card3","cardNumber","expireDate","_data$card4","_data$card5","_data$card6","paymentMethodChangeButtonText","invoicesSectionTitle","price","ordertext","size","invoicesInvoiceLinkText","Form","Radio","FormState","sendEnSightenEvent","event","category","label","handleSubscriptionCancel","selectedValue","handleConfirm","subscriptionCancel","subscriptionCancelReasons","cancel","weekday","reasonTitle","reasonDescription","onSubmit","required","reasonOptions","lastText","form","type","ctaText","Overview","ActiveGame","FutureGame","GamesFrame","Accordion","sessionStorageKey","DS","Config","CONTEXT","activeGameData","futureGameData","selectedGame","gamelauncherUrl","isLoyaltyClubSubscriber","getSessionStorage","scrollToTop","scrollTo","fetchGamesData","currentDate","game","start","end","sort","a","b","closed","_ref8","accordionGroupTitle","accordionGroup","accordion","index","key","VbfSlider","Countdown","vbfData","promises","fetchVbfTickets","formatVBFTotalTickets","tickets","_ref9","imageClouds","alt","imagePlane","accept","activeTabOnInit","yourTickets","totalTickets","hasOwnProperty","nextDraw","endTime","textAfter","large","stillASpot","imagePlaneSeats","tasks","Object","entries","summary","_ref10","oddsetClubMember","oddsetClubMemberDescription","oddsetGames","oddsetGamesDescription","oddsetGamesPlacement","oddsetGamesPlacementDescription","completed","current","howTo","whatIsVBFTab","imageVBF","whatIsVBF","howToParticipate","slides","slide","image","conditionsTitle","conditions","ComponentLoader","ignoresettings","toggleClass","lineClampClass","expand","collapse","inactiveClass","activeClass","toggles","toggleElem","toggleId","toggleExpandCollapse","toggleElement","originalHeight","offsetHeight","lineHeight","parseFloat","getComputedStyle","style","height","display","addEventListener","toggle","contains","innerHTML","buttons","toggleButton","tabs","elem","remove","parentElement","lockedContent","content","e","preventDefault","links","link","toLowerCase","target","toggleModal","setupMutationObserver","targetNode","MutationObserver","mutationsList","runAgain","mutation","observe","childList","alreadyDiscounted","fetchSubscriptionData","_ref11","_subscription$coupons","churnModal","buttonOne","setCoupon","buttonTwo","initialize","_ref12","sliderRef","buttonPrev","buttonNext","isSliderWiderThanWindow","scrollWidth","scroll","scrollOffset","scrollLeft","offsetWidth","left","behavior","queryParams","playerUrl","CONTEXTPREFIX","episodeId","open","_this","dots","slideRef","isDesktop","innerWidth","currentSlide","dot","changeSlide","slideHeight","clientHeight","slideIndex","round","scrollTop","slideWidth","clientWidth","clicked","scrollToSlide","scrollPosition","offsetTop","offsetLeft","top","scrollToSlider","sliderTop","getBoundingClientRect","pageYOffset","onload","scrollPos","scrollDirection","transitionClass","clubContainer","topNavigation","clubNavigationChildNav","returnUrl","$backButtonElem","setupEventListeners","scrollY","topNavigationStyle","topNavigationTransformValues","transform","match","paddingTop","padding","position","width","zIndex","checkForHiddenLinksAndHideParent","li","aElement","CrossWindowEvents","subscribe","setSessionStorage","isSubscriber","modalOpen","handleCloseModal","goTo","origin","_settings$imagePlaneS","goToVbfButton","closeButton","Storage","userIsSubscriber","permissionData","getCookieData","setCookieData","now","setDate","daysToExpire","toISOString","set","stringify","isLoggedIn","handleAccept","_settings$image","checkboxError","checkboxLabel","decline","handleDecline","_settings$image2"],"mappings":"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","file":"region-kluboddset.js","sourcesContent":["defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/Svg/Svg', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (FrameworkSvg) {\r\n 'use strict';\r\n\r\n const Svg = function (icon, config) {\r\n if (!icon) return;\r\n\r\n const options = {\r\n href: '/Components/DanskeSpil/Domain/Feature.LoyaltyClub/Graphics/SpriteSheets/Icons.svg',\r\n ...config\r\n };\r\n\r\n return FrameworkSvg(icon, options);\r\n };\r\n\r\n return Svg;\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader',\r\n [],\r\n function () {\r\n\r\n // Variables:\r\n var count = 0;\r\n\r\n // Functions:\r\n const detect = (name) => {\r\n return [...document.querySelectorAll(`[data-component=\"${name}\"]`)].filter((item) => !item.hasAttribute('data-component-count'));\r\n };\r\n\r\n var initialize = function (name, callback) {\r\n var $elements = detect(name);\r\n\r\n // If there are no elements to mount, we return early:\r\n if ($elements.length === 0) {\r\n return;\r\n }\r\n\r\n // DOM:\r\n $elements.forEach(function ($element) {\r\n register($element, name);\r\n\r\n var internals = {\r\n $element: $element,\r\n count: count\r\n };\r\n\r\n var settings = $element.getAttribute('data-settings') || {};\r\n\r\n if (typeof settings === 'string') {\r\n settings = JSON.parse(settings);\r\n }\r\n\r\n callback.bind({ $element: internals.$element })(settings, internals.$element);\r\n\r\n count++;\r\n });\r\n };\r\n\r\n var register = function ($element) {\r\n if (!$element.hasAttribute('data-uitest-id')) {\r\n $element.setAttribute('data-uitest-id', $element.dataset.component);\r\n }\r\n $element.setAttribute('data-component-count', count);\r\n };\r\n\r\n // Public functions:\r\n return initialize;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/SubscriptionFlow/SubscriptionFlow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Reepay',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/SubscriptionFlow/Step2',\r\n],\r\n\r\nfunction (Component, Reepay, Api, LoginCache, Step2) {\r\n Component('subscription-flow', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n this.settings = settings;\r\n this.route = route;\r\n const isLoading = m.prop(false);\r\n const userData = m.prop(LoginCache.getUserObj().customerInfo);\r\n const paymentData = m.prop({});\r\n const discountCode = m.prop(null);\r\n const discountData = m.prop(null);\r\n const isApplePayAvailable = m.prop(false);\r\n\r\n const fetchPaymentData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchOnePlanData(settings.planHandle)\r\n .then((response) => {\r\n paymentData(response);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n reject();\r\n });\r\n });\r\n };\r\n\r\n const fetchCouponData = () => {\r\n return new Promise((resolve, reject) => {\r\n if (settings.couponCode) {\r\n Api.fetchCouponData(settings.couponCode)\r\n .then((response) => {\r\n discountCode(response.discount);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n };\r\n\r\n const fetchDiscountData = () => {\r\n return new Promise((resolve, reject) => {\r\n Api.fetchDiscountData()\r\n .then((response) => {\r\n response.forEach((discount) => {\r\n if (discount.state === 'Active' && discountCode() === discount.handle) {\r\n discountData(paymentData().amount - discount.amount);\r\n }\r\n });\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const init = async () => {\r\n let apiCalls = [Reepay.load(), fetchPaymentData(), fetchCouponData()];\r\n try {\r\n await Promise.all(apiCalls);\r\n await Promise.resolve(fetchDiscountData());\r\n isApplePayAvailable(Reepay.isApplePayAvailable());\r\n isLoading(false);\r\n m.redraw();\r\n } catch (error) {\r\n console.error('An error occurred:', error);\r\n isLoading(false);\r\n }\r\n };\r\n\r\n const back = () => {\r\n window.history.back();\r\n };\r\n\r\n init();\r\n\r\n return { isLoading, back, userData, paymentData, isApplePayAvailable, discountData };\r\n },\r\n view: function ({ isLoading, back, userData, paymentData, isApplePayAvailable, discountData }) {\r\n if (isLoading()) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n return (\r\n back() }\r\n route={route}\r\n />\r\n );\r\n }\r\n };\r\n\r\n route('/', root);\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/SubscriptionFlow/Receipt', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Button/Button',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Modal/Modal',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/SubscriptionFlow/NewsletterPromotion',\r\n],\r\n\r\nfunction (Component, Utils, Ensighten, Api, LoginCache, Button, Modal, NewsletterPromotion) {\r\n Component('subscription-receipt', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n const isLoading = m.prop(false);\r\n const invoiceData = m.prop({});\r\n const userData = m.prop(LoginCache.getUserObj().customerInfo);\r\n const consentData = m.prop({ EmailPermission: false });\r\n const paymentData = m.prop({});\r\n const invoiceId = m.prop(null);\r\n const currentDiscount = m.prop(null);\r\n\r\n const formatDiscount = (discount) => {\r\n return (paymentData()?.amount - Math.abs(discount)) / 100;\r\n };\r\n\r\n const fetchCustomerInvoiceData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchInvoiceData()\r\n .then((response) => {\r\n response.forEach((invoice) => {\r\n const currentDate = new Date();\r\n const invoiceDate = new Date(invoice.period_to);\r\n if (currentDate < invoiceDate) {\r\n invoiceData(invoice);\r\n }\r\n if (invoiceData().order_lines[1]) {\r\n currentDiscount(formatDiscount(invoiceData().order_lines[1].unit_amount));\r\n }\r\n isLoading(false);\r\n });\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchInvoiceData = () => {\r\n document.body.classList.add('is-loyaltyclub-subscriber');\r\n invoiceId(Utils.getParameter('invoice', window.location.search));\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n if (!invoiceId()) {\r\n fetchCustomerInvoiceData().then(() => {\r\n resolve();\r\n });\r\n } else {\r\n Api.fetchOneInvoiceData(invoiceId())\r\n .then((response) => {\r\n invoiceData(response);\r\n if (invoiceData().order_lines[1]) {\r\n currentDiscount(formatDiscount(invoiceData().order_lines[1].unit_amount));\r\n }\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n }\r\n });\r\n };\r\n\r\n\r\n const fetchConsentData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchConsentData()\r\n .then((response) => {\r\n consentData(response.data);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchSubscriptionData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchMembershipData()\r\n .then((response) => {\r\n let activeSubscription = null;\r\n response.forEach(((subscription) => {\r\n if (subscription.state === 'Active') {\r\n activeSubscription = subscription;\r\n }\r\n }));\r\n if (activeSubscription) {\r\n fetchPaymentData(activeSubscription.plan);\r\n }\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchPaymentData = (handle) => {\r\n Api.fetchOnePlanData(handle)\r\n .then((response) => {\r\n paymentData(response);\r\n });\r\n };\r\n\r\n const handleClick = () => {\r\n if (consentData().EmailPermission) {\r\n window.location.href = settings.redirectLink.url + settings.redirectLink.query;\r\n } else {\r\n route('/tilmeld-nyhedsbrev')();\r\n }\r\n };\r\n\r\n Ensighten.pushVirtualPage('Kluboddset_signup', window.location.pathname + route());\r\n Ensighten.pushGaEvent('Kluboddset_signup', 'kvittering', 'Step3');\r\n\r\n Promise.all([fetchConsentData(), fetchSubscriptionData()]).then(() => {\r\n fetchInvoiceData().then(() => {\r\n isLoading(false);\r\n m.redraw();\r\n });\r\n });\r\n\r\n return { handleClick, isLoading, userData, invoiceData, consentData, paymentData, currentDiscount };\r\n },\r\n view: function (ctrl) {\r\n if (ctrl.isLoading()) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n } else if (route() === '/tilmeld-nyhedsbrev') {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n
\r\n
\r\n \r\n {[

{settings.title}

,\r\n

{settings.description}

]}\r\n \r\n
\r\n
\r\n

\r\n {settings.confirmationText}\r\n

\r\n {ctrl.userData()?.userName &&

{ctrl.userData().email}

}\r\n

Klub Oddset Abonnement

\r\n { ctrl.currentDiscount() != null ?\r\n
\r\n

{ctrl.paymentData().amount / 100} kr/md

\r\n

{ctrl.currentDiscount()} kr/md

\r\n
:\r\n

{ctrl.paymentData().amount / 100} kr/md

\r\n }\r\n { ctrl.invoiceData()?.transactions.length > 0 ?

{settings.transactionId} {ctrl.invoiceData().transactions[0].id}

: null }\r\n
\r\n
\r\n ctrl.handleClick()}>\r\n {settings.redirectLink.text}\r\n \r\n
\r\n
\r\n );\r\n }\r\n }\r\n };\r\n route('/', root);\r\n route('/tilmeld-nyhedsbrev', root);\r\n });\r\n});\r\n","/* eslint-disable no-unused-vars */\r\n/* eslint-disable camelcase */\r\ndefineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/MembershipFlow/MembershipFlow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Tabs/Tabs',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Tabs/Tab',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Button/Button',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/MembershipPaymentCard/MembershipPaymentCard',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Invoice/Invoice',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Modal/Modal',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Confetti/Confetti',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/MembershipFlow/PaymentMethods',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Form/Checkbox/Checkbox',\r\n],\r\n\r\nfunction (Component, Api, LoginCache, Ensigten, Tabs, Tab, Button, MembershipPaymentCard, Invoice, Modal, Confetti, PaymentMethods, Checkbox) {\r\n Component('membership-flow', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n const userData = m.prop(LoginCache.getUserObj().customerInfo);\r\n const isLoading = m.prop(false);\r\n const cancelledMembership = m.prop(false);\r\n const uncancelledMembership = m.prop(false);\r\n const subscriptionData = m.prop({});\r\n const paymentCardsData = m.prop({});\r\n const allPaymentMethods = m.prop({});\r\n const invoiceData = m.prop({});\r\n const chosenInvoice = m.prop(null);\r\n const consentData = m.prop({ EmailPermission: null });\r\n const checkboxPermission = m.prop(false);\r\n const consentLoading = m.prop(false);\r\n const currentDiscount = m.prop(null);\r\n const nextDiscount = m.prop(null);\r\n const discountCode = m.prop([]);\r\n const isNavigation = m.prop(true);\r\n const shouldInitPaymentMethodsComponent = m.prop(true);\r\n\r\n const checkNavigation = function (ignoreelement, isInitialized) {\r\n if (!isInitialized) {\r\n // we hack this to force this function to run after the DOM is updated\r\n setTimeout(() => {\r\n const clubNavigation = document.querySelector('[data-uitest-id=\"club-navigation\"]');\r\n isNavigation(!!clubNavigation);\r\n m.redraw();\r\n }, 0);\r\n }\r\n };\r\n\r\n const goBack = () => {\r\n window.location.href = '/kluboddset/abonnement';\r\n };\r\n\r\n const handleReadMore = () => {\r\n window.location.href = settings.marketingReadMore.url;\r\n };\r\n\r\n const formatDiscount = (discount) => {\r\n return (subscriptionData()?.amount - Math.abs(discount)) / 100;\r\n };\r\n\r\n const formatDate = (date) => {\r\n const dateTime = new Date(date);\r\n // return date in format DD/MM/YYYY\r\n return `${dateTime.getDate()}/${dateTime.getMonth() + 1}/${dateTime.getFullYear()}`;\r\n };\r\n\r\n const setupPaymentMethods = (response, isActive = false) => {\r\n let localResponse = response;\r\n localResponse.forEach((method) => {\r\n if (method.card === null) method.card = {};\r\n method.card.types = [];\r\n if (method.applepay !== null) {\r\n method.card.types.push('appleypay');\r\n method.card.types.push(method.applepay?.card_type === 'mc' ? 'mastercard' : method.applepay?.card_type);\r\n method.card.masked_card = method.applepay?.masked_card;\r\n } else if (method.card.card_type) {\r\n if (method.card.card_type === 'visa_dk') {\r\n method.card.types.push('visa');\r\n method.card.types.push('dankort');\r\n } else if (method.card.card_type === 'mc') {\r\n method.card.types.push('mastercard');\r\n } else {\r\n method.card.types.push(method.card.card_type);\r\n }\r\n } else return;\r\n });\r\n if (isActive) {\r\n if (paymentCardsData()?.other?.length > 0) {\r\n // check if active payment method is already in other payment methods\r\n localResponse.forEach((method) => {\r\n paymentCardsData().other.forEach((otherMethod) => {\r\n if (method.id === otherMethod?.id) {\r\n // remove from other\r\n paymentCardsData().other = paymentCardsData().other.filter((item) => item.id !== method.id);\r\n }\r\n // add to active\r\n paymentCardsData().active = localResponse;\r\n });\r\n });\r\n } else {\r\n paymentCardsData().active = localResponse;\r\n }\r\n } else {\r\n paymentCardsData().other = [];\r\n localResponse.forEach((method) => {\r\n // check if there is an active payment method\r\n if (paymentCardsData().active === undefined && method.state === 'Active') {\r\n paymentCardsData().other.push(method);\r\n } else if (method.state === 'Active') {\r\n // make sure that we don't add the active payment method to other payment methods\r\n paymentCardsData().active.forEach((activeMethod) => {\r\n if (method.id !== activeMethod.id) {\r\n paymentCardsData().other.push(method);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n const goToInvoice = (invoice) => {\r\n chosenInvoice(invoice);\r\n route('/invoice')();\r\n };\r\n\r\n const fetchMembershipData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchMembershipData()\r\n .then(async (response) => {\r\n response.forEach(((subscription) => {\r\n if (subscription.state === 'Active') {\r\n let localResponse = subscription;\r\n let nextInvoice = '';\r\n\r\n const optionsDate = {\r\n day: '2-digit',\r\n month: 'long',\r\n year: 'numeric'\r\n };\r\n const locale = 'da-DK';\r\n\r\n if (localResponse.is_cancelled) {\r\n nextInvoice = settings.membershipIsCancelled;\r\n const dateTime = new Date(localResponse.expires);\r\n\r\n const dateString = dateTime.toLocaleDateString(locale, optionsDate);\r\n localResponse.expiresDate = dateString;\r\n\r\n const cancelDateTime = new Date(localResponse.cancelled_date);\r\n // check if cancelled date is less than 20 minutes ago\r\n const now = new Date();\r\n const diff = now - cancelDateTime;\r\n const diffMinutes = Math.floor(diff / 60000);\r\n if (diffMinutes < 20) {\r\n cancelledMembership(true);\r\n }\r\n } else {\r\n const dateTime = new Date(localResponse.next_period_start);\r\n const dateString = dateTime.toLocaleDateString(locale, optionsDate);\r\n nextInvoice = dateString;\r\n }\r\n localResponse.invoiceDate = nextInvoice;\r\n subscriptionData(localResponse);\r\n }\r\n }));\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchPlanData = () => {\r\n return new Promise((resolve, reject) => {\r\n Api.fetchPlanData()\r\n .then((response) => {\r\n response.forEach((plan) => {\r\n if (plan.handle === subscriptionData().plan) {\r\n subscriptionData().amount = plan.amount;\r\n }\r\n });\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchActivePaymentMethod = () => {\r\n return new Promise((resolve, reject) => {\r\n isLoading(true);\r\n Api.fetchActivePaymentMethods(subscriptionData().handle)\r\n .then((response) => {\r\n setupPaymentMethods(response, true);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchPaymentCardsData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchPaymentCardsData()\r\n .then((response) => {\r\n allPaymentMethods(response);\r\n setupPaymentMethods(response);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchCouponData = () => {\r\n return new Promise((resolve, reject) => {\r\n if (subscriptionData()?.coupons?.length) {\r\n const couponPromises = subscriptionData().coupons.map((coupon) =>\r\n Api.fetchCouponData(coupon)\r\n .then((response) => {\r\n if (response.state === 'Active') discountCode().push(response.handle);\r\n })\r\n .catch((error) => {\r\n console.log(`Failed to fetch data for coupon ${coupon}:`, error);\r\n })\r\n );\r\n\r\n Promise.all(couponPromises)\r\n .then(() => resolve())\r\n .catch((error) => reject(error));\r\n } else {\r\n reject('No coupons found');\r\n }\r\n });\r\n };\r\n\r\n const fetchDiscountData = async () => {\r\n return new Promise((resolve, reject) => {\r\n Api.fetchDiscountData()\r\n .then((response) => {\r\n response.forEach((discount) => {\r\n if (discount.state === 'Active' && discountCode().includes(discount.handle)) {\r\n validateCoupon().then((discountUsed) => {\r\n if (!discountUsed) {\r\n nextDiscount(formatDiscount(discount.amount));\r\n }\r\n });\r\n }\r\n });\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchInvoiceData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchInvoiceData()\r\n .then((response) => {\r\n let localResponse = response;\r\n localResponse.forEach((invoice) => {\r\n invoice.types = [];\r\n allPaymentMethods().forEach((method) => {\r\n if (invoice.transactions[0]?.payment_method === method.id || invoice.recurring_payment_method === method.id) {\r\n if (method.card !== null) {\r\n if (method.card.card_type === 'visa_dk') {\r\n invoice.types.push('visa');\r\n invoice.types.push('dankort');\r\n } else if (method.card.card_type === 'mc') {\r\n invoice.types.push('mastercard');\r\n } else {\r\n invoice.types.push(method.card.card_type);\r\n }\r\n invoice.cardnumber = method.card?.masked_card;\r\n } else if (method.applepay !== null) {\r\n invoice.types = ['appleypay'];\r\n invoice.cardnumber = method.applepay?.masked_card;\r\n invoice.exp_date = method.applepay?.exp_date;\r\n }\r\n }\r\n });\r\n invoice.date = formatDate(invoice.created);\r\n invoice.dateRange = `${formatDate(invoice.period_from)} - ${formatDate(invoice.period_to)}`;\r\n invoiceData(localResponse);\r\n\r\n const currentDate = new Date();\r\n const invoiceDate = new Date(invoice.period_to);\r\n if (currentDate < invoiceDate && invoice.order_lines[1]) {\r\n currentDiscount(formatDiscount(invoice.order_lines[1].unit_amount));\r\n }\r\n });\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const validateCoupon = () => {\r\n return new Promise((resolve, reject) => {\r\n Api.validateCoupon(discountCode(), subscriptionData().customer)\r\n .then(() => {\r\n // If the response is successful, the coupon is valid\r\n resolve(true);\r\n })\r\n .catch((error) => {\r\n // Handle specific 400 response\r\n if (error.StatusCode === 400 && error.Message === 'Failed to validate coupon') {\r\n // Check if the discount has been used in an invoice\r\n const discountUsed = invoiceData().some((invoice) =>\r\n invoice.order_lines.some((orderLine) => orderLine.origin_handle.includes(discountCode()))\r\n );\r\n resolve(discountUsed);\r\n } else {\r\n // Handle unexpected errors\r\n console.log('An error occurred:', error.message);\r\n resolve(false); // Return false if we dont know the state of the coupon\r\n }\r\n });\r\n });\r\n };\r\n\r\n const fetchConsentData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchConsentData()\r\n .then((response) => {\r\n consentData(response.data);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n const fetchData = async () => {\r\n paymentCardsData({});\r\n try {\r\n await Promise.resolve(fetchMembershipData());\r\n await Promise.all([\r\n fetchPlanData(),\r\n fetchActivePaymentMethod(),\r\n fetchPaymentCardsData(),\r\n fetchCouponData(),\r\n ]);\r\n await Promise.all([fetchInvoiceData(), fetchConsentData()]);\r\n await Promise.resolve(fetchDiscountData());\r\n m.redraw();\r\n isLoading(false);\r\n } catch (error) {\r\n console.error('An error occurred:', error);\r\n isLoading(false);\r\n }\r\n };\r\n\r\n const setConsentData = (state = true) => {\r\n consentLoading(true);\r\n const settings = {\r\n EmailPermission: state,\r\n referenceId: 'KLUBODDSET_MEMBERSHIP_PAGE'\r\n };\r\n Api.setConsentData(settings)\r\n .then(() => {\r\n consentData().EmailPermission = state;\r\n consentLoading(false);\r\n m.redraw();\r\n }).catch((error) => {\r\n console.error('An error occurred:', error);\r\n });\r\n };\r\n\r\n const handleCancellation = () => {\r\n if (subscriptionData().is_cancelled) {\r\n Api.subscriptionUncancel(subscriptionData().handle)\r\n .then(() => {\r\n uncancelledMembership(true);\r\n cancelledMembership(false);\r\n fetchData().then(() => {\r\n m.redraw();\r\n });\r\n }).catch((error) => {\r\n console.error('An error occurred:', error);\r\n });\r\n } else {\r\n Ensigten.pushGaEvent('Kluboddset_signup', 'unsubscribe', 'step1');\r\n window.location.href = settings.membershipCancelSubscriptionLink.url;\r\n }\r\n };\r\n\r\n const changePaymentMethod = (id) => {\r\n const data = {\r\n payment_method_id: id\r\n };\r\n Api.changePaymentMethod(subscriptionData().handle, data)\r\n .then(() => {\r\n fetchData();\r\n }).catch(() => {\r\n });\r\n };\r\n\r\n const init = async () => {\r\n const searchParams = window.location.hash.split('?').pop();\r\n const params = new URLSearchParams(searchParams);\r\n const paymentMethodId = params.get('payment_method');\r\n if (paymentMethodId) {\r\n await fetchMembershipData();\r\n changePaymentMethod(paymentMethodId);\r\n } else {\r\n fetchData();\r\n }\r\n };\r\n\r\n init();\r\n\r\n return { isLoading, subscriptionData, paymentCardsData, invoiceData, handleCancellation, cancelledMembership, uncancelledMembership, userData, goBack, fetchData, goToInvoice, chosenInvoice, consentData, setConsentData, checkboxPermission, consentLoading, handleReadMore, currentDiscount, nextDiscount, isNavigation, checkNavigation, shouldInitPaymentMethodsComponent };\r\n },\r\n view: function ({ isLoading, subscriptionData, paymentCardsData, invoiceData, handleCancellation, cancelledMembership, uncancelledMembership, userData, goBack, fetchData, goToInvoice, chosenInvoice, consentData, setConsentData, checkboxPermission, consentLoading, handleReadMore, currentDiscount, nextDiscount, isNavigation, checkNavigation, shouldInitPaymentMethodsComponent }) {\r\n if (isLoading()) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n } else if (route() === '/invoice') {\r\n return (\r\n goBack()}\r\n />\r\n );\r\n } else if (route() === '/paymentmethods') {\r\n return (\r\n fetchData()}\r\n goBack={() => goBack()}\r\n />\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n {[\r\n \r\n {[\r\n cancelledMembership() ?
\r\n \r\n

{m.trust(settings.description.replace('{EMAIL}', userData().email))}

,\r\n \r\n
: uncancelledMembership() ?
\r\n \r\n \r\n {[\r\n

{m.trust(settings.completedText)}

,\r\n ]}\r\n \r\n
: null,\r\n consentData().EmailPermission !== null && !consentData()?.EmailPermission && !cancelledMembership() && !uncancelledMembership() ? \r\n
\r\n

{settings.marketingTitle}

\r\n \r\n

{m.trust(settings.marketingDescription)}

\r\n \r\n {settings.marketingAcceptCheckboxLabel}\r\n \r\n setConsentData(true)}\r\n disabled={!checkboxPermission()}>\r\n {settings.marketingAccept}\r\n \r\n handleReadMore()}>\r\n {settings.marketingReadMore.text}\r\n \r\n
\r\n
: null,\r\n
\r\n {settings.membershipPriceTitle}

\r\n\r\n { currentDiscount() != null ?\r\n
\r\n

{`${subscriptionData().amount / 100} kr/md`}

\r\n

{`${currentDiscount()} kr/md`}

\r\n
:\r\n {`${subscriptionData().amount / 100} kr/md`}

\r\n }\r\n\r\n {settings.membershipBillingCycleTitle}

\r\n {subscriptionData().invoiceDate}

\r\n\r\n { subscriptionData()?.is_cancelled ? '' : [\r\n

{settings.nextPriceTitle}

,\r\n nextDiscount() != null ? (\r\n
\r\n

{`${subscriptionData().amount / 100} kr/md`}

\r\n

{`${nextDiscount()} kr/md`}

\r\n
\r\n ) : (\r\n

{`${subscriptionData().amount / 100} kr/md`}

\r\n )\r\n ]}\r\n
,\r\n subscriptionData()?.is_cancelled ?
\r\n

{m.trust(settings.cancelText.replace('{DATO}', subscriptionData().expiresDate))}

\r\n
: null,\r\n handleCancellation()}>\r\n {subscriptionData().is_cancelled ? settings.resubscribeButtonText : settings.membershipCancelSubscriptionLink.text}\r\n \r\n ]}\r\n ,\r\n \r\n {[\r\n
\r\n

Valgt betalingsmetode

\r\n { paymentCardsData()?.active?.length > 0 ?\r\n paymentCardsData()?.active?.map((data) =>\r\n \r\n ) :

Ingen valgt betalingsmetode

\r\n }\r\n
,\r\n
\r\n

Andre betalingsmetoder

\r\n { paymentCardsData()?.other?.length > 0 ?\r\n paymentCardsData()?.other?.map((data) =>\r\n \r\n ) :

Ingen andre betalingsmetoder

\r\n }\r\n
,\r\n route('/paymentmethods')() }>\r\n {settings.paymentMethodChangeButtonText}\r\n \r\n ]}\r\n ,\r\n \r\n { invoiceData() && invoiceData().length > 0 ?\r\n
\r\n

{settings.membershipBillingCycleTitle}

\r\n

{subscriptionData()?.invoiceDate}

\r\n
\r\n {\r\n invoiceData()?.map((data) =>\r\n
\r\n \r\n
\r\n goToInvoice(data)}\r\n >\r\n {settings.invoicesInvoiceLinkText}\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n
\r\n :\r\n
\r\n

Her vil der vises en oversigt over alle fakturaer som hører til dette abonnement

\r\n
\r\n }\r\n \r\n ]}\r\n \r\n
\r\n );\r\n }\r\n }\r\n };\r\n\r\n route('/', root);\r\n route('/invoice', root);\r\n route('/paymentmethods', root);\r\n\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/UnsubscribeFlow/UnsubscribeFlow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Button/Button',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Form/Form',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Form/Radio/Radio',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Form/FormState'\r\n],\r\n\r\nfunction (Component, Ensighten, Button, Form, Radio, Api, FormState) {\r\n Component('unsubscribe-flow', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n this.settings = settings;\r\n const subscriptionData = m.prop({});\r\n const isLoading = m.prop(false);\r\n\r\n const sendEnSightenEvent = (event, category, label) => {\r\n Ensighten.pushGaEvent(event, category, label);\r\n };\r\n\r\n function handleSubscriptionCancel() {\r\n sendEnSightenEvent('Kluboddset_signup', 'unsubscribe_reason', FormState.selectedValue());\r\n window.location.href = '/kluboddset/abonnement';\r\n }\r\n\r\n const cancel = () => {\r\n window.location.href = '/kluboddset/abonnement';\r\n };\r\n\r\n const formatDate = (data) => {\r\n const optionsDate = {\r\n weekday: 'long',\r\n day: '2-digit',\r\n month: 'long',\r\n year: 'numeric'\r\n };\r\n const locale = 'da-DK';\r\n\r\n const dateTime = new Date(data);\r\n const dateString = dateTime.toLocaleDateString(locale, optionsDate).replace(/den/, 'd.');\r\n\r\n return dateString;\r\n };\r\n\r\n const handleConfirm = () => {\r\n Api.subscriptionCancel(subscriptionData().handle)\r\n .then(() => {\r\n sendEnSightenEvent('Kluboddset_signup', 'unsubscribe', '');\r\n Api.subscriptionCancelReasons(FormState.selectedValue())\r\n .then(() => {\r\n handleSubscriptionCancel();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n handleSubscriptionCancel();\r\n });\r\n }).catch((error) => {\r\n console.error('An error occurred:', error);\r\n });\r\n };\r\n\r\n const fetchSubscriptionData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchMembershipData()\r\n .then((response) => {\r\n response.forEach(((subscription) => {\r\n if (subscription.state === 'Active') {\r\n subscriptionData(subscription);\r\n }\r\n }));\r\n resolve();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n reject();\r\n });\r\n });\r\n };\r\n\r\n Promise.all([fetchSubscriptionData()])\r\n .then(() => {\r\n isLoading(false);\r\n m.redraw();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n isLoading(false);\r\n });\r\n\r\n return { handleConfirm, subscriptionData, isLoading, cancel, formatDate };\r\n },\r\n view: function (ctrl) {\r\n if (ctrl.isLoading()) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n return (\r\n
\r\n
\r\n {settings.reasonTitle}\r\n

\r\n {m.trust(settings.reasonDescription.replace('{EXPIREDATE}', ctrl.formatDate(ctrl.subscriptionData().next_period_start)))}\r\n

\r\n
\r\n ctrl.handleConfirm()}\r\n required\r\n error='Vælg et svar'>\r\n {[\r\n settings.reasonOptions.map((data) =>\r\n \r\n )\r\n ]}\r\n \r\n
\r\n

\r\n {m.trust(settings.lastText)}\r\n

\r\n
,\r\n
\r\n \r\n {settings.ctaText}\r\n \r\n ctrl.cancel()}>\r\n {settings.cancelText}\r\n \r\n
\r\n
\r\n );\r\n }\r\n };\r\n\r\n route('/', root);\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/GamesFlow/GamesFlow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/GamesFlow/Overview',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/GamesFlow/ActiveGame',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/GamesFlow/FutureGame',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/GamesFlow/GamesFrame',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Accordion/Accordion'\r\n],\r\n\r\nfunction (Component, Utils, Api, Overview, ActiveGame, FutureGame, GamesFrame, Accordion) {\r\n Component('games-flow', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n const sessionStorageKey = `${DS.Config.CONTEXT}DS_LOYALTYCLUB_MEMBER`;\r\n this.settings = settings;\r\n this.route = route;\r\n\r\n const isLoading = m.prop(false);\r\n const activeGameData = m.prop([]);\r\n const futureGameData = m.prop([]);\r\n const selectedGame = m.prop(null);\r\n const gamelauncherUrl = m.prop(null);\r\n const isLoyaltyClubSubscriber = Utils.getSessionStorage(sessionStorageKey) === 'true';\r\n\r\n const scrollToTop = () => {\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n const sortActiveGamesByStatus = (games) => {\r\n // sort active games by date and status\r\n games.sort((a, b) => {\r\n if (a.end < b.end && a.closed) {\r\n return 0;\r\n }\r\n if (a.end > b.end && !a.closed) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n };\r\n\r\n const fetchGameData = () => {\r\n isLoading(true);\r\n\r\n return new Promise((resolve, reject) => {\r\n Api.fetchGamesData(isLoyaltyClubSubscriber).then((response) => {\r\n const currentDate = new Date();\r\n response.forEach((game) => {\r\n game.start = new Date(game.start);\r\n game.end = new Date(game.end);\r\n // if currentDate is between start and end date\r\n if (currentDate > game.start && currentDate < game.end) {\r\n activeGameData().push(game);\r\n } else if (currentDate < game.start) {\r\n futureGameData().push(game);\r\n }\r\n });\r\n // sort active and future games by start date\r\n sortActiveGamesByStatus(activeGameData());\r\n futureGameData().sort((a, b) => a.start - b.start);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n };\r\n\r\n Promise.all([fetchGameData()])\r\n .then(() => {\r\n scrollToTop();\r\n isLoading(false);\r\n m.redraw();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n isLoading(false);\r\n });\r\n\r\n return { isLoading, activeGameData, futureGameData, selectedGame, scrollToTop, gamelauncherUrl };\r\n },\r\n view: function ({ isLoading, activeGameData, futureGameData, selectedGame, scrollToTop, gamelauncherUrl }) {\r\n if (isLoading()) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {function () {\r\n if (route() === '/') {\r\n return (\r\n
\r\n \r\n
\r\n

{settings.accordionGroupTitle}

\r\n
\r\n {settings.accordionGroup.map((accordion, index) => (\r\n
\r\n \r\n
{m.trust(accordion.description)}
\r\n \r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n );\r\n } else if (route() === '/activegame') {\r\n return (\r\n \r\n );\r\n } else if (route() === '/futuregame') {\r\n return (\r\n \r\n );\r\n } else if (route() === '/gamesframe') {\r\n return (\r\n \r\n );\r\n }\r\n }()}\r\n
\r\n );\r\n }\r\n };\r\n\r\n route('/', root);\r\n route('/activegame', root);\r\n route('/futuregame', root);\r\n route('/gamesframe', root);\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/VbfFlow/VbfFlow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Tabs/Tabs',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Tabs/Tab',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Sliders/VbfSlider/VbfSlider',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Modal/Modal',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Button/Button',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Form/Checkbox/Checkbox',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Countdown/Countdown',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Accordion/Accordion'\r\n],\r\n\r\nfunction (Component, Utils, Api, LoginCache, Tabs, Tab, VbfSlider, Modal, Button, Checkbox, Countdown, Accordion) {\r\n Component('vbf-flow', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n const sessionStorageKey = `${DS.Config.CONTEXT}DS_LOYALTYCLUB_MEMBER`;\r\n const vbfData = m.prop({});\r\n const isLoading = m.prop(false);\r\n const consentData = m.prop({});\r\n const checkboxPermission = m.prop(false);\r\n const consentLoading = m.prop(false);\r\n const isLoyaltyClubSubscriber = Utils.getSessionStorage(sessionStorageKey) === 'true';\r\n const userData = m.prop(LoginCache.getUserObj().customerInfo);\r\n\r\n const handleReadMore = () => {\r\n window.location.href = settings.marketingReadMore.url;\r\n };\r\n\r\n const formatVBFTotalTickets = (tickets) => {\r\n return tickets < 10 ? `0${tickets}` : tickets;\r\n };\r\n\r\n const fetchVbfData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchVbfTickets()\r\n .then((response) => {\r\n vbfData(response);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n reject();\r\n });\r\n });\r\n };\r\n\r\n const fetchConsentData = () => {\r\n isLoading(true);\r\n return new Promise((resolve, reject) => {\r\n Api.fetchConsentData()\r\n .then((response) => {\r\n consentData(response.data);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n reject();\r\n });\r\n });\r\n };\r\n\r\n const setConsentData = (state = true) => {\r\n consentLoading(true);\r\n const settings = {\r\n EmailPermission: state,\r\n referenceId: 'KLUBODDSET_VBF_PAGE'\r\n };\r\n Api.setConsentData(settings)\r\n .then(() => {\r\n consentData().EmailPermission = state;\r\n consentLoading(false);\r\n m.redraw();\r\n }).catch((error) => {\r\n console.error('An error occurred:', error);\r\n });\r\n };\r\n\r\n let promises = [];\r\n\r\n if (userData()) {\r\n promises.push(fetchConsentData());\r\n }\r\n\r\n if (isLoyaltyClubSubscriber) {\r\n promises.push(fetchVbfData());\r\n }\r\n\r\n Promise.all(promises)\r\n .then(() => {\r\n isLoading(false);\r\n m.redraw();\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n isLoading(false);\r\n });\r\n\r\n\r\n return { vbfData, isLoading, consentData, checkboxPermission, setConsentData, consentLoading, isLoyaltyClubSubscriber, handleReadMore, formatVBFTotalTickets };\r\n },\r\n view: function ({ vbfData, isLoading, consentData, checkboxPermission, setConsentData, consentLoading, isLoyaltyClubSubscriber, handleReadMore, formatVBFTotalTickets }) {\r\n if (isLoading()) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n return (\r\n
\r\n

{settings.title}

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n { consentData().EmailPermission || !isLoyaltyClubSubscriber ? '' : \r\n
\r\n

{settings.marketingTitle}

\r\n \r\n

{m.trust(settings.marketingDescription)}

\r\n \r\n {settings.marketingAccept}\r\n \r\n setConsentData(true)}\r\n disabled={!checkboxPermission()}>\r\n {settings.accept || 'Tilmeld'}\r\n \r\n handleReadMore()}>\r\n {settings.marketingReadMore.text}\r\n \r\n
\r\n
\r\n }\r\n \r\n {[\r\n \r\n
\r\n
\r\n
\r\n

{settings.totalTickets}

\r\n

{vbfData().hasOwnProperty('tickets') ? formatVBFTotalTickets(vbfData().tickets) : '00'}

\r\n
\r\n {vbfData().hasOwnProperty('tickets') ?
\r\n

{settings.nextDraw}

\r\n \r\n
: ''}\r\n
\r\n
\r\n
\r\n

{settings.stillASpot}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n {vbfData().hasOwnProperty('summary') ?\r\n
\r\n
\r\n

{settings.tasks}

\r\n

{settings.tickets}

\r\n
\r\n
\r\n {Object.entries(vbfData().summary).map(([key, value]) => {\r\n let title;\r\n let description;\r\n\r\n switch (key) {\r\n case 'marketing':\r\n title = settings.oddsetClubMember;\r\n description = settings.oddsetClubMemberDescription;\r\n break;\r\n case 'game':\r\n title = settings.oddsetGames;\r\n description = settings.oddsetGamesDescription;\r\n break;\r\n case 'game_performance':\r\n title = settings.oddsetGamesPlacement;\r\n description = settings.oddsetGamesPlacementDescription;\r\n break;\r\n default:\r\n title = '';\r\n description = '';\r\n }\r\n\r\n return (\r\n
\r\n {title && description && (\r\n
\r\n \r\n

\r\n {description}\r\n

\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n })}\r\n
\r\n

{settings.totalTickets}

\r\n \r\n {vbfData().tickets}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
: ''}\r\n

{settings.howTo}

\r\n

{settings.description}

\r\n
\r\n
\r\n ,\r\n \r\n {[\r\n
\r\n \r\n
,\r\n
\r\n {m.trust(settings.whatIsVBF)}\r\n
,\r\n
\r\n

{settings.howToParticipate}

\r\n
,\r\n \r\n {\r\n settings.slides.map((slide) =>\r\n
\r\n \r\n

{slide.title}

\r\n
\r\n )\r\n },\r\n
,\r\n
,\r\n
\r\n

{settings.conditionsTitle}

\r\n
    \r\n
    \r\n {m.trust(settings.conditions)}\r\n
    \r\n
\r\n
\r\n ]}\r\n \r\n ]}\r\n \r\n
\r\n
\r\n );\r\n }\r\n };\r\n\r\n route('/', root);\r\n\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/Toggle/Toggle', [\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader'\r\n], function (ComponentLoader) {\r\n ComponentLoader('toggle', function (ignoresettings) {\r\n this.settings = {\r\n toggleClass: 'hidden',\r\n lineClampClass: 'line-clamp-3',\r\n expand: 'Læs mere',\r\n collapse: 'Læs mindre',\r\n inactiveClass: ['!text-alabaster-500', '!font-light', 'border-opacity-white'],\r\n activeClass: ['font-normal', 'border-picton-blue-500']\r\n };\r\n\r\n this.init = () => {\r\n // Toggle functionality for button that expands and collapses elements\r\n const toggles = this.$element.querySelectorAll('[data-toggle-expand-collapse]');\r\n if (toggles) {\r\n toggles.forEach((toggleElem) => {\r\n\r\n const toggleId = toggleElem.dataset.toggleExpandCollapse;\r\n const toggleElement = this.$element.querySelector(`[data-toggle-expand-collapse-container=\"${toggleId}\"]`);\r\n const originalHeight = toggleElement.offsetHeight;\r\n\r\n // Apply line-clamp and height if the content is more than 3 lines, else hide the toggle button\r\n const lineHeight = parseFloat(window.getComputedStyle(toggleElement).lineHeight);\r\n if (originalHeight > lineHeight * 3) {\r\n toggleElement.classList.add(this.settings.lineClampClass);\r\n toggleElement.style.height = (lineHeight * 3) + 'px';\r\n } else {\r\n toggleElem.style.display = 'none';\r\n }\r\n\r\n toggleElem.addEventListener('click', () => {\r\n toggleElement.classList.toggle(this.settings.lineClampClass);\r\n\r\n // Add and animate the height change\r\n if (toggleElement.classList.contains(this.settings.lineClampClass)) {\r\n toggleElement.style.height = (lineHeight * 3) + 'px';\r\n toggleElem.innerHTML = this.settings.expand;\r\n } else {\r\n toggleElement.style.height = originalHeight + 'px';\r\n toggleElem.innerHTML = this.settings.collapse;\r\n }\r\n });\r\n });\r\n }\r\n\r\n // Toggle functionality for button that shows and hides elements\r\n const buttons = this.$element.querySelectorAll('[data-toggle-button]');\r\n if (buttons) {\r\n buttons.forEach((toggleElem) => {\r\n toggleElem.addEventListener('click', () => {\r\n const toggleId = toggleElem.dataset.toggleButton;\r\n\r\n // toggle hidden class from element\r\n const toggleElement = this.$element.querySelector(`[data-toggle-container=\"${toggleId}\"]`);\r\n toggleElement.classList.toggle(this.settings.toggleClass);\r\n });\r\n });\r\n }\r\n\r\n // Toggle functionality for tabs\r\n const tabs = this.$element.querySelectorAll('[data-toggle]');\r\n if (tabs) {\r\n tabs.forEach((toggleElem) => {\r\n toggleElem.addEventListener('click', () => {\r\n const toggleId = toggleElem.dataset.toggle;\r\n\r\n this.$element.querySelectorAll('[data-toggle-container]').forEach((elem) => elem.classList.add(this.settings.toggleClass));\r\n this.$element.querySelectorAll('[data-toggle]').forEach((elem) => {\r\n elem.classList.add(...this.settings.inactiveClass);\r\n elem.classList.remove(...this.settings.activeClass);\r\n });\r\n\r\n this.$element.querySelector('[data-toggle-container=' + toggleId + ']').classList.remove(this.settings.toggleClass);\r\n this.$element.querySelector('[data-toggle=' + toggleId + ']').classList.add(...this.settings.activeClass);\r\n this.$element.querySelector('[data-toggle=' + toggleId + ']').classList.remove(...this.settings.inactiveClass);\r\n });\r\n });\r\n }\r\n };\r\n\r\n this.init();\r\n });\r\n});","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/Toggle/ToggleModal', [\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader'\r\n], function (ComponentLoader) {\r\n ComponentLoader('toggle-modal', function (ignoresettings) {\r\n this.settings = {\r\n toggleClass: 'hidden',\r\n };\r\n\r\n const init = () => {\r\n const parentElement = document.querySelector('.theme-kluboddset');\r\n if (!parentElement) {\r\n return;\r\n }\r\n // get modal element\r\n const toggleElement = this.$element.querySelector('[data-toggle-modal=\"locked-content-modal\"]');\r\n if (!toggleElement) {\r\n return;\r\n }\r\n // get all elements on page with the data-locked-content=\"true\" attribute (or \"True\" because Sitecore)\r\n const lockedContent = parentElement.querySelectorAll('[data-locked-content=\"True\"], [data-locked-content=\"true\"]');\r\n if (lockedContent) {\r\n lockedContent.forEach((content) => {\r\n content.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n toggleElement.classList.remove(this.settings.toggleClass);\r\n });\r\n });\r\n }\r\n // get all a and button elements on page\r\n const links = parentElement.querySelectorAll('a');\r\n if (links) {\r\n links.forEach((link) => {\r\n // if the link hash includes the same id as toggleElement, prevent default and open the modal\r\n if (link.hash.toLowerCase().includes(toggleElement.id.toLowerCase())) {\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n toggleElement.classList.remove(this.settings.toggleClass);\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n // get close button for the modal\r\n const buttons = this.$element.querySelectorAll('[data-toggle-modal-button=\"locked-content-modal\"]');\r\n if (buttons) {\r\n buttons.forEach((toggleElem) => {\r\n toggleElem.addEventListener('click', () => {\r\n // toggle hidden class from element\r\n toggleElement.classList.toggle(this.settings.toggleClass);\r\n });\r\n });\r\n }\r\n };\r\n\r\n // if data-toggle-modal=\"locked-content-modal\" is clicked, close modal\r\n document.addEventListener('click', (e) => {\r\n if (e.target.dataset.toggleModal === 'locked-content-modal') {\r\n const toggleElement = document.querySelector('[data-toggle-modal=\"locked-content-modal\"]');\r\n toggleElement.classList.add(this.settings.toggleClass);\r\n }\r\n });\r\n\r\n const setupMutationObserver = () => {\r\n // Select the games flow component\r\n const targetNode = document.querySelector('[data-component=\"games-flow\"]');\r\n if (!targetNode) {\r\n return;\r\n }\r\n // Observe changes to the games flow component\r\n const config = { childList: true };\r\n // Callback function to execute when mutations are observed\r\n const callback = (mutationsList) => {\r\n let runAgain = false;\r\n for (let mutation of mutationsList) {\r\n if (mutation.type === 'childList') {\r\n runAgain = true;\r\n }\r\n }\r\n if (runAgain) {\r\n init();\r\n }\r\n };\r\n const observer = new MutationObserver(callback);\r\n observer.observe(targetNode, config);\r\n };\r\n\r\n init();\r\n setupMutationObserver();\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/Toggle/ToggleChurnModal', [\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n], function (ComponentLoader, Api, Ensighten) {\r\n ComponentLoader('toggle-churn-modal', function (settings) {\r\n\r\n const toggleClass = 'hidden';\r\n let subscriptionData = null;\r\n let alreadyDiscounted = false;\r\n\r\n const fetchSubscriptionData = async () => {\r\n Api.fetchMembershipData()\r\n .then((response) => {\r\n response.forEach(((subscription) => {\r\n if (subscription.state === 'Active') {\r\n subscriptionData = subscription;\r\n if (subscription.coupons?.length > 0) {\r\n alreadyDiscounted = !validateCoupon();\r\n }\r\n }\r\n }));\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n });\r\n };\r\n\r\n const validateCoupon = () => {\r\n Api.validateCoupon(settings.couponCode, subscriptionData.customer)\r\n .then(() => {\r\n // If the repsonse is successful, the coupon is valid\r\n return true;\r\n })\r\n .catch(() => {\r\n return false; // If the response is an error, the coupon is invalid\r\n });\r\n };\r\n\r\n const handleConfirm = () => {\r\n window.location.href = '/kluboddset/abonnement/opsig-medlemsskab-step2';\r\n };\r\n\r\n const handleAcceptDiscount = () => {\r\n Api.setCoupon(subscriptionData.handle, settings.couponCode)\r\n .then(() => {\r\n Ensighten.pushGaEvent('Kluboddset_signup', 'accepted_discount_while_unsubscribing', '');\r\n window.location.href = '/kluboddset/abonnement';\r\n })\r\n .catch((error) => {\r\n console.error('An error occurred:', error);\r\n });\r\n };\r\n\r\n const init = () => {\r\n const parentElement = document.querySelector('.theme-kluboddset');\r\n if (!parentElement) {\r\n return;\r\n }\r\n // get modal element\r\n const toggleElement = parentElement.querySelector('[data-toggle-modal=\"churn-modal\"]');\r\n if (!toggleElement) {\r\n return;\r\n }\r\n // get the button that opens the modal\r\n const churnModal = document.querySelector('.js-churn-modal');\r\n if (churnModal) {\r\n churnModal.addEventListener('click', (e) => {\r\n if (!alreadyDiscounted) {\r\n e.preventDefault();\r\n toggleElement.classList.remove(toggleClass);\r\n }\r\n });\r\n }\r\n\r\n // get close button for the modal\r\n const buttons = toggleElement.querySelectorAll('[data-toggle-modal-button=\"churn-modal\"]');\r\n if (buttons) {\r\n buttons.forEach((toggleElem) => {\r\n toggleElem.addEventListener('click', () => {\r\n // toggle hidden class from element\r\n toggleElement.classList.toggle(toggleClass);\r\n });\r\n });\r\n }\r\n\r\n // get buttonOne and buttonTwo and set their actions\r\n const buttonOne = toggleElement.querySelector('[churn-modal-button=\"accept\"]');\r\n buttonOne?.addEventListener('click', () => {\r\n handleAcceptDiscount();\r\n });\r\n\r\n const buttonTwo = toggleElement.querySelector('[churn-modal-button=\"decline\"]');\r\n buttonTwo?.addEventListener('click', () => {\r\n handleConfirm();\r\n });\r\n };\r\n\r\n const initialize = async () => {\r\n await fetchSubscriptionData();\r\n init();\r\n };\r\n\r\n initialize();\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/Slide/Slide', [\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader'\r\n], function (ComponentLoader) {\r\n ComponentLoader('slide', function (ignoresettings) {\r\n\r\n // Slide component\r\n this.init = () => {\r\n const sliderRef = this.$element.querySelector('[data-slider=\"slider\"]');\r\n const buttonPrev = this.$element.querySelector('[data-slide-button=\"prev\"]');\r\n const buttonNext = this.$element.querySelector('[data-slide-button=\"next\"]');\r\n\r\n // run this check on load, to see if we need to show the buttons\r\n if (isSliderWiderThanWindow()) {\r\n buttonPrev.classList.remove('hidden');\r\n buttonNext.classList.remove('hidden');\r\n } else {\r\n buttonPrev.classList.add('hidden');\r\n buttonNext.classList.add('hidden');\r\n }\r\n\r\n window.addEventListener('resize', () => {\r\n if (isSliderWiderThanWindow()) {\r\n buttonPrev.classList.remove('hidden');\r\n buttonNext.classList.remove('hidden');\r\n } else {\r\n buttonPrev.classList.add('hidden');\r\n buttonNext.classList.add('hidden');\r\n }\r\n });\r\n\r\n buttonPrev.addEventListener('click', () => {\r\n scroll(-302); // do we want this to be hardcoded? - Right now the width of a card in the slider is hardcoded, so it makes sense to keep it hardcoded here as well\r\n });\r\n\r\n buttonNext.addEventListener('click', () => {\r\n scroll(302);\r\n });\r\n\r\n function isSliderWiderThanWindow() {\r\n if (document.body.classList.contains('is-mobile-detected')) return false;\r\n return sliderRef.scrollWidth > 1000; // hardcoding this to the desktop width of the slider\r\n }\r\n\r\n function scroll(scrollOffset) {\r\n if (sliderRef.scrollLeft >= sliderRef.scrollWidth - sliderRef.offsetWidth && scrollOffset > 0) {\r\n sliderRef.scrollTo({\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n } else if (sliderRef.scrollLeft === 0 && scrollOffset < 0) {\r\n sliderRef.scrollTo({\r\n left: sliderRef.scrollWidth - sliderRef.offsetWidth,\r\n behavior: 'smooth'\r\n });\r\n } else {\r\n sliderRef.scrollTo({\r\n left: sliderRef.scrollLeft + scrollOffset,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n };\r\n\r\n\r\n this.init();\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/WebPlayer/WebPlayer', [\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader'\r\n], function (ComponentLoader) {\r\n ComponentLoader('web-player', function (settings) {\r\n this.settings = settings;\r\n let queryParams = '';\r\n\r\n if (document.body.classList.contains('app-web-view')) {\r\n queryParams = `?returnUrl=${window.location.href}&backButtonText=Tilbage til oversigten`;\r\n }\r\n\r\n this.playerUrl = `${DS.Config.CONTEXTPREFIX}/scapi/podcast/episode/${this.settings.episodeId}${queryParams}`;\r\n\r\n // Toggle functionality for button that shows and hides elements\r\n this.init = () => {\r\n this.$element.addEventListener('click', () => {\r\n window.open(this.playerUrl, 'Oddset Web Player', 'scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=600,height=525');\r\n });\r\n };\r\n\r\n this.init();\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/Slide/VerticalSlide', [\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader'\r\n], function (ComponentLoader) {\r\n ComponentLoader('verticalslide', function (ignoresettings) {\r\n const active = 'bg-white';\r\n\r\n this.init = () => {\r\n const sliderRef = this.$element.querySelector('[data-slide=\"slider\"]');\r\n const dots = this.$element.querySelectorAll('[data-slide=\"dot\"]');\r\n const slideRef = this.$element.querySelectorAll('[data-slide-card]');\r\n let isDesktop = window.innerWidth > 960;\r\n let currentSlide = 0;\r\n\r\n window.addEventListener('resize', () => {\r\n if (window.innerWidth > 960) {\r\n isDesktop = true;\r\n } else {\r\n isDesktop = false;\r\n }\r\n });\r\n\r\n dots[currentSlide].classList.add(active);\r\n\r\n dots.forEach((dot, index) => {\r\n dot.addEventListener('click', () => {\r\n this.changeSlide(index);\r\n });\r\n });\r\n\r\n sliderRef.addEventListener('scroll', () => {\r\n if (isDesktop) {\r\n const slideHeight = slideRef[currentSlide].clientHeight;\r\n const slideIndex = Math.round(sliderRef.scrollTop / slideHeight);\r\n if (currentSlide !== slideIndex) {\r\n this.changeSlide(slideIndex, false);\r\n }\r\n } else {\r\n const slideWidth = slideRef[currentSlide].clientWidth;\r\n const slideIndex = Math.round(sliderRef.scrollLeft / slideWidth);\r\n if (currentSlide !== slideIndex) {\r\n this.changeSlide(slideIndex, false);\r\n }\r\n }\r\n });\r\n\r\n this.changeSlide = (index, clicked = true) => {\r\n dots[currentSlide].classList.remove(active);\r\n dots[index].classList.add(active);\r\n currentSlide = index;\r\n if (clicked) this.scrollToSlide(index);\r\n };\r\n\r\n this.scrollToSlide = (index) => {\r\n const slide = slideRef[index];\r\n const scrollPosition = isDesktop ? slide.offsetTop : slide.offsetLeft;\r\n sliderRef.scrollTo({\r\n top: isDesktop ? scrollPosition : 0,\r\n left: isDesktop ? 0 : scrollPosition,\r\n behavior: 'smooth'\r\n });\r\n };\r\n\r\n this.scrollToSlider = () => {\r\n const sliderTop = sliderRef.getBoundingClientRect().top + (window.pageYOffset + 10);\r\n window.scrollTo({\r\n top: sliderTop,\r\n behavior: 'smooth'\r\n });\r\n };\r\n };\r\n\r\n window.onload = () => {\r\n this.init();\r\n };\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/ClubNavigation/ClubNavigation', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader'\r\n],\r\n\r\nfunction (Utils, ComponentLoader) {\r\n ComponentLoader('club-navigation', function () {\r\n const isDesktop = window.innerWidth > 949; // this is the breakpoint for the top navigation\r\n let scrollPos = 0;\r\n let scrollDirection = null;\r\n const transitionClass = 'sticky-header';\r\n const clubContainer = document.querySelector('.theme-kluboddset');\r\n const topNavigation = document.querySelector('.ds-navigation');\r\n const clubNavigation = document.querySelector('div[data-component=\"club-navigation\"]');\r\n const clubNavigationChildNav = clubNavigation.querySelector('nav');\r\n\r\n // add transition class to clubNavigation (for now we want it to always be sticky)\r\n clubNavigation.classList.add(transitionClass);\r\n\r\n this.returnUrl = Utils.getParameter('returnUrl');\r\n this.$backButtonElem = this.$element.querySelector('[data-ref=\"close-button\"]');\r\n\r\n this.setupEventListeners = () => {\r\n if (this.returnUrl && this.$backButtonElem) {\r\n this.$backButtonElem.classList.remove('hidden');\r\n this.$backButtonElem.addEventListener('click', () => {\r\n window.location.href = this.returnUrl;\r\n });\r\n }\r\n\r\n // on app we have no topnavigation, so for now we're not going to do anything on app\r\n if (topNavigation) {\r\n\r\n document.addEventListener('scroll', () => {\r\n const scrollY = typeof window.scrollY !== 'undefined' ? window.scrollY : window.pageYOffset;\r\n scrollDirection = scrollY > scrollPos ? 'down' : 'up';\r\n scrollPos = scrollY;\r\n\r\n let topNavigationStyle = window.getComputedStyle(topNavigation);\r\n\r\n // if clubNavigation has sticky-header class\r\n if (clubNavigation.classList.contains(transitionClass)) {\r\n // we want to calculate when to sticky the clubNavigation\r\n const topNavigationTransform = topNavigationStyle.transform;\r\n const topNavigationTransformValues = topNavigationTransform.match(/-?\\d+/g);\r\n const topNavigationTransformY = topNavigationTransformValues ? topNavigationTransformValues[5] : 0;\r\n\r\n if (topNavigationTransformY < 0) {\r\n clubContainer.style.paddingTop = `${topNavigation.offsetHeight}px`;\r\n clubNavigationChildNav.style.padding = '8px 0';\r\n clubNavigation.style.top = isDesktop ? '36px' : '32px';\r\n\r\n // if clubNavigation doesnt have 'position: fixed' we want to add it\r\n if (!clubNavigation.style.position || clubNavigation.style.position !== 'fixed') {\r\n clubNavigation.style.position = 'fixed';\r\n clubNavigation.style.width = '100%';\r\n clubNavigation.style.zIndex = '20';\r\n clubNavigation.style.left = '0';\r\n }\r\n }\r\n if (scrollY < 105 && scrollDirection === 'up') {\r\n // if clubNavigation has 'position: fixed' we want to remove it\r\n clubContainer.style.paddingTop = '0';\r\n clubNavigation.style.position = '';\r\n clubNavigationChildNav.style.padding = '24px 0';\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n\r\n const checkForHiddenLinksAndHideParent = () => {\r\n const liElements = this.$element.querySelectorAll('li');\r\n\r\n liElements.forEach((li) => {\r\n const aElement = li.querySelector('a');\r\n if (aElement && window.getComputedStyle(aElement).display === 'none') {\r\n li.classList.add('hidden');\r\n }\r\n });\r\n };\r\n\r\n this.init = () => {\r\n this.setupEventListeners();\r\n checkForHiddenLinksAndHideParent();\r\n };\r\n\r\n this.init();\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/Subscription/Subscriber', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Common/Framework/EventHandling/Scripts/CrossWindowEvents',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/ComponentLoader/ComponentLoader'\r\n], function (Utils, CrossWindowEvents, ComponentLoader) {\r\n ComponentLoader('loyaltyclub-subscriber', function (settings) {\r\n const sessionStorageKey = `${DS.Config.CONTEXT}DS_LOYALTYCLUB_MEMBER`;\r\n\r\n CrossWindowEvents.subscribe('ds.event.userLoggedOut', () => {\r\n Utils.setSessionStorage(sessionStorageKey, null);\r\n document.body.classList.remove('is-loyaltyclub-subscriber');\r\n });\r\n\r\n if (settings.isSubscriber) {\r\n Utils.setSessionStorage(sessionStorageKey, settings.isSubscriber);\r\n document.body.classList.add('is-loyaltyclub-subscriber');\r\n } else {\r\n Utils.setSessionStorage(sessionStorageKey, settings.isSubscriber);\r\n }\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/ModalOverlayComponent/ModalOverlayComponent', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Modal/Modal',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Button/Button',\r\n],\r\n\r\nfunction (Component, Utils, Modal, Button) {\r\n Component('modal-overlay-component', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n this.settings = settings;\r\n this.route = route;\r\n const modalOpen = m.prop(false);\r\n const permission = Utils.getParameter('marketingPermission');\r\n\r\n if (permission === 'true') {\r\n modalOpen(true);\r\n }\r\n\r\n const goTo = (url) => {\r\n window.location.href = window.location.origin + url;\r\n };\r\n\r\n const handleCloseModal = () => {\r\n modalOpen(false);\r\n };\r\n\r\n return { handleCloseModal, modalOpen, goTo };\r\n },\r\n view: function (ctrl) {\r\n return (\r\n \r\n
\r\n

{settings.title}

\r\n \r\n

{m.trust(settings.description)}

\r\n ctrl.goTo(settings.goToVbfButton.url)}\r\n >\r\n {settings.goToVbfButton.text}\r\n \r\n ctrl.handleCloseModal()}\r\n >\r\n {settings.closeButton}\r\n \r\n
\r\n \r\n );\r\n }\r\n };\r\n\r\n route('/', root);\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/ModalGivePermissionComponent/ModalGivePermissionComponent', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Helpers/Api',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Modal/Modal',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Button/Button',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Form/Checkbox/Checkbox',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Form/Form',\r\n],\r\n\r\nfunction (Component, Api, Utils, Storage, LoginCache, Modal, Button, Checkbox, Form) {\r\n Component('modal-give-permission-component', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n this.settings = settings;\r\n this.route = route;\r\n const userIsSubscriber = m.prop(Utils.getSessionStorage(`${DS.Config.CONTEXT}DS_LOYALTYCLUB_MEMBER`) || false);\r\n const modalOpen = m.prop(false);\r\n const permissionData = m.prop({});\r\n const checkboxPermission = m.prop(false);\r\n\r\n const setCookieData = () => {\r\n const now = new Date();\r\n const createDate = new Date(new Date(now).setDate(now.getDate() + settings.daysToExpire));\r\n const expireDate = createDate.toISOString();\r\n Storage.set(`klubOddset-${settings.title}`, JSON.stringify(settings.title), expireDate);\r\n };\r\n\r\n const getCookieData = () => {\r\n const cookie = Storage.get(`klubOddset-${settings.title}`);\r\n if (cookie) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const handleAccept = () => {\r\n setConsentData(true)\r\n .then(() => {\r\n handleCloseModal();\r\n })\r\n .catch(() => {\r\n console.error('An error occurred');\r\n handleCloseModal();\r\n });\r\n };\r\n\r\n const handleCloseModal = () => {\r\n if (!getCookieData()) {\r\n setCookieData();\r\n }\r\n modalOpen(false);\r\n };\r\n\r\n const fetchConsentData = () => {\r\n Api.fetchConsentData()\r\n .then((response) => {\r\n permissionData(response.data);\r\n if (!response.data.EmailPermission && userIsSubscriber() && !getCookieData()) {\r\n modalOpen(true);\r\n }\r\n }).catch((error) => {\r\n console.error('An error occurred:', error);\r\n });\r\n };\r\n\r\n if (LoginCache.isLoggedIn()) {\r\n fetchConsentData();\r\n }\r\n\r\n const setConsentData = (state = true) => {\r\n const settings = {\r\n EmailPermission: state,\r\n referenceId: 'KLUBODDSET_GIVE_PERMISSION_MODAL'\r\n };\r\n return Api.setConsentData(settings);\r\n };\r\n\r\n return { handleCloseModal, modalOpen, handleAccept, checkboxPermission };\r\n },\r\n view: function (ctrl) {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

{settings.title}

\r\n

{m.trust(settings.conditions)}

\r\n
ctrl.handleAccept()} data-uitest-id='modal-give-permission'>\r\n {settings.checkboxLabel}\r\n
\r\n
\r\n ctrl.handleCloseModal()}\r\n >\r\n {settings.decline}\r\n \r\n \r\n {settings.accept}\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n };\r\n\r\n route('/', root);\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.LoyaltyClub/Components/ModalBasicComponent/ModalBasicComponent', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Modal/Modal',\r\n 'DanskeSpil/Domain/Feature.LoyaltyClub/Components/Button/Button',\r\n],\r\n\r\nfunction (Component, Storage, Modal, Button) {\r\n Component('modal-basic-component', function (m, route, settings) {\r\n const root = {\r\n controller: function () {\r\n this.settings = settings;\r\n this.route = route;\r\n const modalOpen = m.prop(true);\r\n\r\n const setCookieData = () => {\r\n const now = new Date();\r\n const createDate = new Date(new Date(now).setDate(now.getDate() + settings.daysToExpire));\r\n const expireDate = createDate.toISOString();\r\n Storage.set(`klubOddset-${settings.title}`, JSON.stringify(settings.title), expireDate);\r\n };\r\n\r\n const getCookieData = () => {\r\n const cookie = Storage.get(`klubOddset-${settings.title}`);\r\n if (cookie) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const handleDecline = () => {\r\n if (!getCookieData()) {\r\n setCookieData();\r\n }\r\n if (settings.decline.url === window.location.pathname) {\r\n modalOpen(false);\r\n } else {\r\n window.location.href = settings.decline.url;\r\n }\r\n };\r\n\r\n const handleAccept = () => {\r\n if (!getCookieData()) {\r\n setCookieData();\r\n }\r\n if (settings.accept.url === window.location.pathname) {\r\n modalOpen(false);\r\n } else {\r\n window.location.href = settings.accept.url;\r\n }\r\n };\r\n\r\n if (!getCookieData()) {\r\n modalOpen(true);\r\n } else {\r\n modalOpen(false);\r\n }\r\n\r\n return { modalOpen, handleDecline, handleAccept };\r\n },\r\n view: function (ctrl) {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

{settings?.title}

\r\n

{settings?.description}

\r\n
\r\n ctrl.handleDecline()}\r\n >\r\n {settings.decline.text}\r\n \r\n ctrl.handleAccept()}\r\n >\r\n {settings.accept.text}\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n };\r\n\r\n route('/', root);\r\n });\r\n});\r\n"]}