{"version":3,"sources":["PageNavHeader.js","Pikaday.js","Cleanup.js","QuickLink.js","RouteParam.js","Model.js","Overlay.js","Dictionary.js","Svg.js","Button.js","ModalDialog.js","Utils.js","Recaptcha.js","Calendar.js","StepGuide.js","Api.js","WaitForAuthSynced.js","LimitModel.js","UserLimitsModel.js","UserModel.js","ForgotPasswordModel.js","PurposeModel.js","FileUploadModel.js","PlaycardModel.js","Link.js","Fireworks.js","StepHeader.js","ErrorOverlay.js","Loader.js","ProgressBar.js","ErrorMessage.js","InputField.js","ListField.js","LimitField.js","Dropdown.js","FileDropdown.js","FileUpload.js","Checkbox.js","RadioButton.js","IconButton.js","BackButton.js","InfoRow.js","NotificationDialog.js","RetailWallet.js","GameHistoryNavigation.js","Name.js","Address.js","Email.js","PINCode.js","Phone.js","PNumber.js","Username.js","AlreadyCreated.js","Password.js","ForgotPassword.js","ForgotPincode.js","AccountInfo.js","BasicAccountInfo.js","FaroeseAccountInfo.js","PersonalInfo.js","SelectLimit.js","UpdateLimit.js","EmailPermissions.js","EmailWinningsPermissions.js","Limits.js","GameScanner.js","UploadDocuments.js","Receipt.js","UpgradeSummary.js","Upgrade.js","Security.js","ResumeSignupFlow.js","FinalizeUpgrade.js","ProfileOverview.js","ViewPINCode.js","PayoutMethod.js","PlaycardOverview.js","OrderPlaycardIntro.js","OrderPlaycardConfirm.js","OrderPlaycardPincode.js","ReactivatePlaycard.js","CloseAccount.js","ConfirmAccountRestriction.js","ConfirmWagerLimits.js","RestrictAccount.js","ReorderPlaycard.js","LimitPeriodConfirm.js","UpdateOverview.js","GameHistoryList.js","GameHistoryDetails.js","GameHistoryOverview.js","GameHistoryPrize.js","GameHistoryPayout.js","ConfirmCallback.js","Intro.js","LimitPeriodSelection.js","LimitPeriodValue.js","RetailUpgrade.js","RetailSignup.js","RetailBasicSignup.js","RetailFaroeseSignup.js","RetailForgot.js","RetailFrontpagePlaycard.js","RetailProfile.js","RetailPlaycard.js","RetailGameHistoryList.js","RetailGameHistoryDetails.js","RetailGameHistoryOverview.js","RetailGameHistoryPrize.js","RetailGameHistoryPayout.js","RetailGameHistory.js","RetailLandingPage.js","RetailCarousel.js","RetailUpdateAccount.js","RetailPromo.js"],"names":["defineDs","Component","Utils","m","route","elem","this","$element","controller","targets","document","querySelectorAll","targetsArray","slice","call","scrollPage","event","preventDefault","$topNavigation","querySelector","scrollTarget","target","getAttribute","$scrollTargetElement","offsetTop","getBoundingClientRect","top","window","scrollY","scrollTopValue","documentElement","scrollTop","height","scrollTo","behavior","bind","pageIsReady","classList","add","removeEventListener","addHeaderHeightFix","insertAdjacentHTML","addEventListener","view","ctrl","map","item","href","id","onclick","logDeprecated","hasMoment","hasEventListeners","sto","setTimeout","addEvent","el","e","callback","capture","attachEvent","removeEvent","detachEvent","hasClass","cn","className","indexOf","addClass","removeClass","str","replace","trim","isArray","obj","test","Object","prototype","toString","isDate","isNaN","getTime","isWeekend","date","day","getDay","isLeapYear","year","getDaysInMonth","month","setToStartOfDay","setHours","compareDates","a","b","extend","to","from","overwrite","prop","hasProp","undefined","nodeName","Date","fireEvent","eventName","data","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","Math","ceil","abs","floor","defaults","field","bound","ariaLabel","position","reposition","format","parse","defaultDate","setDefaultDate","firstDay","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","container","blurFieldOnSelect","i18n","previousMonth","nextMonth","months","weekdays","weekdaysShort","theme","events","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","opts","abbr","renderDay","arr","ariaSelected","isEmpty","push","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","join","renderRow","days","isRowSelected","reverse","renderTitle","instance","c","refYear","randId","i","j","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","next","renderTable","renderHead","Pikaday","options","self","config","_onMouseDown","_v","srcElement","parentNode","prevMonth","setDate","hide","blur","_c","returnValue","_onChange","gotoMonth","value","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_onInputChange","firedBy","show","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","setAttribute","trigger","createElement","appendChild","body","insertBefore","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","parseInt","setMinDate","setMaxDate","fallback","getFullYear","_d","toDateString","getMoment","setMoment","preventOnSelect","getDate","draw","min","max","newCalendar","calendars","firstVisibleDate","lastVisibleDate","length","visibleDate","setMonth","getMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","random","substr","render","innerHTML","type","focus","adjustPosition","width","viewportWidth","viewportHeight","left","clientRect","leftAligned","bottomAligned","style","offsetWidth","offsetHeight","innerWidth","clientWidth","innerHeight","clientHeight","pageYOffset","pageXOffset","bottom","offsetLeft","offsetParent","now","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","d","y","onejan","isWeekSelected","r","dayNumber","monthNumber","yearNumber","dayConfig","unshift","v","destroy","removeChild","keys","localStorage","key","substring","JSON","getItem","timestamp","RegExp","location","search","console","warn","removeItem","ApiRequest","path","quickLink","loaded","ready","deferred","url","DS","Config","CONTEXTPREFIX","toLowerCase","method","localCacheTTL","noCache","unwrapSuccess","response","then","resolve","get","replacements","prefix","base","segments","split","segment","Array","k","val","toUpperCase","promise","paramKey","param","params","page","reduce","string","Cleanup","modelName","constructor","generateId","cache","construct","content","state","save","record","init","stringify","toJSON","setItem","update","updatedRecord","forEach","query","cached","json","bulk","filter","match","first","second","delete","new","activeOverlays","template","$container","$wrapper","getElementById","$overlayElement","clear","startComputation","removeOverlay","lowerOverlay","index","class","endComputation","splice","redraw","handleClose","$component","component","mount","$overlay","otherOverlay","Dictionary","svgName","props","_objectSpread","modifiers","modifier","xmlns","eventId","uiTestId","classes","default","disabled","loading","text","onkeydown","args","size","color","Button","Svg","buttons","button","close","ModalDialogObj","shouldBeComponent","closable","stackButtons","readMore","subText","renderKey","ctrlOrHandleClose","registerElementOrVnode","iosPositionFix","registerElement","scroll","ignoredError","concat","element","title","QuickLink","LoginSSO","Overlay","ModalDialog","defaultReceiptRedirect","repopulateUrlWithAssertionIdAndLoginId","relay","assertionId","loginId","finalUrl","initialQueryCharacter","currentJossoAssertionId","getParameter","currentLoginId","encodeURIComponent","dialogcontent","isAppUrl","some","getDefaultRedirectUrl","cookie","CONTEXT","Url","origin","queryString","charAt","keyVal","assignMethod","assign","formatCurrency","amount","Number","toFixed","convertCentsToKroner","appendParameter","queryKey","queryValue","pathname","existingParams","calculateAge","dateString","today","timeNow","century","birthDate","age","checkEncodeURI","chunks","chunkSize","arguments","resultArray","chunkIndex","convertCentsToKronerAndFormat","convertKronerToCents","deleteParameter","newUrlQuery","fileExtension","filename","lastIndexOf","formatCurrencyWithoutDecimals","formatDate","toLocaleDateString","toLocaleTimeString","formatDateOnly","formatDateShort","getHours","getMinutes","formatInputValue","inputValue","matches","parts","getPercentageOfSize","totalSize","getPreviousDatesFromToday","count","descending","dates","calculatedDate","dateWithoutTime","getRedirectUrlWithDsApplicationIdAndReturnUrl","dsApplicationId","dsApplicationConfig","ApplicationId","returnUrl","hash","getValidAppRedirectUrl","decodedUrl","decodeURIComponent","populatedUrl","hasObjectProperty","getValue","hasOwnProperty","isApp","isTopFrame","populateUrlWithAssertionIdAndLoginId","replaceDynamicText","replacementKeys","replaceParameterValue","scrollToError","error","routeSlide","elemOffsetY","isFixed","routeSlideStyle","getComputedStyle","getPropertyValue","scrollTopPos","sortCardsList","cardsList","sort","isPrimaryCard","cardExpirationDate","expired","sumAllTransactionPeriods","previousValue","currentPeriod","uniqueParams","querySplit","paramsSplit","unique","urlContainsLoginInformation","every","DateUtils","NumberUtils","formatNaming","name","excludedNames","camelCase","vikinglotto","eurojackpot","allornothing","lottosaturday","pascalCase","lotto","keno","kebabCase","alternative","alternativeNameFormat","openCoupon","protocol","hostname","getQueryParam","prepareParamString","isMobile","isTabletDevice","elementFullyScrolledInViewport","selector","getElementsByClassName","bounding","right","action","$gameOverlay","confirm","dismiss","isInit","reCaptchaInit","log","recaptchaScriptTag","onload","src","RECAPTCHA_URL","reCaptchaReady","grecaptcha","sitekey","RECAPTCHA_SITEKEY","toggled","hideLabel","picker","textInput","triggerElem","dateValue","targetDate","calendarLocalization","saveDate","isInitialized","for","currentStep","totalSteps","routes","labels","setClass","elementClass","steps","stepViews","Ensighten","PAMUtils","leadingZero","Intl","NumberFormat","currency","getError","errors","Message","Detail","Title","ensightenEvent","label","appSpecificContext","pushGaEvent","redirectOnLogout","DSAPI","Account","subscribeUserLoggedOut","mapModelToApiData","fields","modelFields","initialValues","includes","status","mapFilesToApiData","model","FormData","files","file","append","purpose","cprNumber","mapLimitToApiData","limitType","limitValue","mapModelAndRecaptchaToApiData","recaptcha","ignoreUsername","mapPasswordToApiData","password","repeatPassword","token","mapValidationErrors","errorFields","Source","Pointer","toLocaleLowerCase","isSmallScreen","extendFields","newFields","removeFields","deleteFields","deleteField","clearIndividualFields","fieldsToClear","fieldKey","clearField","prettifyFileName","extensionBegin","prettifyFileType","prettifyFileSize","isOddsetApp","formatDateTime","dayOffset","minutes","hours","isSameDay","firstDate","secondDate","date1","date2","capitalize","formatLimit","formatFaroeseId","formatCprNumber","elementInViewport","isRetailIpad","contains","unwrapError","headers","statusCode","message","getValidationMessage","required","noPurposeSelected","invalidToken","getRestrictDictionaryReceiptKey","restrictType","isRetailAccount","onlineAccount","trackUserInputErrors","category","errorMessage","trackLimitChanges","limits","limit","stored","getReturnUrl","splitString","delimiter","pushVirtualPage","pushGaEventOnPageRedirect","storeValueInSession","sessionStorage","getValueInSession","clearValueInSession","validateCprNumber","setupLoginLinkEventListeners","loginSuccessUrl","loginLinks","link","redirectUrl","cancelUrl","newUrl","replaceSlashWithHyphens","returnVal","baseUrl","getProfile","getProfileWithBankInformation","getProfileWithCache","updateProfile","createProfile","discardUpgrade","doUpgrade","getCities","background","getCountries","getUploadFilePurposes","scope","getSecurityQuestions","question","Id","MappingNumber","Name","Question","getPlayerLimits","_response$data2","_response$data3","SavedUserWagerLimits","SavedUserDepositLimits","setWagerLimits","_response$data4","_response$data5","setAmountLimits","hasDocuments","uploadDocuments","serialize","closeAccount","confirmChecksum","lockAccount","restrictAccount","headersObj","formattedDate","timezoneOffset","getTimezoneOffset","RestrictAccountEndDate","UtcMinutesOffset","getPlaycard","orderPlaycard","reOrderPlaycard","togglePlaycardStatus","getVisualPlayCard","getMobileLinkQR","getNotificationPermissions","marketingTerms","RetailPermission","emailPermission","EmailPermission","emailWinningPermission","EmailWinnerNotificationPermission","smsWinningPermission","SmsWinnerNotificationPermission","appPermission","AppPermission","appPermissionQuestioned","AppPermissionQuestioned","setNotificationPermissions","isPasswordTokenValid","changePassword","getDawaAddress","entry","tekst","street","adresse","vejnavn","zipCode","postnr","city","postnrnavn","houseNumber","husnr","door","dør","level","etage","getGameHistory","period","offset","vertical","getGameDetails","validateUsernameAndEmail","executePayout","winId","removePincodeExclusion","reactivatePlaycard","getOfflineLoginExclusion","getUserDepositLimits","_response$data","getUncollectedPrizes","getMostRestrictiveLimit","Event","LoginController","isSynced","subscribe","Model","computeState","plannedAt","plannedValue","Value","IsGlobal","Type","formatted","isGlobal","isOperator","IsOperator","PlannedAt","PlannedValue","Max","maxFormatted","hasFocus","hasErrors","reset","prettyType","limitRequired","limitMinimum","sitecoreLimits","clearErrors","hasLimit","mapToData","changes","newMax","object","isDeleting","apply","validate","isValid","sitecoreLimitHit","someOtherLimitsSetByUser","otherLimit","maxLimitSetByUserOrOperator","limitSetByUserOrOperator","operatorHaveSetALimit","limitIsSetByUser","lesserLimit","lesserIndex","TYPE","OTHERTYPE","LIMIT","LESSERLIMIT","PLANNEDTYPE","largerLimit","largerIndex","LARGERLIMIT","sitecorelimit","LIMITFORMATTET","AMOUNT","hasChanges","UserLimitModel","_content$hasOldOfflin","citiesList","availableCountries","securityQuestions","userLimits","defaultRestrictDate","username","email","currentPassword","hasValidCpr","firstName","lastName","hasValidName","country","phone","amountLimit","marketingDefaultTerms","pushpermissionMarketingTerms","acceptDataProcessing","acceptTermsAndConditions","bankAccount","emailRetailPermission","cprCheck","hasValidBankAccount","restrictCustomDate","restrictDate","restrict24hours","restrictUnlimited","nemIdSignedIn","nemIdNotUsed","isPending","isActive","isFromFaroe","accountTypeChangeInProgress","limitFormatted","securityQuestion","securityAnswer","runKnowYourCustomerFlow","pin1","pin2","pin3","pin4","pin1Confirm","pin2Confirm","pin3Confirm","pin4Confirm","pincode","pincodeConfirm","offlineWagerLimitPeriodDaily","offlineWagerLimitPeriodWeekly","offlineWagerLimitPeriodMonthly","offlineWagerLimitPeriod","offlineWagerLimit","hasOldOfflineWagerLimit","adviseEloquaOfAccountUpdate","nameIsSet","usernameIsSet","hasConsentedToGameScanner","cachedUpgrade","setDefaultCountry","setCountry","selectedCountry","setErrors","returnErrorFields","success","errorKeys","profile","validateFields","fieldName","isNotValid","Purpose","header","Header","description","Description","identifier","Identifier","isRequired","MandatoryIfPresent","VisibleInDropdown","settings","dictionary","closeable","MaxFileSize","MAXFILESIZE","FAILEDFILE","AllowedMimeTypes","fileType","cardNumber","CardNumber","expirationDate","ExpirationDate","isPhysicalCard","IsPhysicalCard","payoutAccount","PaymentAccount","canReorder","CanReorder","playcardStatus","digitalPlaycardImage","digitalPlaycardNumber","orderWithSamePincode","orderWithNewPincode","setPlaycardStatus","ShowOrderPlayCardButton","OnHold","FrameworkSvg","icon","isLoading","onFocus","buttonText","elemType","attributes","onfocus","anchorText","Firework","scale","fragments","ignoreItem","abstract","trust","StepHeader","dismisable","dismissButton","confirmButton","confirmButtonClass","outsideClick","stopPropagation","dismissButtonClass","loaderText","viewBox","cx","cy","fill","progress","singleError","center","ErrorMessage","_options$config","placeholder","oninput","onkeyup","onblur","remove","onmouseleave","labelText","forceNumeric","setcaret","selectionStart","setSelectionRange","noErrorIcon","helpText","InputField","fieldInFocus","validateField","list","onkeyevent","setSelected","Link","onLimitInput","newValue","modelValue","onBlur","alwaysVisible","postfix","limitText","cannotDelete","stateText","cancelDelete","cancelChange","operatorText","isUntouched","choices","selectedIndex","selected","hidden","choice","FileUploadModel","selectedPurpose","purposes","newFile","uploadSettings","accept","checked","labelClass","pushVirtualPageCallback","history","back","IconButton","subLabelText","horizontal","clickable","clickableIcon","testId","RecaptchaHelper","inited","closeIcon","amountNotice","pickupNotice","RouteParam","_controller$settings","_controller$settings2","_controller$settings3","ProgressBar","BackButton","userModel","hideBackButton","routeToPrevStep","buttonIsDisabled","isSubmitting","submit","ListField","Dropdown","setFieldFocus","lookupAddress","selectAddressFromSelection","innerText","addresses","lookupZip","selectCityFromZip","zips","lookupCity","cities","Checkbox","showRetailMarketingTerms","showRetailMarketingTermsInEmail","showEmailPermissionTermsInEmail","showAppPermissionTerms","Render","dictionaryKey","maskInput","maskPincodeInput","fieldSuffix","onkeyupHandler","cb","number","prevNumber","prevFieldName","focusField","cappedValue","isFieldDisabled","_userModel$fieldName","onFocusHandler","fieldNumber","numberOfFields","$field","nodes","context","rendered","focusOnce","depend","mergeAndValidateField","pNumber","isInvalid","onKeyup","validatePNumber","createUsername","NAME","loginPage","receiptContent","createUsernameFlow","verifyUsername","tokenIsValid","appLoginLink","loginLink","StepGuide","InfoRow","Recaptcha","resetErrors","recaptchaEnabled","validateRecaptcha","verify","validatePassword","validateLimit","onKeyUp","LimitField","userLimitModel","getPlaceholderText","VALUE","ACTIVEFROM","retailEmailPermissionText","onlineEmailPermissionText","prevValue","updatePermissions","initiator","variant","getVariant","cannotDeleteLimit","userLimit","goToRoute","goToConfirmLimit","noLimitsChanged","Loader","displayAddress","address","showAddress","checkElementInViewport","elementIsInViewport","FileDropdown","FileUpload","ignoreInitiator","classPrefix","hasLoadedDocuments","loadDocumentData","requirements","addFileRequirement","backAllowed","noPaddingTop","fileUpload","validateUpload","addFile","removeSelection","hasFilesUploaded","upload","noFilesSelected","Stepheader","handleCallback","ignoreContext","timeout","partialTemplate","discard","upgrade","UpgradeSummary","logout","routeToNextStep","finalize","playcardModel","hasOfflineExclusion","hasSetPincode","PINCODE","goToUploadDocumentation","NotificationDialog","playcardLinkButtonText","playcardLinkButtonSubText","playCardLinkMobilePay","playcardLinkReorder","showPlaycardFrontside","showPendingNotification","onmouseenter","mouseoverPlaycard","appLink","Text","mobilePayLink","openMobilePay","subMenuLink","menuLink","canOrder","reorderFlow","pageDescriptionDictionaryText","confirmPlaycardOrder","RadioButton","selectOption","reactivatePlaycardWithNewPincode","backLinkCallback","restrictAccountSubmit","rofusLink","Target","pageDescription","cancel","confirmLimit","Calendar","selectType","noPeriodSelected","calendarStartDate","calendarEndDate","limitPeriodType","forceRestartFlowIfNoTypeOrValue","receiptLink","GameHistoryNavigation","RetailWallet","_controller$uncollect","isWebview","uncollectedPrizes","items","win","winStatus","payoutSlideOpen","createdAt","channel","viewBetslipDetails","wager","setSlide","canBePaidOut","hasPrev","hasNext","game","hasValidCouponUrl","resizeIframe","couponUrl","frameborder","allowfullscreen","LimitOverview","totalAmount","currentAmount","currentAmountLabel","limitLabel","limitInfo","Fireworks","storelocator","span","spanText","createTextNode","replaceChild","hasPayout","dealerText","customerServiceText","Receipt","showReceipt","hasBankAccount","payoutText","DSUtils","FrameworkOverlay","RetailApi","WaitForAuthSynced","UserModel","PurposeModel","LimitModel","ErrorOverlay","Upgrade","AccountInfo","PersonalInfo","Security","SelectLimit","UpdateLimit","UploadDocuments","FinalizeUpgrade","routeConfiguration","order","step","preSelectedPurposes","root","modalError","LimitMinimum","UploadSettings","maxLimits","MaxLimits","hasPreloadFiles","getPurposes","purposeModel","preSelected","maxRetailDaily","maxRetailWeekly","maxRetailMonthly","HasDocuments","identifiers","sync","usernameAlreadySet","complete","showErrorModal","loader","display","openLogin","updateProgress","locationHash","newProgress","selection","removeIndex","maxLimitIdentifier","maxLimit","MAX_VALUE","PERIOD","ignoreResponse","disableCallback","redirect","brandUrl","preventUpdate","hasAcceptedDefaultMarketingPermission","usernameFields","limitData","routePath","nextStep","clearAddress","OperationSuccess","CssClass","zip","ZipCode","City","highlighted","currentTarget","SitecoreAuth","Address","Email","Phone","LimitPeriodSelection","LimitPeriodValue","LimitPeriodConfirm","PINCode","GameScanner","ResumeSignupFlow","AlreadyCreated","regularFlow","optionalFields","skipSubmit","replaceState","_settings$receiptLink","_this","forceRegularSteps","globalWagerLimits","_window$dsApplication","lastLogin","skipUpload","detectElementInViewport","find","validateHandler","mergeFieldsToSingleModelField","newFieldName","findFirstErrorAndRouteToPage","resetFields","routeConfig","_routeConfig$fields","getUserObj","isValidWithinGlobalLimits","setRoute","setAutoFocus","userIsPending","requiredFields","_document$querySelect","_document$querySelect2","globalLimit","getDepositLimits","BasicAccountInfo","_settings$receiptLink2","_this2","getResponse","resetRecaptcha","routeToNextError","storeSavedData","savedData","reload","reCaptchaCallback","FaroeseAccountInfo","PNumber","_this3","showMarketingTermsInEmail","canRouteToError","_settings$receiptLink3","_window$dsApplication2","ForgotPasswordModel","ForgotPassword","ForgotPincode","indexOfQueryParam","Api","_this$settings$birthd","_this$settings","birthdayText","user","playcard","hasError","enlargeQr","birthday","loadData","_ref","_asyncToGenerator","userData","playcardData","Promise","all","Error","replaceAll","formatBirthday","dateOfBirth","handleQrLabelClick","_ref2","_user$firstName$value","_user$lastName$value","svg","Content","Storage","PlaycardModel","ProfileOverview","Username","Password","ViewPINCode","PayoutMethod","EmailPermissions","EmailWinningsPermissions","CloseAccount","ConfirmAccountRestriction","RestrictAccount","Limits","ConfirmWagerLimits","ConfirmCallback","OrderPlaycardIntro","OrderPlaycardPincode","OrderPlaycardConfirm","ReactivatePlaycard","RofusLinks","_settings$homeLink","_settings$mobilePayLi","_settings$homeLink2","_this4","modalQRCode","playIdRenewed","playcardRenewed","homeLink","mobilePayQRCode","zoomQR","reactivatePlaycardFlow","retailPermissionText","onlinePermissionText","persistValues","originalValue","set","referenceId","receiptDictionaryKey","getPermissionsSettings","getMobileLinkQRCode","LimitRequired","Headline","Abstract","renewPlaycardId","appliedUntil","AppliedUntil","dictPath","TIME","identityConfirmMethod","confirmCallback","requests","enableMobilePay","_window$dsApplication3","PlaycardOverview","_this5","DictionaryRoot","appStoreLink","googlePlayLink","logoutRedirectUrl","routeObj","_routeConfig$fields2","fire","visible","links","routeClass","CrossWindowEvents","GameHistoryList","filterDictionary","activeRightMenuSelector","filterCallback","playerGames","PlayerGames","HasNext","HasPrevious","formattedGames","playerGame","WinStatus","CreatedAt","Channel","Wager","Win","CanBePaidOut","getUser","GameHistoryDetails","gameId","resizeMessageHandler","redirectBack","printReceipt","contentWindow","print","scrollHeight","setWidthAndHeight","totalVerticalMargin","totalHorizontalMargin","scrollWidth","timesCheckedForChangeInIframe","checkForContentChangeInIframe","setInterval","clearInterval","onunload","WagerStatus","CouponUrl","GameHistoryOverview","RemainingValue","GameHistoryPrize","externalId","ExternalId","RetailGameHistoryList","RetailGameHistoryDetails","RetailGameHistoryOverview","RetailGameHistoryPrize","RetailGameHistoryPayout","ignoredRoute","ignoredProperty","defaultRoute","mode","loadAnimation","resizeSplash","splashHeight","splashFrontImage","source","alt","alternateText","splashBackImage","appStoreImage","googlePlayImage","callToActionLink","locationUrl","backgroundColor","image","Carousel","LoginCache","carousel","currentUser","carouselItems","carouselItem","noWagerLimits","customerInfo","hasLimits","initCarousel","withDots","withArrows","ctaButton","AlternateText","Intro","_settings$homeLink3","_this6","noLimitPeriodSelected","userNeedsInteraction","_window$dsApplication4","_window$dsApplication5","dictionaryReceiptKey","_routeConfig$fields3","newStep","_document$querySelect3","_document$querySelect4","playerId","getPlayerId","scrollDirection","$retailPlaycardContainer","$retailPlaycard","$retailTartarSection","$retailWhySection","$retailDownloadSection","$retailDownloadSectiontitle1","$retailDownloadSectiontitle2","$retailScrollTextButton","hasScrolled","scrollPos","downloadPercent","line1","line2","line3","line4","line5","tartarImage","tartarRect","tartarLogo","isLoggedIn","scrollOnClick","scrollRestoration","opacity","$opacityTargets","opacityObserver","IntersectionObserver","entries","intersectionRatio","threshold","observe","line1Length","getTotalLength","line2Length","line3Length","line4Length","line5Length","strokeDasharray","strokeDashoffset","rotatePos","transform","scrollPercent","draw1","draw2","draw3","draw4","draw5","logoOpacity","moveUpValue"],"mappings":"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","file":"region-retail-account.js","sourcesContent":["defineDs('DanskeSpil/Domain/AvalonComponents/Scripts/Components/PageNavHeader',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils'\r\n ],\r\n function (Component, Utils) {\r\n\r\n Component('page-nav-header', function (m, route) {\r\n\r\n var elem = this.$element;\r\n\r\n var root = {\r\n\r\n controller: function () {\r\n // Detect all target elements on the page\r\n var targets = document.querySelectorAll('.js-page-nav-header-target');\r\n // Convert them to a real array\r\n this.targetsArray = [].slice.call(targets);\r\n\r\n /**\r\n * Scroll the page to the target of the clicked element\r\n */\r\n this.scrollPage = function scrollPage(event) {\r\n event.preventDefault();\r\n\r\n const $topNavigation = document.querySelector('.top-navigation');\r\n const scrollTarget = event.target.getAttribute('href');\r\n const $scrollTargetElement = document.querySelector(scrollTarget);\r\n const offsetTop = $scrollTargetElement?.getBoundingClientRect().top + window.scrollY;\r\n var currentScrollTop = document.documentElement.scrollTop;\r\n\r\n // set an offset if we are scrolling up on the page, to accomodate the height of the header\r\n var offset = currentScrollTop > offsetTop ? $topNavigation.getBoundingClientRect().height : 0;\r\n var scrollTopValue = offsetTop - offset;\r\n\r\n window.scrollTo({ top: scrollTopValue, behavior: 'smooth' });\r\n }.bind(this);\r\n\r\n this.pageIsReady = function pageIsReady() {\r\n // Set class to show the nav bar\r\n elem.classList.add('is-ready');\r\n\r\n // Clean up event listener\r\n document.removeEventListener('DOMContentLoaded', this.pageIsReady, false);\r\n\r\n }.bind(this);\r\n\r\n /**\r\n * Add height fix to the header, if it is not already there\r\n */\r\n this.addHeaderHeightFix = function addHeaderHeightFix() {\r\n\r\n if (!document.querySelector('.page-nav-header-static-fix')) {\r\n var insertTarget = document.querySelector('.container .header-static-fix');\r\n insertTarget.insertAdjacentHTML('afterend', '
');\r\n }\r\n };\r\n\r\n // Setup event listener\r\n document.addEventListener('DOMContentLoaded', this.pageIsReady.bind(this), false);\r\n this.addHeaderHeightFix();\r\n\r\n },\r\n\r\n view: function (ctrl) {\r\n return m('.page-nav-header__content', [\r\n // Build items\r\n ctrl.targetsArray.map(function (item) {\r\n return m('a.page-nav-header__item', {\r\n href: item.getAttribute('data-nav-UrlLink') === 'True' ? item.id : '#' + item.id,\r\n onclick: item.getAttribute('data-nav-UrlLink') === 'True' ? '' : ctrl.scrollPage\r\n }, item.getAttribute('data-nav-name'));\r\n })\r\n\r\n ]);\r\n }\r\n\r\n };\r\n\r\n // route\r\n route('/', root);\r\n\r\n Utils.logDeprecated('PageNavHeader.js - component loaded'); // Added by MIPE 2024-05-14\r\n });\r\n\r\n });\r\n","/* eslint-disable */\r\ndefineDs('Common/Framework/ScriptLibraries/Scripts/Pikaday', [\r\n],function() {\r\n 'use strict';\r\n\r\n /**\r\n * feature detection and helper functions\r\n */\r\n var moment = null;\r\n var hasMoment = typeof moment === 'function',\r\n\r\n hasEventListeners = !!window.addEventListener,\r\n\r\n document = window.document,\r\n\r\n sto = window.setTimeout,\r\n\r\n addEvent = function(el, e, callback, capture)\r\n {\r\n if (hasEventListeners) {\r\n el.addEventListener(e, callback, !!capture);\r\n } else {\r\n el.attachEvent('on' + e, callback);\r\n }\r\n },\r\n\r\n removeEvent = function(el, e, callback, capture)\r\n {\r\n if (hasEventListeners) {\r\n el.removeEventListener(e, callback, !!capture);\r\n } else {\r\n el.detachEvent('on' + e, callback);\r\n }\r\n },\r\n\r\n trim = function(str)\r\n {\r\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\r\n },\r\n\r\n hasClass = function(el, cn)\r\n {\r\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\r\n },\r\n\r\n addClass = function(el, cn)\r\n {\r\n if (!hasClass(el, cn)) {\r\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\r\n }\r\n },\r\n\r\n removeClass = function(el, cn)\r\n {\r\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\r\n },\r\n\r\n isArray = function(obj)\r\n {\r\n return (/Array/).test(Object.prototype.toString.call(obj));\r\n },\r\n\r\n isDate = function(obj)\r\n {\r\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\r\n },\r\n\r\n isWeekend = function(date)\r\n {\r\n var day = date.getDay();\r\n return day === 0 || day === 6;\r\n },\r\n\r\n isLeapYear = function(year)\r\n {\r\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\r\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\r\n },\r\n\r\n getDaysInMonth = function(year, month)\r\n {\r\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\r\n },\r\n\r\n setToStartOfDay = function(date)\r\n {\r\n if (isDate(date)) date.setHours(0,0,0,0);\r\n },\r\n\r\n compareDates = function(a,b)\r\n {\r\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\r\n return a.getTime() === b.getTime();\r\n },\r\n\r\n extend = function(to, from, overwrite)\r\n {\r\n var prop, hasProp;\r\n for (prop in from) {\r\n hasProp = to[prop] !== undefined;\r\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\r\n if (isDate(from[prop])) {\r\n if (overwrite) {\r\n to[prop] = new Date(from[prop].getTime());\r\n }\r\n }\r\n else if (isArray(from[prop])) {\r\n if (overwrite) {\r\n to[prop] = from[prop].slice(0);\r\n }\r\n } else {\r\n to[prop] = extend({}, from[prop], overwrite);\r\n }\r\n } else if (overwrite || !hasProp) {\r\n to[prop] = from[prop];\r\n }\r\n }\r\n return to;\r\n },\r\n\r\n fireEvent = function(el, eventName, data)\r\n {\r\n var ev;\r\n\r\n if (document.createEvent) {\r\n ev = document.createEvent('HTMLEvents');\r\n ev.initEvent(eventName, true, false);\r\n ev = extend(ev, data);\r\n el.dispatchEvent(ev);\r\n } else if (document.createEventObject) {\r\n ev = document.createEventObject();\r\n ev = extend(ev, data);\r\n el.fireEvent('on' + eventName, ev);\r\n }\r\n },\r\n\r\n adjustCalendar = function(calendar) {\r\n if (calendar.month < 0) {\r\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\r\n calendar.month += 12;\r\n }\r\n if (calendar.month > 11) {\r\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\r\n calendar.month -= 12;\r\n }\r\n return calendar;\r\n },\r\n\r\n /**\r\n * defaults and localisation\r\n */\r\n defaults = {\r\n\r\n // bind the picker to a form field\r\n field: null,\r\n\r\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\r\n bound: undefined,\r\n\r\n // data-attribute on the input field with an aria assistance tekst (only applied when `bound` is set)\r\n ariaLabel: 'Use the arrow keys to pick a date',\r\n\r\n // position of the datepicker, relative to the field (default to bottom & left)\r\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\r\n position: 'bottom left',\r\n\r\n // automatically fit in the viewport even if it means repositioning from the position option\r\n reposition: true,\r\n\r\n // the default output format for `.toString()` and `field` value\r\n format: 'YYYY-MM-DD',\r\n\r\n // the toString function which gets passed a current date object and format\r\n // and returns a string\r\n toString: null,\r\n\r\n // used to create date object from current input string\r\n parse: null,\r\n\r\n // the initial date to view when first opened\r\n defaultDate: null,\r\n\r\n // make the `defaultDate` the initial selected value\r\n setDefaultDate: false,\r\n\r\n // first day of week (0: Sunday, 1: Monday etc)\r\n firstDay: 0,\r\n\r\n // the default flag for moment's strict date parsing\r\n formatStrict: false,\r\n\r\n // the minimum/earliest date that can be selected\r\n minDate: null,\r\n // the maximum/latest date that can be selected\r\n maxDate: null,\r\n\r\n // number of years either side, or array of upper/lower range\r\n yearRange: 10,\r\n\r\n // show week numbers at head of row\r\n showWeekNumber: false,\r\n\r\n // Week picker mode\r\n pickWholeWeek: false,\r\n\r\n // used internally (don't config outside)\r\n minYear: 0,\r\n maxYear: 9999,\r\n minMonth: undefined,\r\n maxMonth: undefined,\r\n\r\n startRange: null,\r\n endRange: null,\r\n\r\n isRTL: false,\r\n\r\n // Additional text to append to the year in the calendar title\r\n yearSuffix: '',\r\n\r\n // Render the month after year in the calendar title\r\n showMonthAfterYear: false,\r\n\r\n // Render days of the calendar grid that fall in the next or previous month\r\n showDaysInNextAndPreviousMonths: false,\r\n\r\n // Allows user to select days that fall in the next or previous month\r\n enableSelectionDaysInNextAndPreviousMonths: false,\r\n\r\n // how many months are visible\r\n numberOfMonths: 1,\r\n\r\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\r\n // only used for the first display or when a selected date is not visible\r\n mainCalendar: 'left',\r\n\r\n // Specify a DOM element to render the calendar in\r\n container: undefined,\r\n\r\n // Blur field when date is selected\r\n blurFieldOnSelect : true,\r\n\r\n // internationalization\r\n i18n: {\r\n previousMonth : 'Previous Month',\r\n nextMonth : 'Next Month',\r\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\r\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\r\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\r\n },\r\n\r\n // Theme Classname\r\n theme: null,\r\n\r\n // events array\r\n events: [],\r\n\r\n // callback function\r\n onSelect: null,\r\n onOpen: null,\r\n onClose: null,\r\n onDraw: null,\r\n\r\n // Enable keyboard input\r\n keyboardInput: true\r\n },\r\n\r\n\r\n /**\r\n * templating functions to abstract HTML rendering\r\n */\r\n renderDayName = function(opts, day, abbr)\r\n {\r\n day += opts.firstDay;\r\n while (day >= 7) {\r\n day -= 7;\r\n }\r\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\r\n },\r\n\r\n renderDay = function(opts)\r\n {\r\n var arr = [];\r\n var ariaSelected = 'false';\r\n if (opts.isEmpty) {\r\n if (opts.showDaysInNextAndPreviousMonths) {\r\n arr.push('is-outside-current-month');\r\n\r\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\r\n arr.push('is-selection-disabled');\r\n }\r\n\r\n } else {\r\n return '';\r\n }\r\n }\r\n if (opts.isDisabled) {\r\n arr.push('is-disabled');\r\n }\r\n if (opts.isToday) {\r\n arr.push('is-today');\r\n }\r\n if (opts.isSelected) {\r\n arr.push('is-selected');\r\n ariaSelected = 'true';\r\n }\r\n if (opts.hasEvent) {\r\n arr.push('has-event');\r\n }\r\n if (opts.isInRange) {\r\n arr.push('is-inrange');\r\n }\r\n if (opts.isStartRange) {\r\n arr.push('is-startrange');\r\n }\r\n if (opts.isEndRange) {\r\n arr.push('is-endrange');\r\n }\r\n return '' +\r\n '' +\r\n '';\r\n },\r\n\r\n renderWeek = function (d, m, y) {\r\n // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified.\r\n var onejan = new Date(y, 0, 1),\r\n weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7);\r\n return '' + weekNum + '';\r\n },\r\n\r\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\r\n {\r\n return '' + (isRTL ? days.reverse() : days).join('') + '';\r\n },\r\n\r\n renderBody = function(rows)\r\n {\r\n return '' + rows.join('') + '';\r\n },\r\n\r\n renderHead = function(opts)\r\n {\r\n var i, arr = [];\r\n if (opts.showWeekNumber) {\r\n arr.push('');\r\n }\r\n for (i = 0; i < 7; i++) {\r\n arr.push('' + renderDayName(opts, i, true) + '');\r\n }\r\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + '';\r\n },\r\n\r\n renderTitle = function(instance, c, year, month, refYear, randId)\r\n {\r\n var i, j, arr,\r\n opts = instance._o,\r\n isMinYear = year === opts.minYear,\r\n isMaxYear = year === opts.maxYear,\r\n html = '
',\r\n monthHtml,\r\n yearHtml,\r\n prev = true,\r\n next = true;\r\n\r\n for (arr = [], i = 0; i < 12; i++) {\r\n arr.push('');\r\n }\r\n\r\n monthHtml = '
' + opts.i18n.months[month] + '
';\r\n\r\n if (isArray(opts.yearRange)) {\r\n i = opts.yearRange[0];\r\n j = opts.yearRange[1] + 1;\r\n } else {\r\n i = year - opts.yearRange;\r\n j = 1 + year + opts.yearRange;\r\n }\r\n\r\n for (arr = []; i < j && i <= opts.maxYear; i++) {\r\n if (i >= opts.minYear) {\r\n arr.push('');\r\n }\r\n }\r\n yearHtml = '
' + year + opts.yearSuffix + '
';\r\n\r\n if (opts.showMonthAfterYear) {\r\n html += yearHtml + monthHtml;\r\n } else {\r\n html += monthHtml + yearHtml;\r\n }\r\n\r\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\r\n prev = false;\r\n }\r\n\r\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\r\n next = false;\r\n }\r\n\r\n if (c === 0) {\r\n html += '';\r\n }\r\n if (c === (instance._o.numberOfMonths - 1) ) {\r\n html += '';\r\n }\r\n\r\n return html += '
';\r\n },\r\n\r\n renderTable = function(opts, data, randId)\r\n {\r\n return '' + renderHead(opts) + renderBody(data) + '
';\r\n },\r\n\r\n\r\n /**\r\n * Pikaday constructor\r\n */\r\n Pikaday = function(options)\r\n {\r\n var self = this,\r\n opts = self.config(options);\r\n\r\n self._onMouseDown = function(e)\r\n {\r\n if (!self._v) {\r\n return;\r\n }\r\n e = e || window.event;\r\n var target = e.target || e.srcElement;\r\n if (!target) {\r\n return;\r\n }\r\n\r\n if (!hasClass(target, 'is-disabled')) {\r\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\r\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\r\n if (opts.bound) {\r\n sto(function() {\r\n self.hide();\r\n if (opts.blurFieldOnSelect && opts.field) {\r\n opts.field.blur();\r\n }\r\n }, 100);\r\n }\r\n }\r\n else if (hasClass(target, 'pika-prev')) {\r\n self.prevMonth();\r\n }\r\n else if (hasClass(target, 'pika-next')) {\r\n self.nextMonth();\r\n }\r\n }\r\n if (!hasClass(target, 'pika-select')) {\r\n // if this is touch event prevent mouse events emulation\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n return false;\r\n }\r\n } else {\r\n self._c = true;\r\n }\r\n };\r\n\r\n self._onChange = function(e)\r\n {\r\n e = e || window.event;\r\n var target = e.target || e.srcElement;\r\n if (!target) {\r\n return;\r\n }\r\n if (hasClass(target, 'pika-select-month')) {\r\n self.gotoMonth(target.value);\r\n }\r\n else if (hasClass(target, 'pika-select-year')) {\r\n self.gotoYear(target.value);\r\n }\r\n };\r\n\r\n self._onKeyChange = function(e)\r\n {\r\n e = e || window.event;\r\n\r\n if (self.isVisible()) {\r\n\r\n switch(e.keyCode){\r\n case 13:\r\n case 27:\r\n if (opts.field) {\r\n opts.field.blur();\r\n }\r\n break;\r\n case 37:\r\n e.preventDefault();\r\n self.adjustDate('subtract', 1);\r\n break;\r\n case 38:\r\n self.adjustDate('subtract', 7);\r\n break;\r\n case 39:\r\n self.adjustDate('add', 1);\r\n break;\r\n case 40:\r\n self.adjustDate('add', 7);\r\n break;\r\n }\r\n }\r\n };\r\n\r\n self._onInputChange = function(e)\r\n {\r\n var date;\r\n\r\n if (e.firedBy === self) {\r\n return;\r\n }\r\n if (opts.parse) {\r\n date = opts.parse(opts.field.value, opts.format);\r\n } else if (hasMoment) {\r\n date = moment(opts.field.value, opts.format, opts.formatStrict);\r\n date = (date && date.isValid()) ? date.toDate() : null;\r\n }\r\n else {\r\n date = new Date(Date.parse(opts.field.value));\r\n }\r\n if (isDate(date)) {\r\n self.setDate(date);\r\n }\r\n if (!self._v) {\r\n self.show();\r\n }\r\n };\r\n\r\n self._onInputFocus = function()\r\n {\r\n self.show();\r\n };\r\n\r\n self._onInputClick = function()\r\n {\r\n self.show();\r\n };\r\n\r\n self._onInputBlur = function()\r\n {\r\n // IE allows pika div to gain focus; catch blur the input field\r\n var pEl = document.activeElement;\r\n do {\r\n if (hasClass(pEl, 'pika-single')) {\r\n return;\r\n }\r\n }\r\n while ((pEl = pEl.parentNode));\r\n\r\n if (!self._c) {\r\n self._b = sto(function() {\r\n self.hide();\r\n }, 50);\r\n }\r\n self._c = false;\r\n };\r\n\r\n self._onClick = function(e)\r\n {\r\n e = e || window.event;\r\n var target = e.target || e.srcElement,\r\n pEl = target;\r\n if (!target) {\r\n return;\r\n }\r\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\r\n if (!target.onchange) {\r\n target.setAttribute('onchange', 'return;');\r\n addEvent(target, 'change', self._onChange);\r\n }\r\n }\r\n do {\r\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\r\n return;\r\n }\r\n }\r\n while ((pEl = pEl.parentNode));\r\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\r\n self.hide();\r\n }\r\n };\r\n\r\n self.el = document.createElement('div');\r\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\r\n\r\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\r\n addEvent(self.el, 'touchend', self._onMouseDown, true);\r\n addEvent(self.el, 'change', self._onChange);\r\n\r\n if (opts.keyboardInput) {\r\n addEvent(document, 'keydown', self._onKeyChange);\r\n }\r\n\r\n if (opts.field) {\r\n if (opts.container) {\r\n opts.container.appendChild(self.el);\r\n } else if (opts.bound) {\r\n document.body.appendChild(self.el);\r\n } else {\r\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\r\n }\r\n addEvent(opts.field, 'change', self._onInputChange);\r\n\r\n if (!opts.defaultDate) {\r\n if (hasMoment && opts.field.value) {\r\n opts.defaultDate = moment(opts.field.value, opts.format).toDate();\r\n } else {\r\n opts.defaultDate = new Date(Date.parse(opts.field.value));\r\n }\r\n opts.setDefaultDate = true;\r\n }\r\n }\r\n\r\n var defDate = opts.defaultDate;\r\n\r\n if (isDate(defDate)) {\r\n if (opts.setDefaultDate) {\r\n self.setDate(defDate, true);\r\n } else {\r\n self.gotoDate(defDate);\r\n }\r\n } else {\r\n self.gotoDate(new Date());\r\n }\r\n\r\n if (opts.bound) {\r\n this.hide();\r\n self.el.className += ' is-bound';\r\n addEvent(opts.trigger, 'click', self._onInputClick);\r\n addEvent(opts.trigger, 'focus', self._onInputFocus);\r\n addEvent(opts.trigger, 'blur', self._onInputBlur);\r\n } else {\r\n this.show();\r\n }\r\n };\r\n\r\n\r\n /**\r\n * public Pikaday API\r\n */\r\n Pikaday.prototype = {\r\n\r\n\r\n /**\r\n * configure functionality\r\n */\r\n config: function(options)\r\n {\r\n if (!this._o) {\r\n this._o = extend({}, defaults, true);\r\n }\r\n\r\n var opts = extend(this._o, options, true);\r\n\r\n opts.isRTL = !!opts.isRTL;\r\n\r\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\r\n\r\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\r\n\r\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\r\n\r\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\r\n\r\n opts.disableWeekends = !!opts.disableWeekends;\r\n\r\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\r\n\r\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\r\n opts.numberOfMonths = nom > 4 ? 4 : nom;\r\n\r\n if (!isDate(opts.minDate)) {\r\n opts.minDate = false;\r\n }\r\n if (!isDate(opts.maxDate)) {\r\n opts.maxDate = false;\r\n }\r\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\r\n opts.maxDate = opts.minDate = false;\r\n }\r\n if (opts.minDate) {\r\n this.setMinDate(opts.minDate);\r\n }\r\n if (opts.maxDate) {\r\n this.setMaxDate(opts.maxDate);\r\n }\r\n\r\n if (isArray(opts.yearRange)) {\r\n var fallback = new Date().getFullYear() - 10;\r\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\r\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\r\n } else {\r\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\r\n if (opts.yearRange > 100) {\r\n opts.yearRange = 100;\r\n }\r\n }\r\n\r\n return opts;\r\n },\r\n\r\n /**\r\n * return a formatted string of the current selection (using Moment.js if available)\r\n */\r\n toString: function(format)\r\n {\r\n format = format || this._o.format;\r\n if (!isDate(this._d)) {\r\n return '';\r\n }\r\n if (this._o.toString) {\r\n return this._o.toString(this._d, format);\r\n }\r\n if (hasMoment) {\r\n return moment(this._d).format(format);\r\n }\r\n return this._d.toDateString();\r\n },\r\n\r\n /**\r\n * return a Moment.js object of the current selection (if available)\r\n */\r\n getMoment: function()\r\n {\r\n return hasMoment ? moment(this._d) : null;\r\n },\r\n\r\n /**\r\n * set the current selection from a Moment.js object (if available)\r\n */\r\n setMoment: function(date, preventOnSelect)\r\n {\r\n if (hasMoment && moment.isMoment(date)) {\r\n this.setDate(date.toDate(), preventOnSelect);\r\n }\r\n },\r\n\r\n /**\r\n * return a Date object of the current selection\r\n */\r\n getDate: function()\r\n {\r\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\r\n },\r\n\r\n /**\r\n * set the current selection\r\n */\r\n setDate: function(date, preventOnSelect)\r\n {\r\n if (!date) {\r\n this._d = null;\r\n\r\n if (this._o.field) {\r\n this._o.field.value = '';\r\n fireEvent(this._o.field, 'change', { firedBy: this });\r\n }\r\n\r\n return this.draw();\r\n }\r\n if (typeof date === 'string') {\r\n date = new Date(Date.parse(date));\r\n }\r\n if (!isDate(date)) {\r\n return;\r\n }\r\n\r\n var min = this._o.minDate,\r\n max = this._o.maxDate;\r\n\r\n if (isDate(min) && date < min) {\r\n date = min;\r\n } else if (isDate(max) && date > max) {\r\n date = max;\r\n }\r\n\r\n this._d = new Date(date.getTime());\r\n setToStartOfDay(this._d);\r\n this.gotoDate(this._d);\r\n\r\n if (this._o.field) {\r\n this._o.field.value = this.toString();\r\n fireEvent(this._o.field, 'change', { firedBy: this });\r\n }\r\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\r\n this._o.onSelect.call(this, this.getDate());\r\n }\r\n },\r\n\r\n /**\r\n * change view to a specific date\r\n */\r\n gotoDate: function(date)\r\n {\r\n var newCalendar = true;\r\n\r\n if (!isDate(date)) {\r\n return;\r\n }\r\n\r\n if (this.calendars) {\r\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\r\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\r\n visibleDate = date.getTime();\r\n // get the end of the month\r\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\r\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\r\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\r\n }\r\n\r\n if (newCalendar) {\r\n this.calendars = [{\r\n month: date.getMonth(),\r\n year: date.getFullYear()\r\n }];\r\n if (this._o.mainCalendar === 'right') {\r\n this.calendars[0].month += 1 - this._o.numberOfMonths;\r\n }\r\n }\r\n\r\n this.adjustCalendars();\r\n },\r\n\r\n adjustDate: function(sign, days) {\r\n\r\n var day = this.getDate() || new Date();\r\n var difference = parseInt(days)*24*60*60*1000;\r\n\r\n var newDay;\r\n\r\n if (sign === 'add') {\r\n newDay = new Date(day.valueOf() + difference);\r\n } else if (sign === 'subtract') {\r\n newDay = new Date(day.valueOf() - difference);\r\n }\r\n\r\n this.setDate(newDay);\r\n },\r\n\r\n adjustCalendars: function() {\r\n this.calendars[0] = adjustCalendar(this.calendars[0]);\r\n for (var c = 1; c < this._o.numberOfMonths; c++) {\r\n this.calendars[c] = adjustCalendar({\r\n month: this.calendars[0].month + c,\r\n year: this.calendars[0].year\r\n });\r\n }\r\n this.draw();\r\n },\r\n\r\n gotoToday: function()\r\n {\r\n this.gotoDate(new Date());\r\n },\r\n\r\n /**\r\n * change view to a specific month (zero-index, e.g. 0: January)\r\n */\r\n gotoMonth: function(month)\r\n {\r\n if (!isNaN(month)) {\r\n this.calendars[0].month = parseInt(month, 10);\r\n this.adjustCalendars();\r\n }\r\n },\r\n\r\n nextMonth: function()\r\n {\r\n this.calendars[0].month++;\r\n this.adjustCalendars();\r\n },\r\n\r\n prevMonth: function()\r\n {\r\n this.calendars[0].month--;\r\n this.adjustCalendars();\r\n },\r\n\r\n /**\r\n * change view to a specific full year (e.g. \"2012\")\r\n */\r\n gotoYear: function(year)\r\n {\r\n if (!isNaN(year)) {\r\n this.calendars[0].year = parseInt(year, 10);\r\n this.adjustCalendars();\r\n }\r\n },\r\n\r\n /**\r\n * change the minDate\r\n */\r\n setMinDate: function(value)\r\n {\r\n if(value instanceof Date) {\r\n setToStartOfDay(value);\r\n this._o.minDate = value;\r\n this._o.minYear = value.getFullYear();\r\n this._o.minMonth = value.getMonth();\r\n } else {\r\n this._o.minDate = defaults.minDate;\r\n this._o.minYear = defaults.minYear;\r\n this._o.minMonth = defaults.minMonth;\r\n this._o.startRange = defaults.startRange;\r\n }\r\n\r\n this.draw();\r\n },\r\n\r\n /**\r\n * change the maxDate\r\n */\r\n setMaxDate: function(value)\r\n {\r\n if(value instanceof Date) {\r\n setToStartOfDay(value);\r\n this._o.maxDate = value;\r\n this._o.maxYear = value.getFullYear();\r\n this._o.maxMonth = value.getMonth();\r\n } else {\r\n this._o.maxDate = defaults.maxDate;\r\n this._o.maxYear = defaults.maxYear;\r\n this._o.maxMonth = defaults.maxMonth;\r\n this._o.endRange = defaults.endRange;\r\n }\r\n\r\n this.draw();\r\n },\r\n\r\n setStartRange: function(value)\r\n {\r\n this._o.startRange = value;\r\n },\r\n\r\n setEndRange: function(value)\r\n {\r\n this._o.endRange = value;\r\n },\r\n\r\n /**\r\n * refresh the HTML\r\n */\r\n draw: function(force)\r\n {\r\n if (!this._v && !force) {\r\n return;\r\n }\r\n var opts = this._o,\r\n minYear = opts.minYear,\r\n maxYear = opts.maxYear,\r\n minMonth = opts.minMonth,\r\n maxMonth = opts.maxMonth,\r\n html = '',\r\n randId;\r\n\r\n if (this._y <= minYear) {\r\n this._y = minYear;\r\n if (!isNaN(minMonth) && this._m < minMonth) {\r\n this._m = minMonth;\r\n }\r\n }\r\n if (this._y >= maxYear) {\r\n this._y = maxYear;\r\n if (!isNaN(maxMonth) && this._m > maxMonth) {\r\n this._m = maxMonth;\r\n }\r\n }\r\n\r\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\r\n\r\n for (var c = 0; c < opts.numberOfMonths; c++) {\r\n html += '
' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
';\r\n }\r\n\r\n this.el.innerHTML = html;\r\n\r\n if (opts.bound) {\r\n if(opts.field.type !== 'hidden') {\r\n sto(function() {\r\n opts.trigger.focus();\r\n }, 1);\r\n }\r\n }\r\n\r\n if (typeof this._o.onDraw === 'function') {\r\n this._o.onDraw(this);\r\n }\r\n\r\n if (opts.bound) {\r\n // let the screen reader user know to use arrow keys\r\n opts.field.setAttribute('aria-label', opts.ariaLabel);\r\n }\r\n },\r\n\r\n adjustPosition: function()\r\n {\r\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\r\n\r\n if (this._o.container) return;\r\n\r\n this.el.style.position = 'absolute';\r\n\r\n field = this._o.trigger;\r\n pEl = field;\r\n width = this.el.offsetWidth;\r\n height = this.el.offsetHeight;\r\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\r\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\r\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\r\n leftAligned = true;\r\n bottomAligned = true;\r\n\r\n if (typeof field.getBoundingClientRect === 'function') {\r\n clientRect = field.getBoundingClientRect();\r\n left = clientRect.left + window.pageXOffset;\r\n top = clientRect.bottom + window.pageYOffset;\r\n } else {\r\n left = pEl.offsetLeft;\r\n top = pEl.offsetTop + pEl.offsetHeight;\r\n while((pEl = pEl.offsetParent)) {\r\n left += pEl.offsetLeft;\r\n top += pEl.offsetTop;\r\n }\r\n }\r\n\r\n // default position is bottom & left\r\n if ((this._o.reposition && left + width > viewportWidth) ||\r\n (\r\n this._o.position.indexOf('right') > -1 &&\r\n left - width + field.offsetWidth > 0\r\n )\r\n ) {\r\n left = left - width + field.offsetWidth;\r\n leftAligned = false;\r\n }\r\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\r\n (\r\n this._o.position.indexOf('top') > -1 &&\r\n top - height - field.offsetHeight > 0\r\n )\r\n ) {\r\n top = top - height - field.offsetHeight;\r\n bottomAligned = false;\r\n }\r\n\r\n this.el.style.left = left + 'px';\r\n this.el.style.top = top + 'px';\r\n\r\n addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\r\n addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\r\n removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\r\n removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\r\n },\r\n\r\n /**\r\n * render HTML for a particular month\r\n */\r\n render: function(year, month, randId)\r\n {\r\n var opts = this._o,\r\n now = new Date(),\r\n days = getDaysInMonth(year, month),\r\n before = new Date(year, month, 1).getDay(),\r\n data = [],\r\n row = [];\r\n setToStartOfDay(now);\r\n if (opts.firstDay > 0) {\r\n before -= opts.firstDay;\r\n if (before < 0) {\r\n before += 7;\r\n }\r\n }\r\n var previousMonth = month === 0 ? 11 : month - 1,\r\n nextMonth = month === 11 ? 0 : month + 1,\r\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\r\n yearOfNextMonth = month === 11 ? year + 1 : year,\r\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\r\n var cells = days + before,\r\n after = cells;\r\n while(after > 7) {\r\n after -= 7;\r\n }\r\n cells += 7 - after;\r\n var isWeekSelected = false;\r\n for (var i = 0, r = 0; i < cells; i++)\r\n {\r\n var day = new Date(year, month, 1 + (i - before)),\r\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\r\n isToday = compareDates(day, now),\r\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\r\n isEmpty = i < before || i >= (days + before),\r\n dayNumber = 1 + (i - before),\r\n monthNumber = month,\r\n yearNumber = year,\r\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\r\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\r\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\r\n isDisabled = (opts.minDate && day < opts.minDate) ||\r\n (opts.maxDate && day > opts.maxDate) ||\r\n (opts.disableWeekends && isWeekend(day)) ||\r\n (opts.disableDayFn && opts.disableDayFn(day));\r\n\r\n if (isEmpty) {\r\n if (i < before) {\r\n dayNumber = daysInPreviousMonth + dayNumber;\r\n monthNumber = previousMonth;\r\n yearNumber = yearOfPreviousMonth;\r\n } else {\r\n dayNumber = dayNumber - days;\r\n monthNumber = nextMonth;\r\n yearNumber = yearOfNextMonth;\r\n }\r\n }\r\n\r\n var dayConfig = {\r\n day: dayNumber,\r\n month: monthNumber,\r\n year: yearNumber,\r\n hasEvent: hasEvent,\r\n isSelected: isSelected,\r\n isToday: isToday,\r\n isDisabled: isDisabled,\r\n isEmpty: isEmpty,\r\n isStartRange: isStartRange,\r\n isEndRange: isEndRange,\r\n isInRange: isInRange,\r\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\r\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\r\n };\r\n\r\n if (opts.pickWholeWeek && isSelected) {\r\n isWeekSelected = true;\r\n }\r\n\r\n row.push(renderDay(dayConfig));\r\n\r\n if (++r === 7) {\r\n if (opts.showWeekNumber) {\r\n row.unshift(renderWeek(i - before, month, year));\r\n }\r\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\r\n row = [];\r\n r = 0;\r\n isWeekSelected = false;\r\n }\r\n }\r\n return renderTable(opts, data, randId);\r\n },\r\n\r\n isVisible: function()\r\n {\r\n return this._v;\r\n },\r\n\r\n show: function()\r\n {\r\n if (!this.isVisible()) {\r\n this._v = true;\r\n this.draw();\r\n removeClass(this.el, 'is-hidden');\r\n if (this._o.bound) {\r\n addEvent(document, 'click', this._onClick);\r\n this.adjustPosition();\r\n }\r\n if (typeof this._o.onOpen === 'function') {\r\n this._o.onOpen.call(this);\r\n }\r\n }\r\n },\r\n\r\n hide: function()\r\n {\r\n var v = this._v;\r\n if (v !== false) {\r\n if (this._o.bound) {\r\n removeEvent(document, 'click', this._onClick);\r\n }\r\n this.el.style.position = 'static'; // reset\r\n this.el.style.left = 'auto';\r\n this.el.style.top = 'auto';\r\n addClass(this.el, 'is-hidden');\r\n this._v = false;\r\n if (v !== undefined && typeof this._o.onClose === 'function') {\r\n this._o.onClose.call(this);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * GAME OVER\r\n */\r\n destroy: function()\r\n {\r\n var opts = this._o;\r\n\r\n this.hide();\r\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\r\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\r\n removeEvent(this.el, 'change', this._onChange);\r\n if (opts.keyboardInput) {\r\n removeEvent(document, 'keydown', this._onKeyChange);\r\n }\r\n if (opts.field) {\r\n removeEvent(opts.field, 'change', this._onInputChange);\r\n if (opts.bound) {\r\n removeEvent(opts.trigger, 'click', this._onInputClick);\r\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\r\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\r\n }\r\n }\r\n if (this.el.parentNode) {\r\n this.el.parentNode.removeChild(this.el);\r\n }\r\n }\r\n\r\n };\r\n\r\n return Pikaday;\r\n});\r\n","defineDs('Shared/Framework/Mithril/Scripts/Helpers/Cleanup',\r\n function () {\r\n\r\n // Functions:\r\n var Cleanup = function () {\r\n try {\r\n var keys = Object.keys(localStorage);\r\n var now = (new Date()).getTime();\r\n var ttl = 86400 * 1000;\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n\r\n if (key.substring(0, 5) === 'Model') {\r\n var item = JSON.parse(localStorage.getItem(key));\r\n\r\n if (now - item.timestamp > ttl) {\r\n var regex = new RegExp(item.id);\r\n\r\n if (!regex.test(location.search)) {\r\n console.warn('Deleting from localStorage: ' + key);\r\n\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n }\r\n }\r\n } catch (e) { }\r\n\r\n };\r\n\r\n // Public functions:\r\n return Cleanup;\r\n\r\n });\r\n","defineDs('Shared/Framework/Mithril/Scripts/Helpers/QuickLink', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest'\r\n], function (m, ApiRequest) {\r\n\r\n // Variables:\r\n var QuickLink = function (path) {\r\n var basePath = 'QuickLink';\r\n var quickLink = m.prop({});\r\n var loaded = m.prop(false);\r\n var ready = m.deferred();\r\n\r\n var get = function (key, replacements) {\r\n if (this && this.prefix) {\r\n key = this.prefix + key;\r\n }\r\n\r\n replacements = replacements || {};\r\n\r\n if (loaded()) {\r\n var base = quickLink();\r\n var segments = key.split('/');\r\n\r\n for (var i = 0; i < segments.length; i++) {\r\n var segment = segments[i];\r\n\r\n if (typeof base[segment] === 'undefined') {\r\n console.warn('QuickLink key not found: ' + key);\r\n\r\n break;\r\n }\r\n\r\n base = base[segment];\r\n }\r\n\r\n if (base instanceof Array) {\r\n base = base[Math.floor(Math.random() * base.length)];\r\n }\r\n\r\n // Replacements\r\n if (typeof base === 'string') {\r\n var keys = Object.keys(replacements);\r\n\r\n for (i = 0; i < keys.length; i++) {\r\n var k = keys[i];\r\n var val = replacements[k];\r\n\r\n base = base.replace(new RegExp('{' + k.toUpperCase() + '}', 'g'), val);\r\n }\r\n }\r\n\r\n return base || '!';\r\n }\r\n\r\n return '?';\r\n };\r\n\r\n // Initialize:\r\n var url = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/navigation/' + basePath.toLowerCase() + '/get?path=' + path + '&variants=1';\r\n\r\n // ApiRequest will take care of localstorage caching and avoiding multiple request to same ressource:\r\n ApiRequest({\r\n method: 'GET',\r\n url: url,\r\n localCacheTTL: 5 * 60, // Cache 5min\r\n noCache: false, // Dont add ?noCache queryparam, as it would break 304 Not Modified headers\r\n unwrapSuccess: function (response) {\r\n return response.data[Object.keys(response.data)[0]];\r\n }\r\n }).then(function (response) {\r\n quickLink(response);\r\n loaded(true);\r\n ready.resolve();\r\n });\r\n\r\n // Public functions:\r\n return {\r\n get: get,\r\n ready: ready.promise\r\n };\r\n\r\n };\r\n\r\n return QuickLink;\r\n\r\n});\r\n","defineDs('Shared/Framework/Mithril/Scripts/Helpers/RouteParam', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n], function (m) {\r\n\r\n var RouteParam = function (paramKey) {\r\n // Early return, as we're not trying to set anything\r\n return function (value) {\r\n if (value === undefined) return m.route.param(paramKey);\r\n var params = m.route.param();\r\n if (paramKey !== 'page') params.page = 1;\r\n\r\n var str = Object.keys(params).reduce(function (string, key) {\r\n var paramValue = key === paramKey ? value : params[key];\r\n return string + paramValue + '/';\r\n }, '/');\r\n m.route(str);\r\n };\r\n };\r\n\r\n return RouteParam;\r\n\r\n});\r\n","defineDs('Shared/Framework/Mithril/Scripts/Core/Model',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Cleanup'\r\n ],\r\n function (m, Cleanup) {\r\n\r\n // Functions:\r\n var model = function (modelName, constructor) {\r\n modelName = 'Model-' + modelName;\r\n\r\n constructor.generateId = function () {\r\n return 'xxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n /* eslint-disable no-bitwise, no-mixed-operators, one-var */\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n /* eslint-enable no-bitwise, no-mixed-operators, one-var */\r\n return v.toString(16);\r\n });\r\n };\r\n\r\n constructor.cache = {};\r\n\r\n constructor.construct = function (content, state, save) {\r\n content = content || {};\r\n\r\n var record = new this(content);\r\n\r\n record.id = m.prop(content.id ? content.id : this.generateId());\r\n record.state = m.prop(state ? state : 'clean');\r\n record.timestamp = m.prop(content.timestamp || (new Date()).getTime());\r\n\r\n if (typeof record.init === 'function') {\r\n record.init(content);\r\n }\r\n\r\n if (typeof save === 'undefined' || save) {\r\n record.save();\r\n }\r\n\r\n return record;\r\n };\r\n\r\n constructor.prototype.save = function () {\r\n this.state('clean');\r\n this.timestamp((new Date()).getTime());\r\n\r\n var data = JSON.stringify(this.toJSON());\r\n\r\n try {\r\n localStorage.setItem(modelName + '-' + this.id(), data);\r\n } catch (e) {\r\n console.warn('Model.js Cannot write to localStorage');\r\n }\r\n\r\n constructor.cache[this.id()] = this;\r\n };\r\n\r\n constructor.update = function (record, content) {\r\n\r\n var id = record.id();\r\n\r\n content.id = id;\r\n\r\n var updatedRecord = this.construct(content, 'new');\r\n\r\n Object.keys(updatedRecord).forEach(function (key) {\r\n record[key] = updatedRecord[key];\r\n });\r\n\r\n return record;\r\n\r\n };\r\n\r\n constructor.get = function (query) {\r\n var type = typeof query;\r\n\r\n if (type === 'undefined') {\r\n return null;\r\n }\r\n\r\n // Get by ID:\r\n if (type === 'number' || type === 'string') {\r\n var cached = constructor.cache[query];\r\n\r\n if (cached) {\r\n return cached;\r\n }\r\n\r\n try {\r\n var val = localStorage.getItem(modelName + '-' + query);\r\n } catch (e) {\r\n console.warn('Model.js Cannot read from localStorage');\r\n }\r\n\r\n if (!val) {\r\n return null;\r\n }\r\n\r\n var json = JSON.parse(val);\r\n var record = this.construct(json);\r\n\r\n return record;\r\n }\r\n\r\n var bulk = [];\r\n var keys = Object.keys(constructor.cache);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n bulk.push(constructor.cache[keys[i]]);\r\n }\r\n\r\n // Query:\r\n if (type === 'object') {\r\n keys = Object.keys(query);\r\n var length = keys.length;\r\n\r\n bulk = bulk.filter(function (record) {\r\n var match = true;\r\n\r\n for (var i = 0; i < length; i++) {\r\n var first = typeof first === 'function' ? query[keys[i]]() : query[keys[i]];\r\n var second = record[keys[i]]();\r\n\r\n if (/delete|remove/.test(record.state()) || first !== second) {\r\n match = false;\r\n\r\n break;\r\n }\r\n }\r\n\r\n return match;\r\n });\r\n\r\n }\r\n\r\n // Bulk:\r\n return bulk;\r\n\r\n };\r\n\r\n constructor.delete = function (query) {\r\n if (!query) {\r\n return;\r\n }\r\n\r\n try {\r\n localStorage.removeItem(modelName + '-' + query);\r\n delete constructor.cache[query];\r\n } catch (e) {\r\n console.warn('Model.js Cannot remove from localStorage');\r\n }\r\n };\r\n\r\n constructor.new = function (content, state, save) {\r\n return this.construct(content, state || 'new', save);\r\n };\r\n\r\n return constructor;\r\n };\r\n\r\n // Cleanup\r\n Cleanup();\r\n\r\n // Public functions:\r\n return model;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Overlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button'\r\n ],\r\n function (m, StepHeader, Svg, Button) {\r\n\r\n // Context:\r\n var Overlay = function (className, config) {\r\n var options = {\r\n dismisable: true,\r\n title: '',\r\n body: '',\r\n confirm: null,\r\n dismissButton: 'Annullér',\r\n confirmButton: 'Bekræft',\r\n confirmButtonClass: null,\r\n ...config\r\n };\r\n\r\n var outsideClick = function (dismiss) {\r\n return function () {\r\n event.stopPropagation();\r\n if (event.target === this) {\r\n dismiss();\r\n }\r\n };\r\n };\r\n\r\n // Return:\r\n return {\r\n class: m.prop(className),\r\n\r\n render: function (dismiss) {\r\n return m('div', {\r\n class: this.class(),\r\n onclick: options.dismisable ? outsideClick(dismiss) : function () {}\r\n }, [\r\n m('.retail-overlay', [\r\n options.dismisable ?\r\n m('button', {\r\n class: 'close-icon-wrapper',\r\n onclick: dismiss,\r\n type: 'button'\r\n }, [\r\n Svg('close', {\r\n class: 'close-icon'\r\n }),\r\n ]) : null,\r\n options.icon ? Svg(options.icon, { class: 'retail-overlay__icon' }) : null,\r\n StepHeader({\r\n title: options.title,\r\n abstract: options.body\r\n }),\r\n m('.retail-button-container.retail-button-container--centered', [\r\n options.confirm ?\r\n Button({\r\n class: [\r\n 'overlay-confirm__button',\r\n options.confirmButtonClass ? options.confirmButtonClass : null\r\n ].join(' '),\r\n onclick: options.confirm,\r\n buttonText: options.confirmButton\r\n })\r\n : null,\r\n options.dismisable && options.dismissButton ?\r\n Button({\r\n class: [\r\n 'overlay-cancel__button',\r\n options.dismissButtonClass ? options.dismissButtonClass : null\r\n ].join(' '),\r\n onclick: dismiss,\r\n buttonText: options.dismissButton\r\n })\r\n : null\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n // Public functions:\r\n return Overlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Dictionary'\r\n ],\r\n function (Dictionary) {\r\n\r\n return new Dictionary('/RetailAccount');\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (FrameworkSvg) {\r\n 'use strict';\r\n\r\n var Svg = function (icon, config) {\r\n if (!icon) return;\r\n\r\n var options = {\r\n href: '/Components/DanskeSpil/Domain/RetailAccount/Graphics/SpriteSheets/RetailAccountIcons.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});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n\r\n const Button = (options) => {\r\n const { config, type, isLoading, isDisabled, onFocus, onclick, buttonText, href, uiTestId = 'retail-button' } = options;\r\n const elemType = href ? 'a' : 'button';\r\n\r\n let attributes = {};\r\n if (href) {\r\n attributes.href = href;\r\n }\r\n\r\n if (elemType === 'button') {\r\n attributes.type = type || 'button';\r\n }\r\n\r\n return m(elemType, Object.assign(attributes, {\r\n config: config || null,\r\n disabled: isLoading || false, // We do NOT disable button on props.isDisabled, because users will often click the submit button when final input field has not been validated (because field still has focus)\r\n class: [\r\n 'retail-button',\r\n 'has-text',\r\n isDisabled ? 'is-disabled' : null,\r\n isLoading ? 'is-loading' : null,\r\n options.class ? options.class : null\r\n ].join(' '),\r\n onfocus: () => {\r\n if (typeof onFocus === 'function') {\r\n onFocus();\r\n }\r\n },\r\n onclick: (ev) => {\r\n if (typeof onclick === 'function') {\r\n ev.preventDefault();\r\n onclick();\r\n }\r\n },\r\n 'aria-label': buttonText,\r\n 'data-uitest-id': uiTestId,\r\n }), [\r\n m('span', {\r\n 'data-text': isLoading ? 'Loading' : buttonText,\r\n class: 'retail-button__text'\r\n }, isLoading ? 'Loading' : buttonText)\r\n ]);\r\n };\r\n\r\n return Button;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, Utils, Button, Svg) {\r\n 'use strict';\r\n\r\n var ModalDialog = function (template, options) {\r\n\r\n options.buttons = options.buttons ? options.buttons.map(function (button) {\r\n return Utils.extend(true, {\r\n text: 'Test button',\r\n callback: function (close) {\r\n close();\r\n },\r\n size: 'large',\r\n color: 'primary',\r\n disabled: m.prop(false)\r\n }, button);\r\n }) : options.buttons;\r\n\r\n options = Utils.extend(true, {\r\n shouldBeComponent: false,\r\n closable: true,\r\n stackButtons: false,\r\n buttons: [],\r\n readMore: {},\r\n subText: null,\r\n class: [],\r\n controller: options.controller ? options.controller : null\r\n }, options);\r\n\r\n var renderFunction = function (ctrlOrHandleClose, registerElementOrVnode) {\r\n\r\n var handleClose = function () {\r\n options.iosPositionFix = false;\r\n return (options.shouldBeComponent ? ctrlOrHandleClose.handleClose() : ctrlOrHandleClose());\r\n };\r\n var registerElement = options.shouldBeComponent ? ctrlOrHandleClose.$overlayElement : registerElementOrVnode;\r\n\r\n if (options.iosPositionFix) {\r\n try {\r\n window.scroll({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n } catch (ignoredError) {\r\n // Older browsers does not support the object signature.\r\n window.scroll(0, 0);\r\n }\r\n }\r\n\r\n return m('div', (function () {\r\n var obj = {\r\n class: [\r\n 'ds-modal-frame',\r\n 'is--shown',\r\n (options.iosPositionFix ? 'ds-modal-frame--ios-position-fix' : '')\r\n ].concat(options.class, ModalDialogObj.class()).join(' '),\r\n config: function (element) {\r\n registerElement(element);\r\n }\r\n };\r\n if (options.id) {\r\n obj.id = options.id;\r\n }\r\n return obj;\r\n })(), [\r\n m('div', {\r\n class: 'ds-modal-wrap'\r\n }, [\r\n options.closable ?\r\n Svg('close', {\r\n onclick: handleClose,\r\n width: '18px',\r\n height: '18px',\r\n class: 'ds-modal--close sprite-symbol'\r\n }) : '',\r\n m('div', {\r\n class: 'ds-modal-content'\r\n }, [\r\n m('div', {\r\n class: 'ds-modal-html'\r\n }, Array.isArray(template) ? template : [template]),\r\n\r\n m('.button-row', { class: options.stackButtons ? 'button-row--stack' : '' }, options.buttons ? options.buttons.filter(function (button) {\r\n return button != null;\r\n }).map(function (button) {\r\n return m(Button, {\r\n uiTestId: button.uiTestId,\r\n id: button.id,\r\n loading: button.loading,\r\n color: button.color,\r\n size: button.size,\r\n class: button.class,\r\n disabled: button.disabled(),\r\n text: { default: button.text },\r\n eventId: button.eventId,\r\n onclick: function () {\r\n if (!button.disabled()) {\r\n button.callback.bind(this, handleClose)();\r\n }\r\n }\r\n });\r\n }) : ''),\r\n (options.readMore.url && options.readMore.title) ? m('a', { href: options.readMore.url, class: 'ds-modal-link' }, [\r\n options.readMore.title\r\n ]) : null,\r\n options.subText ? m('small', {\r\n class: 'ds-modal-subtext'\r\n }, options.subText) : ''\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n var ModalDialogObj = {\r\n controller: options.controller ? options.controller : null,\r\n class: m.prop('ds-modal-frame')\r\n };\r\n\r\n var renderKey = options.shouldBeComponent ? 'view' : 'render';\r\n\r\n ModalDialogObj[renderKey] = renderFunction;\r\n\r\n return ModalDialogObj;\r\n };\r\n\r\n return ModalDialog;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils', [\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils'\r\n], function (Ensighten, Utils, Dictionary, PAMUtils) {\r\n\r\n var d = Dictionary.get.bind({ prefix: 'ErrorMessages/' });\r\n\r\n var mapModelToApiData = function (fields, modelFields, initialValues) {\r\n var data = {};\r\n\r\n for (var key in fields) {\r\n var field = fields[key];\r\n\r\n // If field values matches existing value, then don't send this data to API\r\n if (initialValues && modelFields[field]() === initialValues[field] && !['country', 'marketingTerms', 'pincode', 'pincodeConfirm'].includes(field)) {\r\n continue;\r\n }\r\n\r\n data[field] = {\r\n value: modelFields[field](),\r\n status: 'provided'\r\n };\r\n }\r\n\r\n return data;\r\n };\r\n\r\n var mapFilesToApiData = function (model) {\r\n var data = new FormData();\r\n model().files().forEach(function (file) {\r\n if (file.file()) {\r\n data.append(file.purpose().type(), file.file(), file.purpose().purpose() + '_' + file.file().name);\r\n }\r\n });\r\n data.append('identificationNumber', model().fields.cprNumber() || '');\r\n\r\n return data;\r\n };\r\n\r\n var mapLimitToApiData = function (limitType, limitValue) {\r\n var data = {};\r\n data['Max' + limitType] = limitValue;\r\n return data;\r\n };\r\n\r\n var mapModelAndRecaptchaToApiData = function (fields, modelFields, recaptcha, ignoreUsername) {\r\n var data = {};\r\n\r\n for (var key in fields) {\r\n var field = fields[key];\r\n\r\n data[field] = modelFields[field]();\r\n }\r\n\r\n data['Recaptcha'] = recaptcha;\r\n data['ValidateEmail'] = true;\r\n data['ValidateUsername'] = !ignoreUsername;\r\n\r\n return data;\r\n };\r\n\r\n var mapPasswordToApiData = function (password, repeatPassword, token) {\r\n var data = {};\r\n data['NewPassword'] = password;\r\n data['NewPasswordRepeat'] = repeatPassword;\r\n data['Token'] = token;\r\n return data;\r\n };\r\n\r\n var mapValidationErrors = function (errors, errorFields) {\r\n errors.forEach(function (error) {\r\n var key = error.Source.Pointer.substring(0, 1).toLocaleLowerCase() + error.Source.Pointer.substring(1);\r\n var match = errorFields[key];\r\n if (match) {\r\n errorFields[key](error.Detail);\r\n }\r\n });\r\n };\r\n\r\n\r\n var isSmallScreen = function () {\r\n return window.innerWidth < 640;\r\n };\r\n\r\n var isRetailIpad = function () {\r\n return document.body.classList.contains('is-retail-ipad');\r\n };\r\n\r\n var extendFields = function (fields, newFields) {\r\n newFields.forEach(function (field) {\r\n fields.push(field);\r\n });\r\n };\r\n\r\n var removeFields = function (fields, deleteFields) {\r\n return fields.filter(function (field) {\r\n return !deleteFields.some(function (deleteField) {\r\n return deleteField === field;\r\n });\r\n });\r\n };\r\n\r\n var clearIndividualFields = function (fields, fieldsToClear) {\r\n Object.keys(fields).forEach(function (fieldKey) {\r\n if (fieldsToClear.some(function (clearField) {\r\n return clearField === fieldKey;\r\n })) {\r\n fields[fieldKey] = null;\r\n }\r\n });\r\n };\r\n\r\n var prettifyFileName = function (file) {\r\n var extensionBegin = file.lastIndexOf('.');\r\n return file.substring(0, extensionBegin);\r\n };\r\n\r\n var prettifyFileType = function (file) {\r\n var extensionBegin = file.lastIndexOf('.');\r\n return file.substring(extensionBegin + 1, file.length);\r\n };\r\n\r\n var prettifyFileSize = function (size) {\r\n return (size / (1024 * 1024)).toFixed(2) + ' MB';\r\n };\r\n\r\n var fileExtension = function (file) {\r\n var extensionBegin = file.lastIndexOf('.');\r\n return file.substring(extensionBegin, file.length).toLowerCase();\r\n };\r\n\r\n var formatDate = function (date) {\r\n if (!(date instanceof Date)) {\r\n date = new Date(date);\r\n }\r\n\r\n var month = leadingZero(date.getMonth() + 1);\r\n var day = leadingZero(date.getDate());\r\n var year = leadingZero(date.getFullYear());\r\n\r\n return [year, month, day].join('-');\r\n };\r\n\r\n var formatDateTime = function (date, dayOffset) {\r\n dayOffset = dayOffset ? dayOffset : 0;\r\n date.setDate(date.getDate() + dayOffset);\r\n var minutes = leadingZero(date.getMinutes());\r\n var hours = leadingZero(date.getHours());\r\n var day = leadingZero(date.getDate());\r\n var month = leadingZero(date.getMonth() + 1);\r\n\r\n return day + '/' + month + ' kl. ' + hours + ':' + minutes;\r\n };\r\n\r\n var isSameDay = function (firstDate, secondDate) {\r\n var date1 = firstDate instanceof Date ? firstDate : new Date(firstDate);\r\n var date2 = secondDate instanceof Date ? secondDate : new Date(secondDate);\r\n\r\n return (\r\n date1.getFullYear() === date2.getFullYear() &&\r\n date1.getMonth() === date2.getMonth() &&\r\n date1.getDate() === date2.getDate()\r\n );\r\n };\r\n\r\n var leadingZero = function (val) {\r\n if (val >= 10) return val.toString();\r\n\r\n return '0' + val;\r\n };\r\n\r\n var capitalize = function (value) {\r\n if (typeof value !== 'string') return value;\r\n\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n };\r\n\r\n var formatLimit = function (value) {\r\n return value + ' kr.';\r\n };\r\n\r\n var formatCurrency = function (value) {\r\n return Intl.NumberFormat('da-DK', { style: 'currency', currency: 'DKK' }).format(value);\r\n };\r\n\r\n var convertCentsToKronerAndFormat = function (value) {\r\n var amount = PAMUtils.convertCentsToKroner(value);\r\n return formatCurrency(amount);\r\n };\r\n\r\n var formatFaroeseId = function (value) {\r\n if (value.length > 6) {\r\n return value.substring(0, 6) + '-' + value.substring(6, 9);\r\n } else {\r\n return value;\r\n }\r\n };\r\n\r\n var formatCprNumber = function (value) {\r\n if (value.length > 6) {\r\n return value.substring(0, 6) + '-' + value.substring(6, 10);\r\n } else {\r\n return value;\r\n }\r\n };\r\n\r\n var formatDateShort = function (date) {\r\n if (!(date instanceof Date)) {\r\n date = new Date(date);\r\n }\r\n\r\n return PAMUtils.formatDate(date);\r\n };\r\n\r\n var elementInViewport = function (elem) {\r\n if (!elem) return;\r\n\r\n var top = elem.offsetTop;\r\n var left = elem.offsetLeft;\r\n var width = elem.offsetWidth;\r\n var height = elem.offsetHeight;\r\n\r\n while (elem.offsetParent) {\r\n elem = elem.offsetParent;\r\n top += elem.offsetTop;\r\n left += elem.offsetLeft;\r\n }\r\n\r\n return (\r\n top >= window.pageYOffset &&\r\n left >= window.pageXOffset &&\r\n (top + height) <= (window.pageYOffset + window.innerHeight) &&\r\n (left + width) <= (window.pageXOffset + window.innerWidth)\r\n );\r\n };\r\n\r\n var unwrapError = function (response, headers) {\r\n var statusCode = headers.status;\r\n\r\n // Show error message to page UI\r\n return {\r\n statusCode: statusCode,\r\n message: getError(response)\r\n };\r\n };\r\n\r\n var getError = function (response) {\r\n if (response.errors && response.errors.length) {\r\n if (response.errors[0].Message) {\r\n return response.errors[0].Message;\r\n } else if (response.errors[0].Detail) {\r\n return response.errors[0].Detail;\r\n } else if (response.errors[0].Title) {\r\n return response.errors[0].Title;\r\n }\r\n }\r\n\r\n return d('GENERIC_ERROR');\r\n };\r\n\r\n var getValidationMessage = function (key) {\r\n var errors = {\r\n required: d('REQUIRED'),\r\n isEmpty: d('IS_EMPTY'),\r\n noPurposeSelected: d('NO_PURPOSE_SELECTED'),\r\n invalidToken: d('INVALID_TOKEN')\r\n };\r\n\r\n if (errors.hasOwnProperty(key)) {\r\n return errors[key];\r\n }\r\n\r\n return '';\r\n };\r\n\r\n var getRestrictDictionaryReceiptKey = function (restrictType, isRetailAccount) {\r\n var onlineAccount = !isRetailAccount ? '/OnlineAccount' : '';\r\n if (restrictType === '24hour') {\r\n return 'RestrictAccount/Receipt/24hours' + onlineAccount;\r\n }\r\n if (restrictType === 'customDate') {\r\n return 'RestrictAccount/Receipt/CustomDate' + onlineAccount;\r\n }\r\n if (restrictType === 'unlimited') {\r\n return 'RestrictAccount/Receipt/Unlimited' + onlineAccount;\r\n }\r\n };\r\n\r\n\r\n var ensightenEvent = function (action, label, value) {\r\n var appSpecificContext = '_web';\r\n if (window.dsApplicationConfig) {\r\n if (window.dsApplicationConfig.ApplicationId === 'SHAPE_RETAILACCOUNT_IPADNATIVE') {\r\n appSpecificContext = '_oddset_retail';\r\n } else if (window.dsApplicationConfig.ApplicationId === 'SHAPE_RETAILACCOUNT_MOBILENATIVE') {\r\n appSpecificContext = '_app';\r\n } else if (window.dsApplicationConfig.ApplicationId === 'SHAPE_ODDSET_MOBILENATIVE') {\r\n appSpecificContext = '_oddset_app';\r\n }\r\n }\r\n Ensighten.pushGaEvent('sikkert_spil', action + appSpecificContext, label, value);\r\n };\r\n\r\n var isOddsetApp = function () {\r\n return Utils.getQueryParam('dsApplicationId') === 'SHAPE_ODDSET_MOBILENATIVE' || (window.dsApplicationConfig && window.dsApplicationConfig.ApplicationId === 'SHAPE_ODDSET_MOBILENATIVE') || false;\r\n };\r\n\r\n var trackUserInputErrors = function (category, errors) {\r\n Object.keys(errors).forEach(function (field) {\r\n var errorMessage = errors[field]();\r\n if (errorMessage) {\r\n ensightenEvent(category, errorMessage);\r\n }\r\n });\r\n };\r\n\r\n var trackLimitChanges = function (prefix, limits) {\r\n for (var key in limits) {\r\n var limit = limits[key];\r\n var action;\r\n var label = limit.type() + '_fra_' + limit.stored() + '_to_' + limit.value();\r\n\r\n if (!limit.value() && limit.stored()) {\r\n action = 'slet_graense';\r\n } else if (limit.value() && limit.stored()) {\r\n action = 'opdater_graense';\r\n } else if (limit.value() && !limit.stored()) {\r\n action = 'opret_graense';\r\n } else {\r\n // If value has not changed, then don't track this behavior and skip to next limitType\r\n continue;\r\n }\r\n\r\n ensightenEvent(prefix + '_' + action, label);\r\n }\r\n };\r\n\r\n var getReturnUrl = function () {\r\n return Utils.getQueryParam('signupSuccessUrl') || Utils.getQueryParam('returnUrl') || Utils.getQueryParam('loginSuccessUrl') || null;\r\n };\r\n\r\n var redirectOnLogout = function (url) {\r\n if (!url) {\r\n url = window.location.origin;\r\n }\r\n\r\n window.DSAPI && DSAPI.ready(function () {\r\n DSAPI.Account.subscribeUserLoggedOut({\r\n callback: function () {\r\n window.location.href = url;\r\n }.bind(this)\r\n });\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var splitString = function (str, delimiter) {\r\n if (!str) return null;\r\n delimiter = delimiter || ' '; // Split with space\r\n\r\n var newStr = str.match(/.{1,4}(?=(.{4})+(?!.))|.{1,4}$/g);\r\n\r\n return newStr.join(delimiter);\r\n };\r\n\r\n var storeValueInSession = function (key, value) {\r\n if (value) {\r\n if (typeof value === 'object') {\r\n window.sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n if (typeof value === 'string') {\r\n window.sessionStorage.setItem(key, value);\r\n }\r\n }\r\n };\r\n\r\n var getValueInSession = function (key) {\r\n var value = window.sessionStorage.getItem(key);\r\n\r\n return value ? JSON.parse(value) : null;\r\n };\r\n\r\n var clearValueInSession = function (key) {\r\n window.sessionStorage.removeItem(key);\r\n };\r\n\r\n var validateCprNumber = function (cprNumber) {\r\n cprNumber = cprNumber.replace(/\\D/g, '');\r\n // pNumber validates if the first 6 digits is an actually birthday, taking leap year and other special dates into consideration. The 4 remaining characters just has to be digits.\r\n var pRegEx = /^(((0[1-9]|[12][0-9]|30)(0[13-9]|1[012])|31(0[13578]|1[02])|(0[1-9]|1[0-9]|2[0-8])02)[0-9]{2}|2902((([2468][048]|[02468][48])|[13579][26])|([13579][26]|[02468][048]|0[0-9]|1[0-6])00))(-|\\s)?\\d{4}/;\r\n return pRegEx.test(cprNumber);\r\n };\r\n\r\n var setupLoginLinkEventListeners = function (loginSuccessUrl) {\r\n var loginLinks = document.querySelectorAll('[href^=\"/sikkertspil/login\"], [href^=\"/sikkertspil/opret/login\"]');\r\n\r\n // Map to a new array, because IE11 does not support forEach on NodeList\r\n var links = [].slice.call(loginLinks);\r\n\r\n links.forEach(function (link) {\r\n link.addEventListener('click', function (ev) {\r\n ev.preventDefault();\r\n var redirectUrl = encodeURIComponent(loginSuccessUrl || window.location.href);\r\n var cancelUrl = encodeURIComponent(window.location.href);\r\n var newUrl = PAMUtils.appendParameter('loginSuccessUrl', redirectUrl, link.href);\r\n newUrl = PAMUtils.appendParameter('cancelUrl', cancelUrl, newUrl);\r\n window.location.href = newUrl;\r\n }, false);\r\n });\r\n };\r\n\r\n var replaceSlashWithHyphens = function (str, prefix) {\r\n var returnVal = str.replace(/\\//gi, '-');\r\n return prefix ? prefix + returnVal : returnVal;\r\n };\r\n\r\n return {\r\n mapModelToApiData: mapModelToApiData,\r\n mapFilesToApiData: mapFilesToApiData,\r\n mapLimitToApiData: mapLimitToApiData,\r\n mapModelAndRecaptchaToApiData: mapModelAndRecaptchaToApiData,\r\n mapPasswordToApiData: mapPasswordToApiData,\r\n mapValidationErrors: mapValidationErrors,\r\n isSmallScreen: isSmallScreen,\r\n extendFields: extendFields,\r\n removeFields: removeFields,\r\n clearIndividualFields: clearIndividualFields,\r\n prettifyFileName: prettifyFileName,\r\n prettifyFileType: prettifyFileType,\r\n prettifyFileSize: prettifyFileSize,\r\n getQueryParam: Utils.getQueryParam,\r\n fileExtension: fileExtension,\r\n isMobile: Utils.isMobile,\r\n isOddsetApp: isOddsetApp,\r\n isTabletDevice: Utils.isTabletDevice,\r\n formatDate: formatDate,\r\n formatDateTime: formatDateTime,\r\n isSameDay: isSameDay,\r\n leadingZero: leadingZero,\r\n capitalize: capitalize,\r\n formatLimit: formatLimit,\r\n formatFaroeseId: formatFaroeseId,\r\n formatCprNumber: formatCprNumber,\r\n formatCurrency: formatCurrency,\r\n convertCentsToKronerAndFormat: convertCentsToKronerAndFormat,\r\n convertCentsToKroner: PAMUtils.convertCentsToKroner,\r\n formatDateShort: formatDateShort,\r\n elementInViewport: elementInViewport,\r\n isRetailIpad: isRetailIpad,\r\n unwrapError: unwrapError,\r\n getValidationMessage: getValidationMessage,\r\n getRestrictDictionaryReceiptKey: getRestrictDictionaryReceiptKey,\r\n ensightenEvent: ensightenEvent,\r\n trackUserInputErrors: trackUserInputErrors,\r\n trackLimitChanges: trackLimitChanges,\r\n getReturnUrl: getReturnUrl,\r\n redirectOnLogout: redirectOnLogout,\r\n splitString: splitString,\r\n pushVirtualPage: Ensighten.pushVirtualPage,\r\n pushGaEvent: Ensighten.pushGaEvent,\r\n pushGaEventOnPageRedirect: Ensighten.pushGaEventOnPageRedirect,\r\n appendParameter: PAMUtils.appendParameter,\r\n storeValueInSession: storeValueInSession,\r\n getValueInSession: getValueInSession,\r\n clearValueInSession: clearValueInSession,\r\n validateCprNumber: validateCprNumber,\r\n getParameter: PAMUtils.getParameter,\r\n setupLoginLinkEventListeners: setupLoginLinkEventListeners,\r\n replaceSlashWithHyphens: replaceSlashWithHyphens\r\n };\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Recaptcha', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Recaptcha',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, RecaptchaHelper, ErrorMessage) {\r\n\r\n var Recaptcha = function (config) {\r\n\r\n var options = {\r\n model: null,\r\n validate: null,\r\n hasErrors: null,\r\n id: '',\r\n ...config\r\n };\r\n\r\n return m('div', [\r\n m('div', {\r\n id: options.id,\r\n class: 'retail-recaptcha',\r\n config: function (elem, inited) {\r\n if (!inited) {\r\n RecaptchaHelper.reCaptchaInit(elem);\r\n }\r\n }\r\n }, []\r\n ),\r\n options.hasErrors ? ErrorMessage(options.hasErrors) : null\r\n ]);\r\n\r\n };\r\n return Recaptcha;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Calendar', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Common/Framework/ScriptLibraries/Scripts/Pikaday'\r\n], function (m, Pikaday) {\r\n 'use strict';\r\n\r\n var Calendar = function (value, minDate, maxDate, selector, toggled, callback, hideLabel) {\r\n\r\n var picker;\r\n var textInput;\r\n var triggerElem;\r\n var targetDate = m.prop(null);\r\n var dateValue;\r\n if (value() instanceof Date) {\r\n dateValue = value();\r\n } else {\r\n dateValue = new Date(value());\r\n value(new Date(value()));\r\n }\r\n\r\n var calendarLocalization = {\r\n months: ['Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December'],\r\n weekdays: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],\r\n weekdaysShort: ['S', 'M', 'T', 'O', 'T', 'F', 'L']\r\n };\r\n\r\n // Saves the set date to the passed value object\r\n var saveDate = function (val) {\r\n if (typeof value === 'function') {\r\n value(val);\r\n targetDate(val);\r\n if (typeof toggled === 'function') {\r\n toggled(true);\r\n }\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n m.redraw();\r\n } else {\r\n value = val;\r\n }\r\n picker.hide();\r\n };\r\n\r\n var config = function (elem, isInitialized) {\r\n if (!isInitialized) {\r\n textInput = elem.querySelector('label.calendar__text');\r\n\r\n // Show the datepicker when clicking the radio button and set the date to tomorrow\r\n triggerElem = document.querySelector(selector);\r\n triggerElem.addEventListener('click', function () {\r\n if (typeof toggled === 'function' && !toggled()) {\r\n if (!value()) {\r\n picker.setDate(targetDate() ? targetDate() : new Date());\r\n picker.show();\r\n }\r\n }\r\n });\r\n\r\n document.getElementById('calendar__text').addEventListener('click', function () {\r\n picker.setDate(targetDate() ? targetDate() : new Date());\r\n if (typeof toggled === 'function') {\r\n toggled(false);\r\n }\r\n picker.show();\r\n });\r\n\r\n // get the initial date to be displayed. If a value prop is passes use that, else default to now.\r\n var defaultDate = typeof value === 'function' ? value() : new Date();\r\n // Instantiate the Pikaday module\r\n picker = new Pikaday({\r\n firstDay: 1,\r\n field: textInput,\r\n trigger: triggerElem,\r\n bound: false,\r\n defaultDate: defaultDate,\r\n setDefaultDate: true,\r\n showDaysInNextAndPreviousMonths: true,\r\n enableSelectionDaysInNextAndPreviousMonths: true,\r\n onSelect: saveDate,\r\n reposition: false,\r\n format: 'D. MMMM YYYY',\r\n container: elem,\r\n i18n: calendarLocalization,\r\n minDate: minDate,\r\n maxDate: maxDate\r\n });\r\n\r\n picker.show();\r\n }\r\n };\r\n\r\n return m('.calendar', {\r\n config: config\r\n }, [\r\n m('label', {\r\n for: 'calendar__date',\r\n class: 'calendar__text',\r\n id: 'calendar__text',\r\n style: hideLabel ? 'display:none' : ''\r\n }, '' + dateValue.getDate() + '. ' + calendarLocalization.months[dateValue.getMonth()] + ' ' + dateValue.getFullYear())\r\n ]);\r\n };\r\n\r\n return Calendar;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n 'use strict';\r\n\r\n function StepGuide(currentStep, totalSteps, routes, labels) {\r\n if (!totalSteps) {\r\n totalSteps = currentStep.totalSteps;\r\n currentStep = currentStep.currentStep;\r\n }\r\n\r\n function setClass(i, routes, labels) {\r\n var elementClass = '';\r\n if (currentStep > i) {\r\n elementClass += 'is--active ';\r\n }\r\n if (!routes) {\r\n elementClass += 'no-pointer ';\r\n }\r\n if (!!labels && labels.length > 0 && (i + 1 === currentStep)) {\r\n elementClass += 'has--label';\r\n }\r\n return elementClass;\r\n }\r\n\r\n function stepViews() {\r\n var steps = [];\r\n for (var i = 0; i < totalSteps; i++) {\r\n steps.push(m('li.step-guide__step', {\r\n class: setClass(i, routes, labels),\r\n onclick: currentStep > i ? function () {\r\n if (routes) {\r\n m.route(routes[this]);\r\n }\r\n }.bind(i) : null\r\n }, !!labels && labels.length > 0 && ((i + 1) === currentStep) ? i + 1 + '. ' + labels[i] : i + 1));\r\n }\r\n return steps;\r\n }\r\n\r\n return [\r\n m('ol.step-guide', {},\r\n stepViews()\r\n )\r\n ];\r\n }\r\n\r\n return StepGuide;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n ],\r\n function (ApiRequest, Utils) {\r\n // Variables:\r\n var baseUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement';\r\n\r\n // Functions:\r\n var getProfile = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/retail/updateprofile',\r\n method: 'GET',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getProfileWithBankInformation = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/retail/profileinclaccount',\r\n method: 'GET',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getProfileWithCache = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/retail/profileinclcache',\r\n method: 'GET',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var updateProfile = function (fields) {\r\n return ApiRequest({\r\n data: fields,\r\n url: baseUrl + '/retail/updateprofile',\r\n method: 'PUT',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var createProfile = function (fields) {\r\n return ApiRequest({\r\n data: fields,\r\n url: baseUrl + '/retail/createprofile',\r\n method: 'POST',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var discardUpgrade = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/retail/discardupgrade',\r\n method: 'POST',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var doUpgrade = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/retail/doupgrade',\r\n method: 'POST',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var isPasswordTokenValid = function (token) {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: baseUrl + '/IsUpdatePasswordTokenValid/' + token,\r\n unwrapError: function () {\r\n return {\r\n statusCode: 404,\r\n message: Utils.getValidationMessage('invalidToken'),\r\n };\r\n }\r\n });\r\n };\r\n\r\n var changePassword = function (data) {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/UpdatePasswordWithToken',\r\n data: data,\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getCities = function () {\r\n return ApiRequest({\r\n background: true,\r\n url: baseUrl + '/getcities'\r\n });\r\n };\r\n\r\n var getCountries = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/getcountries'\r\n });\r\n };\r\n\r\n var getUploadFilePurposes = function (scope) {\r\n return ApiRequest({\r\n background: true,\r\n url: baseUrl + '/GetUploadFilePurposes' + (scope ? '?scope=' + scope : '')\r\n });\r\n };\r\n\r\n var getSecurityQuestions = function () {\r\n return ApiRequest({\r\n background: true,\r\n url: baseUrl + '/GetSecurityQuestions',\r\n unwrapSuccess: function (response) {\r\n return response.data.map(function (question) {\r\n return {\r\n Id: parseInt(question.MappingNumber, 10),\r\n Name: question.Question\r\n };\r\n });\r\n }\r\n });\r\n };\r\n\r\n var getUserDepositLimits = function () {\r\n return ApiRequest({\r\n background: true,\r\n url: baseUrl + '/GetAmountLimits',\r\n unwrapSuccess: function (response) {\r\n if (response?.data?.SavedUserDepositLimits) {\r\n return response.data.SavedUserDepositLimits;\r\n }\r\n\r\n return {};\r\n }\r\n });\r\n };\r\n\r\n var getPlayerLimits = function () {\r\n return ApiRequest({\r\n background: true,\r\n url: baseUrl + '/retail/GetLimits', // TODO: Change to wager limits once endpoint is done\r\n unwrapSuccess: function (response) {\r\n if (response?.data?.SavedUserWagerLimits) {\r\n return response.data.SavedUserWagerLimits;\r\n }\r\n\r\n if (response?.data?.SavedUserDepositLimits) {\r\n return response.data.SavedUserDepositLimits;\r\n }\r\n\r\n return {};\r\n }\r\n });\r\n };\r\n\r\n var setWagerLimits = function (data) {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/retail/SetLimits',\r\n data: data,\r\n unwrapSuccess: function (response) {\r\n if (response?.data?.SavedUserWagerLimits) {\r\n return response.data.SavedUserWagerLimits;\r\n }\r\n\r\n if (response?.data?.SavedUserDepositLimits) {\r\n return response.data.SavedUserDepositLimits;\r\n }\r\n\r\n return {};\r\n }\r\n });\r\n };\r\n\r\n var setAmountLimits = function (data) {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/SetAmountLimits',\r\n data: data\r\n });\r\n };\r\n\r\n var hasDocuments = function () {\r\n return ApiRequest({\r\n background: true,\r\n url: baseUrl + '/HasDocuments?checkPending=true'\r\n });\r\n };\r\n\r\n var uploadDocuments = function (data) {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/Upload',\r\n data: data,\r\n serialize: function (data) {\r\n return data;\r\n }\r\n });\r\n };\r\n\r\n var closeAccount = function () {\r\n var confirmChecksum = Utils.getParameter('confirmChecksum');\r\n\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/closeaccount',\r\n unwrapError: Utils.unwrapError,\r\n headers: {\r\n 'X-Checksum': confirmChecksum\r\n }\r\n });\r\n };\r\n\r\n var lockAccount = function () {\r\n var confirmChecksum = Utils.getParameter('confirmChecksum');\r\n\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/lockAccount',\r\n unwrapError: Utils.unwrapError,\r\n headers: {\r\n 'X-Checksum': confirmChecksum\r\n }\r\n });\r\n };\r\n\r\n var restrictAccount = function (date) {\r\n if (!date) {\r\n date = new Date();\r\n }\r\n\r\n date = date instanceof Date ? date : new Date(date);\r\n\r\n var today = new Date();\r\n\r\n if (Utils.isSameDay(today, date)) {\r\n date.setDate(today.getDate() + 1); // Add one day to restrict for 24 hours\r\n }\r\n\r\n var formattedDate = Utils.formatDate(date);\r\n var timezoneOffset = date.getTimezoneOffset() * -1; // should be set as a negated minute offset\r\n\r\n var confirmChecksum = Utils.getParameter('confirmChecksum');\r\n var headersObj;\r\n\r\n if (confirmChecksum) {\r\n headersObj = {\r\n 'X-Checksum': confirmChecksum\r\n };\r\n } else {\r\n headersObj = {};\r\n }\r\n\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/restrictaccount',\r\n data: {\r\n RestrictAccountEndDate: formattedDate,\r\n UtcMinutesOffset: timezoneOffset\r\n },\r\n unwrapError: Utils.unwrapError,\r\n headers: headersObj\r\n });\r\n };\r\n\r\n var getPlaycard = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/GetPlayCard',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var orderPlaycard = function () {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/OrderPlayCard',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var reOrderPlaycard = function () {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/ReorderPlayCard',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var togglePlaycardStatus = function () {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/TogglePlayCardStatus',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getVisualPlayCard = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/WebViewGetVisualPlayCard',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getMobileLinkQR = function () {\r\n return ApiRequest({\r\n url: baseUrl + '/WebViewGetMobilePayQR',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getNotificationPermissions = function () {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/integration/eloqua/playernotificationsettings/get',\r\n unwrapError: Utils.unwrapError,\r\n unwrapSuccess: function (response) {\r\n var data = response.data;\r\n var modelObj = {\r\n marketingTerms: data.RetailPermission,\r\n emailPermission: data.EmailPermission,\r\n emailWinningPermission: data.EmailWinnerNotificationPermission,\r\n smsWinningPermission: data.SmsWinnerNotificationPermission,\r\n appPermission: data.AppPermission,\r\n appPermissionQuestioned: data.AppPermissionQuestioned\r\n };\r\n\r\n return modelObj;\r\n }\r\n });\r\n };\r\n\r\n var setNotificationPermissions = function (data) {\r\n return ApiRequest({\r\n method: 'POST',\r\n data: data,\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/integration/eloqua/playernotificationsettings/update',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getDawaAddress = function (data) {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: 'https://api.dataforsyningen.dk/adresser/autocomplete?q=' + data + '&fuzzy=',\r\n unwrapSuccess: function (response) {\r\n return response.map(function (entry) {\r\n return {\r\n value: entry.tekst,\r\n model: {\r\n street: entry.adresse.vejnavn,\r\n zipCode: entry.adresse.postnr,\r\n city: entry.adresse.postnrnavn,\r\n houseNumber: entry.adresse.husnr,\r\n door: entry.adresse.dør,\r\n level: entry.adresse.etage,\r\n }\r\n };\r\n });\r\n }\r\n });\r\n };\r\n\r\n var getGameHistory = function (data) {\r\n if (!data) data = {};\r\n\r\n var page = data.page || 1;\r\n var period = data.period || 365;\r\n var offset = data.offset || 1;\r\n var vertical = data.vertical || 'aktive';\r\n var channel = 'forhandler'; // TODO: Change with 'forhandler'\r\n\r\n return ApiRequest({\r\n method: 'GET',\r\n url: baseUrl + '/playergames/' + page + '/' + period + '/' + offset + '/' + vertical + '/' + channel,\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getUncollectedPrizes = function () {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/UncollectedPrizes',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getGameDetails = function (id) {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PlayerGame/' + id,\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var validateUsernameAndEmail = function (data) {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: baseUrl + '/ValidateUsernameAndEmail',\r\n data: data,\r\n unwrapError: function (response, headers) {\r\n return {\r\n response: response,\r\n headers: headers\r\n };\r\n }\r\n });\r\n };\r\n\r\n var executePayout = function (winId) {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PayoutToBank',\r\n data: {\r\n winId: winId\r\n },\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var removePincodeExclusion = () => {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/RemovePincodeExclusion',\r\n unwrapError: () => {}\r\n });\r\n };\r\n\r\n var reactivatePlaycard = () => {\r\n return ApiRequest({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/ReactivatePlaycard',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getOfflineLoginExclusion = () => {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/HasOfflineLoginExclusion',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n var getMostRestrictiveLimit = () => {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/retail/GetMostRestrictiveLimit',\r\n unwrapError: Utils.unwrapError\r\n });\r\n };\r\n\r\n // Public functions:\r\n return {\r\n getProfile,\r\n getProfileWithBankInformation,\r\n getProfileWithCache,\r\n updateProfile,\r\n createProfile,\r\n discardUpgrade,\r\n doUpgrade,\r\n getCities,\r\n getCountries,\r\n getUploadFilePurposes,\r\n getSecurityQuestions,\r\n getPlayerLimits,\r\n setWagerLimits,\r\n setAmountLimits,\r\n hasDocuments,\r\n uploadDocuments,\r\n closeAccount,\r\n lockAccount,\r\n restrictAccount,\r\n getPlaycard,\r\n orderPlaycard,\r\n reOrderPlaycard,\r\n togglePlaycardStatus,\r\n getVisualPlayCard,\r\n getMobileLinkQR,\r\n getNotificationPermissions,\r\n setNotificationPermissions,\r\n isPasswordTokenValid,\r\n changePassword,\r\n getDawaAddress,\r\n getGameHistory,\r\n getGameDetails,\r\n validateUsernameAndEmail,\r\n executePayout,\r\n removePincodeExclusion,\r\n reactivatePlaycard,\r\n getOfflineLoginExclusion,\r\n getUserDepositLimits,\r\n getUncollectedPrizes,\r\n getMostRestrictiveLimit\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Helpers/WaitForAuthSynced', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController'\r\n], function (m, Event, LoginController) {\r\n\r\n // Variables:\r\n var ready = m.deferred();\r\n\r\n // Initialize - Ready when page load auth sync is finished\r\n if (LoginController.isSynced()) {\r\n ready.resolve();\r\n } else {\r\n Event.subscribe('pageload-auth-synced', function () {\r\n ready.resolve();\r\n });\r\n }\r\n\r\n\r\n return {\r\n ready: ready.promise,\r\n };\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Models/LimitModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils'\r\n], function (m, Model, Dictionary, Utils) {\r\n 'use strict';\r\n\r\n var computeState = function (value, plannedAt, plannedValue) {\r\n if (plannedAt && !plannedValue) {\r\n return 'delete';\r\n } else if (value && !(plannedAt && plannedValue)) {\r\n return 'active';\r\n } else if (plannedAt && plannedValue) {\r\n return 'change';\r\n } else {\r\n return 'unset';\r\n }\r\n };\r\n\r\n var LimitModel = Model('LimitModel', function (limit) {\r\n limit = limit ? limit : {};\r\n limit.Value = limit.IsGlobal ? 0 : limit.Value;\r\n this.d = Dictionary.get.bind({ prefix: 'RetailProfile/WagerLimits/' });\r\n this.type = m.prop(limit.Type ? Utils.capitalize(limit.Type) : null);\r\n this.value = m.prop(limit.Value ? limit.Value / 100 : null);\r\n this.formatted = m.prop(limit.Value ? Utils.formatCurrency(limit.Value / 100) : null);\r\n this.stored = m.prop(limit.Value ? limit.Value / 100 : null); // In order to manipulate limit value we need a reference to the server side value\r\n this.isGlobal = m.prop(limit.IsGlobal || false);\r\n this.isOperator = m.prop(limit.IsOperator || false);\r\n this.state = m.prop(computeState(limit.Value, limit.PlannedAt, limit.PlannedValue));\r\n this.max = m.prop(limit.Max ? limit.Max / 100 : null);\r\n this.maxFormatted = m.prop(limit.Max ? Utils.formatCurrency(limit.Max / 100) : null);\r\n this.plannedAt = m.prop(limit.PlannedAt);\r\n this.plannedValue = m.prop(limit.PlannedValue ? limit.PlannedValue / 100 : null);\r\n this.hasFocus = m.prop(false);\r\n this.hasErrors = m.prop([]);\r\n\r\n this.toJSON = function () {\r\n return {\r\n type: this.type(),\r\n value: this.value(),\r\n formatted: this.formatted(),\r\n stored: this.stored(),\r\n isGlobal: this.isGlobal(),\r\n isOperator: this.isOperator(),\r\n state: this.state(),\r\n plannedAt: this.plannedAt(),\r\n plannedValue: this.plannedValue(),\r\n errors: this.hasErrors()\r\n };\r\n };\r\n\r\n this.reset = function () {\r\n this.value(this.stored());\r\n this.formatted(this.stored() ? Utils.formatCurrency(this.stored()) : '');\r\n this.state(computeState(this.value(), this.plannedAt(), this.plannedValue()));\r\n };\r\n\r\n this.error = function (key, options) {\r\n options = options || {};\r\n var error = this.d('Errors/' + key, options);\r\n error = typeof error === 'string' ? error : key + ':MissingDictionary';\r\n this.hasErrors().push(error);\r\n }.bind(this);\r\n\r\n this.prettyType = function () {\r\n var type = this.d('Errors/Type/' + this.type());\r\n return typeof type === 'string' ? type : ':UnknownType';\r\n };\r\n\r\n });\r\n\r\n return LimitModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Models/UserLimitsModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils'\r\n], function (m, Model, Utils) {\r\n 'use strict';\r\n\r\n var UserLimitsModel = Model('UserLimitsModel', function () {\r\n this.limits = m.prop([]);\r\n this.limitRequired = m.prop(false);\r\n this.limitMinimum = m.prop(1);\r\n this.sitecoreLimits = m.prop([]);\r\n\r\n this.clearErrors = function () {\r\n this.limits().forEach(function (limit) {\r\n limit.hasErrors([]);\r\n });\r\n };\r\n\r\n this.hasLimit = function () {\r\n return this.limits().some((limit) => limit.value());\r\n };\r\n\r\n this.reset = function () {\r\n this.limits().forEach(function (limit) {\r\n limit.reset();\r\n });\r\n };\r\n\r\n this.mapToData = function () {\r\n var changes = this.changes().map(function (limit) {\r\n var newMax = 'Max' + limit.type();\r\n var object = {};\r\n var isDeleting = limit.value() === null;\r\n object[newMax] = isDeleting ? '-1' : +limit.value();\r\n return object;\r\n });\r\n\r\n return changes.length > 0 ? Object.assign.apply(Object, changes) : null;\r\n };\r\n\r\n this.changes = function () {\r\n return this.limits().filter(function (limit) {\r\n return limit.stored() !== limit.value() || limit.state() === 'revert';\r\n });\r\n };\r\n\r\n const limitIsSetByUser = (limit) => {\r\n const maxLimitSetByUserOrOperator = limit.max();\r\n const limitSetByUserOrOperator = limit.value();\r\n const operatorHaveSetALimit = limit.isOperator();\r\n const limitIsCurrentlyBeingDeleted = limit.state() === 'delete';\r\n\r\n if (!limitIsCurrentlyBeingDeleted && limitSetByUserOrOperator) {\r\n if (!operatorHaveSetALimit || (operatorHaveSetALimit && maxLimitSetByUserOrOperator !== limitSetByUserOrOperator)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n this.validate = function () {\r\n var isValid = true;\r\n var sitecoreLimitHit = false;\r\n\r\n this.limits().forEach(function (limit, index) {\r\n const otherLimits = this.limits().filter((otherLimit) => otherLimit !== limit);\r\n const someOtherLimitsSetByUser = otherLimits.some((otherLimit) => limitIsSetByUser(otherLimit));\r\n\r\n // Validate limits with lesser period granularity\r\n this.limits().forEach(function (lesserLimit, lesserIndex) {\r\n if (lesserIndex < index) {\r\n if (lesserLimit.value() !== null && limit.value() !== null) {\r\n if (lesserLimit.value() >= limit.value()) {\r\n if (lesserLimit.plannedValue() !== null && lesserLimit.plannedValue() < limit.value()) {\r\n // A smaller limits is already being processed, so we are good.\r\n } else {\r\n if (lesserLimit.value() > limit.value() && limit.value() !== limit.stored() && limit.value() !== '-1' && lesserLimit.state() !== 'delete') {\r\n limit.error('IsLessThan', {\r\n TYPE: limit.prettyType(),\r\n OTHERTYPE: lesserLimit.prettyType(),\r\n LIMIT: limit.formatted(),\r\n LESSERLIMIT: lesserLimit.formatted()\r\n });\r\n isValid = false;\r\n }\r\n }\r\n }\r\n if (lesserLimit.plannedValue() && lesserLimit.plannedValue() > limit.value()) {\r\n limit.error('IsLessThanPlanned', {\r\n TYPE: limit.prettyType(),\r\n PLANNEDTYPE: lesserLimit.prettyType(),\r\n LIMIT: limit.formatted(),\r\n LESSERLIMIT: Utils.formatCurrency(lesserLimit.plannedValue())\r\n });\r\n isValid = false;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // Validate limits with larger period granularity\r\n this.limits().forEach(function (largerLimit, largerIndex) {\r\n if (largerIndex > index) {\r\n if (largerLimit.value() !== null) {\r\n if (largerLimit.value() < limit.value()) {\r\n if (largerLimit.plannedValue() >= limit.value()) {\r\n // A larger limits is already being processed, so we are good.\r\n } else if (largerLimit.plannedValue() !== null) {\r\n if (largerLimit.plannedValue() < limit.value()) {\r\n limit.error('IsLargerThanPlanned', {\r\n TYPE: limit.prettyType(),\r\n PLANNEDTYPE: largerLimit.prettyType(),\r\n LIMIT: limit.formatted(),\r\n LARGERLIMIT: Utils.formatCurrency(largerLimit.plannedValue())\r\n });\r\n isValid = false;\r\n }\r\n } else if (!(limit.value() === limit.stored()) && largerLimit.state() !== 'delete') {\r\n limit.error('IsLargerThan', {\r\n TYPE: limit.prettyType(),\r\n OTHERTYPE: largerLimit.prettyType(),\r\n LIMIT: limit.formatted(),\r\n LARGERLIMIT: largerLimit.formatted()\r\n });\r\n isValid = false;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n // Validate max and sitecore max\r\n\r\n this.sitecoreLimits().forEach(function (sitecorelimit) {\r\n if (sitecorelimit.type === limit.type() && sitecorelimit.value && limit.value() > sitecorelimit.value) {\r\n limit.error('IsTooLarge',\r\n {\r\n TYPE: limit.prettyType(),\r\n LIMITFORMATTET: (sitecorelimit.value ? Utils.formatCurrency(sitecorelimit.value) : null)\r\n });\r\n isValid = false;\r\n sitecoreLimitHit = true;\r\n }\r\n });\r\n\r\n if (!sitecoreLimitHit && limit.max() && limit.value() > limit.max()) {\r\n limit.error('IsTooLarge',\r\n {\r\n TYPE: limit.prettyType(),\r\n LIMITFORMATTET: limit.maxFormatted()\r\n });\r\n isValid = false;\r\n }\r\n\r\n if (limit.stored() !== null && limit.value() === null && this.limitRequired() && !someOtherLimitsSetByUser) {\r\n limit.error('LimitCantBeRemoved', {\r\n TYPE: limit.prettyType()\r\n });\r\n limit.reset();\r\n isValid = false;\r\n }\r\n\r\n if (this.limitMinimum() && limit.value() !== null && limit.value() < this.limitMinimum()) {\r\n limit.error('LimitBelowMinimum', {\r\n TYPE: limit.prettyType(),\r\n LIMIT: limit.formatted(),\r\n AMOUNT: this.limitMinimum()\r\n });\r\n isValid = false;\r\n }\r\n\r\n if (limit.value() && limit.plannedValue() && limit.value() === limit.plannedValue()) {\r\n limit.error('IsEqualToPlanned', {\r\n TYPE: limit.prettyType(),\r\n LIMIT: limit.formatted()\r\n });\r\n isValid = false;\r\n }\r\n }.bind(this));\r\n return isValid;\r\n };\r\n\r\n this.hasChanges = function () {\r\n return this.changes().length > 0;\r\n };\r\n\r\n });\r\n\r\n return UserLimitsModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserLimitsModel'\r\n], function (m, Model, Utils, UserLimitModel) {\r\n 'use strict';\r\n\r\n var UserModel = Model('UserModel', function (content) {\r\n content = content || {};\r\n this.citiesList = m.prop([]);\r\n this.availableCountries = m.prop([]);\r\n this.securityQuestions = m.prop([]);\r\n this.hasDocuments = m.prop(false);\r\n this.files = m.prop([]);\r\n this.userLimits = m.prop(new UserLimitModel());\r\n\r\n var defaultRestrictDate = new Date();\r\n defaultRestrictDate.setDate(defaultRestrictDate.getDate() + 30);\r\n\r\n this.fields = {\r\n username: m.prop(content.username ? content.username.value : null),\r\n email: m.prop(content.email ? content.email.value : null),\r\n password: m.prop(null),\r\n repeatPassword: m.prop(null),\r\n currentPassword: m.prop(null),\r\n cprNumber: m.prop(content.cprNumber ? content.cprNumber.value : null),\r\n hasValidCpr: m.prop(content.hasValidCpr ? content.hasValidCpr.value : false),\r\n firstName: m.prop(content.firstName ? content.firstName.value : null),\r\n lastName: m.prop(content.lastName ? content.lastName.value : null),\r\n hasValidName: m.prop(content.hasValidName ? content.hasValidName.value : false),\r\n street: m.prop(content.street ? content.street.value : null),\r\n houseNumber: m.prop(content.houseNumber ? content.houseNumber.value : null),\r\n level: m.prop(content.level ? content.level.value : null),\r\n door: m.prop(content.door ? content.door.value : null),\r\n zipCode: m.prop(content.zipCode ? content.zipCode.value : null),\r\n city: m.prop(content.city ? content.city.value : null),\r\n country: m.prop(content.country ? content.country.value : null),\r\n phone: m.prop(content.phone ? content.phone.value : null),\r\n amountLimit: m.prop(content.amountLimit ? content.amountLimit.value : null),\r\n marketingTerms: m.prop(content.marketingTerms ? content.marketingTerms.value : false),\r\n marketingDefaultTerms: m.prop(content.marketingDefaultTerms ? content.marketingDefaultTerms.value : false),\r\n pushpermissionMarketingTerms: m.prop(content.pushpermissionMarketingTerms ? content.pushpermissionMarketingTerms.value : false),\r\n acceptDataProcessing: m.prop(content.acceptDataProcessing ? content.acceptDataProcessing.value : false),\r\n acceptTermsAndConditions: m.prop(content.acceptTermsAndConditions ? content.acceptTermsAndConditions.value : false),\r\n bankAccount: m.prop(content.bankAccount ? content.bankAccount.value : '-'),\r\n emailPermission: m.prop(content.emailPermission || false),\r\n emailRetailPermission: m.prop(content.emailRetailPermission || false),\r\n emailWinningPermission: m.prop(content.emailWinningPermission || false),\r\n smsWinningPermission: m.prop(content.smsWinningPermission || false),\r\n appPermission: m.prop(content.appPermission || false),\r\n appPermissionQuestioned: m.prop(content.appPermissionQuestioned || false),\r\n cprCheck: m.prop(content.cprCheck ? content.cprCheck.value : false),\r\n hasValidBankAccount: m.prop(content.hasValidBankAccount ? content.hasValidBankAccount.value : false), // Explicit overridden in faroese flow.\r\n restrictCustomDate: m.prop(false),\r\n restrictDate: m.prop(defaultRestrictDate.toString()),\r\n restrict24hours: m.prop(false),\r\n restrictType: m.prop(null), // '24hour', 'customDate', 'unlimited' or 'close'\r\n restrictUnlimited: m.prop(false),\r\n nemIdSignedIn: m.prop(content.nemIdSignedIn ? content.nemIdSignedIn.value : false),\r\n nemIdNotUsed: m.prop(content.nemIdNotUsed),\r\n isPending: m.prop(content.isPending ? content.isPending.value : true),\r\n isActive: m.prop(content.hasOwnProperty('isPending') ? !content.isPending.value : false),\r\n isRetailAccount: m.prop(content.isRetailAccount ? content.isRetailAccount.value : true),\r\n isFromFaroe: m.prop(content.isFromFaroe ? content.isFromFaroe.value : false),\r\n accountTypeChangeInProgress: m.prop(content.accountTypeChangeInProgress ? content.accountTypeChangeInProgress.value : false),\r\n limitType: m.prop(null),\r\n limitValue: m.prop(null),\r\n limitFormatted: m.prop(null),\r\n securityQuestion: m.prop({ Id: '', name: null }),\r\n securityAnswer: m.prop(null),\r\n runKnowYourCustomerFlow: m.prop(false),\r\n pin1: m.prop(null),\r\n pin2: m.prop(null),\r\n pin3: m.prop(null),\r\n pin4: m.prop(null),\r\n pin1Confirm: m.prop(null),\r\n pin2Confirm: m.prop(null),\r\n pin3Confirm: m.prop(null),\r\n pin4Confirm: m.prop(null),\r\n pincode: m.prop(content.pincode ? content.pincode.value : null),\r\n pincodeConfirm: m.prop(content.pincode ? content.pincode.value : null),\r\n offlineWagerLimitPeriodDaily: m.prop(null),\r\n offlineWagerLimitPeriodWeekly: m.prop(null),\r\n offlineWagerLimitPeriodMonthly: m.prop(null),\r\n offlineWagerLimitPeriod: m.prop(content.offlineWagerLimitPeriod ? content.offlineWagerLimitPeriod.value : null),\r\n offlineWagerLimit: m.prop(content.offlineWagerLimit ? content.offlineWagerLimit.value / 100 : null),\r\n hasOldOfflineWagerLimit: m.prop(content.hasOldOfflineWagerLimit?.value),\r\n adviseEloquaOfAccountUpdate: m.prop(false)\r\n };\r\n\r\n // Copy the fields without reference\r\n this.initialValues = JSON.parse(JSON.stringify(this.fields));\r\n\r\n this.nameIsSet = m.prop(false);\r\n this.usernameIsSet = m.prop(this.fields.username());\r\n this.hasConsentedToGameScanner = m.prop(false);\r\n this.cachedUpgrade = m.prop(false);\r\n\r\n // Set user's country based on either value provided or fallback to DK\r\n this.setDefaultCountry = function (setCountry) {\r\n var selectedCountry = this.availableCountries().filter(function (country) {\r\n if (setCountry === 'FO') {\r\n return country.Id === 'FO';\r\n }\r\n\r\n if (!setCountry) {\r\n return country.Id === 'DK';\r\n }\r\n\r\n return country.Id === content.country;\r\n });\r\n\r\n if (selectedCountry.length) {\r\n this.fields.country(selectedCountry[0].Id);\r\n }\r\n }.bind(this);\r\n\r\n /*\r\n * Create an error key for each field value in the model (Doing this programatically do avoid double maintenance of fields in model)\r\n */\r\n this.errors = {};\r\n\r\n Object.keys(this.fields).forEach(function (field) {\r\n this.errors[field] = m.prop(null);\r\n }.bind(this));\r\n\r\n this.update = function (content) {\r\n Object.keys(content).forEach(function (fieldKey) {\r\n if (content.hasOwnProperty(fieldKey) && content[fieldKey]) {\r\n var val;\r\n\r\n if (typeof content[fieldKey] === 'string' || typeof content[fieldKey] === 'boolean') {\r\n val = content[fieldKey];\r\n } else {\r\n val = content[fieldKey].value;\r\n }\r\n\r\n if (this.fields[fieldKey]) {\r\n this.fields[fieldKey](val);\r\n }\r\n }\r\n }.bind(this));\r\n\r\n // Never display password\r\n this.fields.password(null);\r\n this.fields.repeatPassword(null);\r\n this.fields.currentPassword(null);\r\n\r\n // Reset placeholder pincode fields on update\r\n ['pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm'].forEach((fieldKey) => {\r\n this.fields[fieldKey](null);\r\n });\r\n\r\n // Set props based on user info\r\n this.fields.isActive(!this.fields.isPending());\r\n this.usernameIsSet(this.fields.username());\r\n this.hasConsentedToGameScanner(this.fields.acceptDataProcessing());\r\n\r\n if (!this.fields.country()) {\r\n this.setDefaultCountry();\r\n }\r\n\r\n this.initialValues = JSON.parse(JSON.stringify(this.fields));\r\n }.bind(this);\r\n\r\n this.setErrors = function (data, returnErrorFields) {\r\n if (data.success) {\r\n return false;\r\n }\r\n\r\n var errorKeys = [];\r\n\r\n for (var field in data.profile) {\r\n if (this.errors[field]) {\r\n var errorMessage = data.profile[field].error;\r\n this.errors[field](errorMessage);\r\n\r\n if (errorMessage) {\r\n errorKeys.push(field);\r\n }\r\n }\r\n }\r\n\r\n if (returnErrorFields) {\r\n return errorKeys;\r\n }\r\n\r\n return true;\r\n }.bind(this);\r\n\r\n this.clearErrors = function () {\r\n Object.keys(this.fields).forEach(function (field) {\r\n this.errors[field] = m.prop(null);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n // Do simple validation to check if field is not null, not false and not empty string\r\n this.validate = function (validateFields, setErrors) {\r\n if (!validateFields) return;\r\n if (typeof validateFields === 'string') [validateFields];\r\n if (typeof setErrors === 'undefined') {\r\n setErrors = true; // If setErrors is not set then default to true\r\n }\r\n\r\n var hasErrors = false;\r\n\r\n for (var index in validateFields) {\r\n var fieldName = validateFields[index];\r\n var val = this.fields[fieldName]();\r\n var isNotValid = null;\r\n\r\n if (val === false) {\r\n isNotValid = Utils.getValidationMessage('required');\r\n } else if ((!val && val !== 0) || (typeof val === 'string' && val.trim() === '')) {\r\n isNotValid = Utils.getValidationMessage('isEmpty');\r\n }\r\n\r\n if (setErrors) {\r\n this.errors[fieldName](isNotValid);\r\n }\r\n\r\n if (!hasErrors) {\r\n hasErrors = isNotValid;\r\n }\r\n }\r\n\r\n return hasErrors;\r\n }.bind(this);\r\n });\r\n\r\n return UserModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Models/ForgotPasswordModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n], function (m, Model, Utils) {\r\n 'use strict';\r\n\r\n var ForgotPasswordModel = Model('ForgotPasswordModel', function () {\r\n this.token = m.prop();\r\n\r\n this.fields = {\r\n password: m.prop(null),\r\n repeatPassword: m.prop(null),\r\n };\r\n\r\n /*\r\n * Create an error key for each field value in the model (Doing this programatically do avoid double maintenance of fields in model)\r\n */\r\n this.errors = {};\r\n\r\n this.clearErrors = function () {\r\n Object.keys(this.fields).forEach(function (field) {\r\n this.errors[field] = m.prop(null);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.clearErrors();\r\n\r\n // Do simple validation to check if field is not null, not false and not empty string\r\n this.validate = function (validateFields, setErrors) {\r\n if (!validateFields) return;\r\n if (typeof validateFields === 'string') [validateFields];\r\n if (typeof setErrors === 'undefined') {\r\n setErrors = true; // If setErrors is not set then default to true\r\n }\r\n\r\n var hasErrors = false;\r\n\r\n for (var index in validateFields) {\r\n var fieldName = validateFields[index];\r\n var val = this.fields[fieldName]();\r\n var isNotValid = null;\r\n\r\n if (val === false) {\r\n isNotValid = Utils.getValidationMessage('required');\r\n } else if ((!val && val !== 0) || (typeof val === 'string' && val.trim() === '')) {\r\n isNotValid = Utils.getValidationMessage('isEmpty');\r\n }\r\n\r\n if (setErrors) {\r\n this.errors[fieldName](isNotValid);\r\n }\r\n\r\n if (!hasErrors) {\r\n hasErrors = isNotValid;\r\n }\r\n }\r\n\r\n return hasErrors;\r\n }.bind(this);\r\n });\r\n\r\n return ForgotPasswordModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Models/PurposeModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model'\r\n], function (m, Model) {\r\n 'use strict';\r\n\r\n var PurposeModel = Model('PurposeModel', function (purpose, isActive) {\r\n purpose = purpose || {};\r\n isActive = isActive || false;\r\n\r\n this.purpose = m.prop(purpose.Purpose || null);\r\n this.type = m.prop(purpose.Type || null);\r\n this.header = m.prop(purpose.Header || null);\r\n this.description = m.prop(purpose.Description || null);\r\n this.identifier = m.prop(purpose.Identifier || null);\r\n this.isRequired = m.prop(purpose.MandatoryIfPresent || false);\r\n this.isVisible = m.prop(purpose.VisibleInDropdown);\r\n this.isActive = m.prop(isActive);\r\n });\r\n\r\n return PurposeModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Models/FileUploadModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils'\r\n], function (m, Model, Utils) {\r\n 'use strict';\r\n\r\n var FileUploadModel = Model('FileUploadModel', function (purpose, settings, dictionary, closeable) {\r\n settings = settings || {};\r\n closeable = closeable == null ? true : closeable;\r\n this.purpose = m.prop(purpose);\r\n this.file = m.prop(null);\r\n this.errors = m.prop([]);\r\n this.closeable = m.prop(closeable);\r\n\r\n // Do simple validation to check if field is not null, not false and not empty string\r\n this.validate = function () {\r\n // Lets clear previous errors\r\n this.errors([]);\r\n if (this.file()) {\r\n if (this.file().size > settings.MaxFileSize) {\r\n this.errors().push(dictionary('Errors/FileSizeExceedsLimit', {\r\n MAXFILESIZE: (settings.MaxFileSize / 1024 / 1024).toFixed(2),\r\n FAILEDFILE: this.file().name\r\n }));\r\n }\r\n\r\n var noFileTypeMatch = !settings.AllowedMimeTypes.some(function (fileType) {\r\n return fileType === Utils.fileExtension(this.file().name);\r\n }.bind(this));\r\n if (noFileTypeMatch) {\r\n this.errors().push(dictionary('Errors/FileTypeNotAllowed'));\r\n }\r\n\r\n } else {\r\n if (this.purpose().isActive() && this.purpose().isRequired()) {\r\n this.errors().push(dictionary('Errors/FileIsEmpty'));\r\n }\r\n }\r\n\r\n return this.errors().length > 0;\r\n }.bind(this);\r\n });\r\n\r\n return FileUploadModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Models/PlaycardModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model'\r\n], function (m, Model) {\r\n 'use strict';\r\n\r\n var PlaycardModel = Model('PlaycardModel', function (content) {\r\n content = content || {};\r\n\r\n this.cardNumber = m.prop(content.CardNumber || null);\r\n this.expirationDate = m.prop(content.ExpirationDate || null);\r\n this.isPhysicalCard = m.prop(content.IsPhysicalCard || false);\r\n this.payoutAccount = m.prop(content.PaymentAccount || 'NemKonto');\r\n this.canReorder = m.prop(content.CanReorder || !content.IsPhysicalCard || false);\r\n this.playcardStatus = m.prop('order'); // ['order', 'block', 'unblock']\r\n this.digitalPlaycardImage = m.prop(null);\r\n this.digitalPlaycardNumber = m.prop(null);\r\n\r\n this.orderWithSamePincode = m.prop(false);\r\n this.orderWithNewPincode = m.prop(false);\r\n\r\n this.setPlaycardStatus = function (content) {\r\n if (content.ShowOrderPlayCardButton) {\r\n this.playcardStatus('order');\r\n } else {\r\n if (content.OnHold) {\r\n this.playcardStatus('unblock');\r\n } else {\r\n this.playcardStatus('block');\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.update = function (content) {\r\n this.cardNumber(content.CardNumber || null);\r\n this.expirationDate(content.ExpirationDate || null);\r\n this.isPhysicalCard(content.IsPhysicalCard || false);\r\n this.payoutAccount(content.PaymentAccount || 'NemKonto');\r\n this.canReorder(content.CanReorder || false);\r\n this.setPlaycardStatus(content);\r\n }.bind(this);\r\n });\r\n\r\n return PlaycardModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Link', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n\r\n var Link = function (options) {\r\n if (options.href) {\r\n var anchorText = options.text;\r\n delete options.text; // Delete this because Mithril will set set title twice\r\n options.class = 'retail-link ' + options.class;\r\n return m('a', options, anchorText);\r\n }\r\n\r\n return m('button', {\r\n type: 'button',\r\n class: [\r\n 'retail-link',\r\n options.class ? options.class : null\r\n ].join(' '),\r\n onclick: options.onclick || function (e) { e.preventDefault(); },\r\n }, options.text);\r\n };\r\n\r\n return Link;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Fireworks', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n\r\n\r\n var Firework = function (config) {\r\n var options = {\r\n scale: 1,\r\n left: '50%',\r\n top: '50%',\r\n offset: '500',\r\n fragments: 12,\r\n ...config\r\n };\r\n\r\n return m('.firework', {\r\n style: [\r\n 'transform: scale(' + options.scale + ')',\r\n 'left:' + options.left,\r\n 'top:' + options.top,\r\n '--animation-offset:' + options.offset + 'ms'\r\n ].join(';')\r\n },\r\n Array.apply(null, Array(options.fragments)).map(function (ignoreItem, index) {\r\n return m('.fragment.fragment-' + options.fragments + '--' + (index + 1), '');\r\n })\r\n );\r\n };\r\n\r\n var Fireworks = function (options) {\r\n return m('.retail-prize__fireworks-container', [\r\n m('h2.retail-prize__title', options.title),\r\n m('.retail-prize__amount', options.amount),\r\n new Firework({ scale: 0.5, left: '30%', top: '40%', offset: 400 }),\r\n new Firework({ scale: 0.4, left: '90%', top: '10%', offset: 400, fragments: 6 }),\r\n new Firework({ scale: 0.8, left: '50%', top: '65%', offset: 800, fragments: 8 }),\r\n new Firework({ scale: 0.35, left: '65%', top: '25%', offset: 800 }),\r\n new Firework({ scale: 0.5, left: '10%', top: '75%', offset: 800 }),\r\n new Firework({ scale: 0.6, left: '20%', top: '75%', offset: 1200 }),\r\n new Firework({ scale: 0.5, left: '45%', top: '20%', offset: 1200 }),\r\n new Firework({ scale: 0.4, left: '70%', top: '40%', offset: 1200, fragments: 8 }),\r\n new Firework({ scale: 0.6, left: '95%', top: '5%', offset: 1600 }),\r\n new Firework({ scale: 0.45, left: '35%', top: '35%', offset: 1600 }),\r\n new Firework({ scale: 0.65, left: '10%', top: '75%', offset: 1600, fragments: 6 }),\r\n new Firework({ scale: 0.6, left: '75%', top: '70%', offset: 2000, fragments: 8 }),\r\n new Firework({ scale: 1, left: '20%', top: '15%', offset: 2000 }),\r\n new Firework({ scale: 0.5, left: '40%', top: '80%', offset: 2000, fragments: 6 }),\r\n new Firework({ scale: 0.6, left: '90%', top: '70%', offset: 2400 }),\r\n new Firework({ scale: 0.6, left: '10%', top: '15%', offset: 2400, fragments: 8 }),\r\n new Firework({ scale: 0.8, left: '45%', top: '5%', offset: 2400 })\r\n ]);\r\n };\r\n\r\n return Fireworks;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n\r\n var Stepheader = function (config) {\r\n var options = {\r\n title: '',\r\n abstract: null,\r\n ...config\r\n };\r\n\r\n return m('.retail-step-header', [\r\n m('h1', {\r\n class: 'retail-step-header__title'\r\n }, m.trust(options.title)),\r\n options.abstract ?\r\n m('div', {\r\n class: 'retail-step-header__abstract'\r\n }, m.trust(options.abstract))\r\n : null\r\n ]);\r\n };\r\n\r\n return Stepheader;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n [\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Overlay'\r\n ],\r\n function (Overlay) {\r\n\r\n // Context:\r\n var ErrorOverlay = function (config) {\r\n var options = {\r\n title: 'Der skete en fejl',\r\n body: '',\r\n className: '',\r\n dismisable: true,\r\n dismissButton: 'OK',\r\n confirmButtonClass: null,\r\n ...config\r\n };\r\n\r\n return Overlay('retail-overlay-container', options);\r\n };\r\n\r\n return ErrorOverlay;\r\n });\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n\r\n var Loader = function (config) {\r\n var options = {\r\n loaderText: null,\r\n ...config\r\n };\r\n\r\n return m('div', {\r\n class: 'retail-loader-container'\r\n }, [\r\n m('svg.retail-loader', {\r\n viewBox: '0 0 50 50'\r\n }, m('circle.path', {\r\n cx: '25',\r\n cy: '25',\r\n r: '20',\r\n fill: 'none',\r\n 'stroke-width': '3'\r\n })),\r\n options.loaderText ? m('span.retail-loader__text', options.loaderText) : null\r\n ]);\r\n };\r\n\r\n return Loader;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n\r\n var ProgressBar = function (config) {\r\n var options = {\r\n progress: 0,\r\n ...config\r\n };\r\n\r\n return m('.retail-progress-bar',\r\n m('.retail-progress-bar__progress', {\r\n style: { width: options.progress + '%' }\r\n })\r\n );\r\n };\r\n\r\n return ProgressBar;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n], function (m) {\r\n\r\n var ErrorMessage = function (errors, options) {\r\n if (!errors) return;\r\n options = options || {};\r\n\r\n if (typeof errors === 'string') {\r\n errors = [errors];\r\n }\r\n\r\n return m('.retail-errors', errors.map(function (singleError) {\r\n return m('div', {\r\n class: [\r\n 'retail-errors__single-error',\r\n options.center ? 'retail-errors__single-error--center' : null\r\n ].join(' ')\r\n }, m.trust(singleError));\r\n }));\r\n };\r\n\r\n return ErrorMessage;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, Utils, Svg, ErrorMessage) {\r\n\r\n var InputField = function (options) {\r\n var hasFocus = options.hasFocus === options.name;\r\n\r\n return m('.retail-input-container', {\r\n 'data-uitest-id': 'retail-input-container' + (options.name ? '-' + options.name : '')\r\n }, [\r\n m('div', {\r\n class: [\r\n 'retail-input-field',\r\n options.class ? options.class : null,\r\n options.hasErrors ? 'has-errors' : null,\r\n options.model() || options.placeholder ? 'has-value' : null,\r\n hasFocus === options.name ? 'has-focus' : null,\r\n options.disabled ? 'is-disabled' : null,\r\n options.placeholder ? 'has-placeholder' : null\r\n ].join(' ')\r\n }, [\r\n m('input', {\r\n class: 'retail-input-field__input js-retail-input-field__input',\r\n type: options.type || 'text',\r\n name: options.name || '',\r\n id: options.id || options.name,\r\n disabled: options.disabled || false,\r\n oninput: function (e) {\r\n if (typeof options.oninput === 'function') {\r\n options.oninput(e);\r\n return;\r\n }\r\n\r\n options.model(e.target.value);\r\n },\r\n onkeyup: function (e) {\r\n if (typeof options.onkeyup === 'function') {\r\n options.onkeyup(e);\r\n }\r\n },\r\n onfocus: function (e) {\r\n if (Utils.isMobile() || Utils.isTabletDevice()) {\r\n document.body.classList.add('has-keyboard-open');\r\n }\r\n\r\n if (typeof options.onfocus === 'function') {\r\n options.onfocus(e);\r\n }\r\n },\r\n onblur: function (e) {\r\n if (Utils.isMobile() || Utils.isTabletDevice()) {\r\n // Fix issue regarding click on button submit while keyboard is open\r\n // If we don't delay the bodyClass change, then the button jumps to another position and the click event is never triggered\r\n setTimeout(function () {\r\n document.body.classList.remove('has-keyboard-open');\r\n }, 100);\r\n }\r\n\r\n if (typeof options.onblur === 'function') {\r\n options.onblur(e);\r\n }\r\n },\r\n onmouseleave: function (ev) {\r\n if (typeof options.onmouseleave === 'function') {\r\n options.onmouseleave(ev);\r\n }\r\n },\r\n placeholder: options.placeholder || options.labelText,\r\n value: options.model(),\r\n forceNumeric: options.forceNumeric,\r\n config: options.config ?? function (element) {\r\n if (options.setcaret) {\r\n if (element.selectionStart > options.setcaret) {\r\n element.setSelectionRange(options.setcaret, options.setcaret);\r\n }\r\n options.setcaret = null;\r\n }\r\n if (options.forceNumeric) {\r\n element.setAttribute('inputmode', 'numeric');\r\n element.setAttribute('pattern', '[0-9]*');\r\n }\r\n }\r\n }),\r\n options.labelText ? m('label', {\r\n class: 'retail-input-field__label',\r\n for: options.id || options.name,\r\n 'data-label-text': options.labelText\r\n }, m('span.retail-input-field__label-placeholder', options.labelText)) : null,\r\n options.noErrorIcon ? null : Svg('round-error', {\r\n class: 'retail-input-field__error-svg',\r\n })\r\n ]),\r\n hasFocus && options.helpText ? m('.retail-input-field__help-text', options.helpText) : null,\r\n options.hasErrors ? ErrorMessage(options.hasErrors) : null\r\n ]);\r\n };\r\n\r\n return InputField;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/ListField', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n], function (m, InputField) {\r\n\r\n var ListField = function (options) {\r\n return m('.retail-list-container', [\r\n m('.retail-list-field', [\r\n InputField({\r\n model: options.model,\r\n type: options.type,\r\n name: options.name,\r\n id: options.id,\r\n disabled: options.disabled,\r\n onkeyup: options.onkeyup,\r\n onfocus: options.onfocus,\r\n onblur: function (event) {\r\n setTimeout(function () {\r\n if (options.fieldInFocus() === options.name) {\r\n options.fieldInFocus(null); // reset focus selection\r\n options.validateField(event);\r\n m.redraw();\r\n }\r\n }, 250);\r\n },\r\n labelText: options.labelText,\r\n helpText: options.helpText,\r\n forceNumeric: options.forceNumeric,\r\n hasErrors: options.hasErrors,\r\n hasFocus: options.hasFocus\r\n }),\r\n options.list().length ? m('div', {\r\n class: [\r\n 'retail-list__items',\r\n options.fieldInFocus() && options.fieldInFocus().indexOf(options.name) === 0 ? 'retail-list__items--visible' : ''\r\n ].join(' ')\r\n }, options.list().map(function (item, index) {\r\n return m('button', {\r\n type: 'button',\r\n name: options.name + '-button--' + index,\r\n class: 'retail-list__item',\r\n 'data-hover-text': item.value + '-item-button',\r\n onkeyup: options.onkeyevent,\r\n onblur: function () {\r\n setTimeout(function () {\r\n if (document.activeElement.name === undefined || document.activeElement.name.indexOf(options.name) !== 0) {\r\n options.fieldInFocus(null); // reset focus selection\r\n m.redraw();\r\n }\r\n }, 250);\r\n },\r\n onclick: function (e) {\r\n e.preventDefault();\r\n options.setSelected(item.value);\r\n }\r\n }, item.value);\r\n })) : null\r\n ])\r\n ]);\r\n };\r\n\r\n return ListField;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/LimitField', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Link',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils'\r\n], function (m, InputField, Link, Svg, Utils) {\r\n\r\n var LimitField = function (options) {\r\n var model = options.model;\r\n\r\n this.onLimitInput = function (event) {\r\n var newValue = event.target.value.replace(/\\D/g, '');\r\n if (newValue.length > 0) {\r\n newValue = parseInt(newValue, 10);\r\n model.value(newValue);\r\n model.formatted(Utils.formatLimit(newValue));\r\n } else {\r\n model.value(null);\r\n model.formatted(null);\r\n }\r\n };\r\n\r\n this.onFocus = function () {\r\n var modelValue = model.value() ? Utils.formatLimit(model.value()) : '';\r\n model.formatted(modelValue);\r\n };\r\n\r\n this.onBlur = function () {\r\n if (model.value()) {\r\n model.formatted(Utils.formatCurrency(model.value()));\r\n } else {\r\n model.formatted(null);\r\n }\r\n };\r\n\r\n return m('.retail-limit-container', [\r\n m('div', {\r\n class: [\r\n 'retail-limit-field',\r\n options.hasErrors ? 'has-errors' : null,\r\n options.model || options.placeholder ? 'has-value' : null\r\n ].join(' '),\r\n 'data-state': model.state()\r\n }, [\r\n !options.alwaysVisible && model.state() === 'unset' ?\r\n m('.retail-limit__unset', [\r\n m('button', {\r\n type: 'button',\r\n class: 'retail-limit__button',\r\n 'aria-label': 'add-' + model.type() + '-button',\r\n onclick: function (e) {\r\n e.preventDefault();\r\n model.state('edit');\r\n model.hasFocus(true);\r\n }\r\n }, [\r\n m('span', [\r\n Svg('plus', { class: 'retail-file-upload__add-button--svg' }),\r\n ]),\r\n m('span', { class: 'retail-file-upload__button-text' }, options.buttonText)\r\n ]),\r\n ]) :\r\n m('.retail-limit__defined', [\r\n m('.retail-limit__amount-wrapper', [\r\n InputField({\r\n model: model.formatted,\r\n oninput: this.onLimitInput,\r\n onfocus: this.onFocus,\r\n onblur: this.onBlur,\r\n onmouseleave: function () {\r\n if (Utils.isMobile() || Utils.isTabletDevice()) {\r\n // Fix iOS bug by triggering the onmouseleave event\r\n document.activeElement.blur();\r\n }\r\n },\r\n setcaret: model.formatted() && options.postfix ? model.formatted().length - options.postfix.length : 1, // Default to index one to almost make it pretty when amount is null.\r\n forceNumeric: true,\r\n name: model.type(),\r\n type: 'text',\r\n labelText: options.limitText,\r\n placeholder: options.placeholder\r\n }),\r\n options.cannotDelete ? m('.retail-limit__space-placeholder') : null,\r\n !options.cannotDelete && model.state() !== 'delete' ? m('button', {\r\n type: 'button',\r\n class: 'retail-limit__button',\r\n 'aria-label': 'remove-' + model.type() + '-button',\r\n onclick: function (e) {\r\n e.preventDefault();\r\n if (model.state() === 'edit') {\r\n model.state('unset');\r\n model.value(null);\r\n model.formatted(null);\r\n model.hasErrors([]);\r\n } else {\r\n model.value(null);\r\n model.formatted(null);\r\n\r\n if (typeof options.confirm === 'function') {\r\n options.confirm();\r\n }\r\n }\r\n }\r\n }, [\r\n m('span', [\r\n Svg('trashbin', { class: 'retail-limit__icon' }),\r\n ])\r\n ]) : null\r\n ]),\r\n model.hasErrors().length > 0 ? m('.retail-limit__error-wrapper', [\r\n model.hasErrors().map(function (error) {\r\n return m('.retail-limit__error', error);\r\n })\r\n ]) : null,\r\n model.state() === 'delete' ? m('.retail-limit__delete-wrapper', [\r\n m('.retail-limit__delete', [\r\n m('span', options.stateText),\r\n Link({\r\n text: options.cancelDelete,\r\n onclick: function () {\r\n model.state('revert');\r\n if (typeof options.confirm === 'function') {\r\n options.confirm();\r\n }\r\n }\r\n })\r\n ])\r\n ]) : null,\r\n model.state() !== 'edit' && model.plannedValue() ?\r\n m('.retail-limit__planned-wrapper', [\r\n m('.retail-limit__planned', [\r\n m('span', options.stateText),\r\n Link({\r\n text: options.cancelChange,\r\n onclick: function () {\r\n model.state('revert');\r\n\r\n if (typeof options.confirm === 'function') {\r\n options.confirm();\r\n }\r\n }\r\n })\r\n ])\r\n ]) : null\r\n ]),\r\n model.isOperator() ?\r\n m('.retail-limit__operator-wrapper', [\r\n m('.retail-limit__operator', m.trust(options.operatorText))\r\n ]) : null\r\n ]),\r\n ]);\r\n };\r\n\r\n return LimitField;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Dropdown', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, ErrorMessage) {\r\n\r\n var Dropdown = function (options) {\r\n var isUntouched = options.model() > -1 || (options.model() && options.model().toString().length);\r\n\r\n return m('div', [\r\n m('div', {\r\n class: [\r\n 'retail-dropdown-container',\r\n 'has-value',\r\n options.hasErrors ? 'has-errors' : null,\r\n ].join(' ')\r\n }, [\r\n m('select', {\r\n class: [\r\n 'retail-dropdown__select',\r\n isUntouched ? 'retail-dropdown__select--untouched' : ''\r\n ].join(' '),\r\n name: options.name || '',\r\n id: options.id || options.name,\r\n onchange: function (e) {\r\n options.model(options.choices[this.selectedIndex - (options.placeholder ? 1 : 0)].Id);\r\n if (options.onchange) {\r\n options.onchange(e);\r\n }\r\n }\r\n }, [\r\n options.placeholder ? m('option', {\r\n selected: isUntouched,\r\n hidden: true,\r\n disabled: true\r\n }, options.placeholder) : null,\r\n options.choices.map(function (choice) {\r\n return m('option', {\r\n value: choice.Id,\r\n selected: choice.Id === options.model()\r\n }, choice.Name);\r\n })\r\n ]),\r\n isUntouched ? m('label', {\r\n class: 'retail-dropdown__label',\r\n for: options.id || options.name,\r\n 'data-label-text': options.labelText\r\n }, m('span.retail-input-field__label-placeholder', m.trust(options.labelText))) : null\r\n ]),\r\n options.hasErrors ? ErrorMessage(options.hasErrors) : null\r\n ]);\r\n };\r\n\r\n return Dropdown;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/FileDropdown', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/FileUploadModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, Utils, FileUploadModel, ErrorMessage) {\r\n\r\n var FileDropdown = function (options) {\r\n return m('div', [\r\n m('div', {\r\n class: [\r\n 'retail-file-dropdown-container',\r\n options.files().length > 0 ? 'has-value' : '',\r\n options.hasErrors ? 'has-errors' : null,\r\n ].join(' ')\r\n }, [\r\n m('select', {\r\n class: ['retail-file-dropdown__select', options.files().length > 0 ? 'retail-file-dropdown__select-additional' : ''].join(' '),\r\n name: options.name || '',\r\n id: options.id || options.name,\r\n onchange: function () {\r\n var visiblePurposes = options.purposes.filter(function (purpose) {\r\n return purpose.isVisible();\r\n });\r\n var selectedPurpose = visiblePurposes[this.selectedIndex - 1];\r\n var newFile = new FileUploadModel(selectedPurpose, options.uploadSettings, options.dictionary, true);\r\n options.files().push(newFile);\r\n }\r\n },\r\n m('option', { value: '', hidden: 'hidden', selected: 'selected', disabled: 'disabled' }, options.files().length > 0 ? options.dictionary('UploadDocuments/UploadMoreFiles') : options.dictionary('UploadDocuments/SelectPurpose')),\r\n options.purposes\r\n .filter(function (purpose) {\r\n return purpose.isVisible();\r\n })\r\n .map(function (purpose) {\r\n return m('option', {\r\n value: purpose.purpose()\r\n }, purpose.header());\r\n }))\r\n ]),\r\n options.hasErrors ? ErrorMessage(Utils.getValidationMessage('noPurposeSelected')) : null\r\n ]);\r\n };\r\n\r\n return FileDropdown;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/FileUpload', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, Utils, Svg, ErrorMessage) {\r\n\r\n var FileUpload = function (model, index, validate, add, remove, settings, dictionary) {\r\n var id = 'retail-file-upload--' + index;\r\n\r\n return m('div', [\r\n !model.purpose().isActive() ?\r\n m('button', {\r\n class: ['retail-file-upload--inactive', 'retail-button', 'has-text'].join(' '),\r\n onclick: function (e) {\r\n e.preventDefault();\r\n model.purpose().isActive(true);\r\n },\r\n 'aria-label': 'activate-' + model.purpose().purpose() + '-button',\r\n 'data-hover-text': model.purpose().purpose()\r\n }, [\r\n m('span', { class: 'retail-button__text' }, model.purpose().purpose())]) :\r\n m('div', {\r\n class: [\r\n 'retail-file-upload',\r\n model.errors().length > 0 ? 'has-errors' : null\r\n ].join(' ')\r\n }, [\r\n model.closeable() ? m('button', {\r\n type: 'button',\r\n class: ['retail-file-upload__close-button'],\r\n onclick: function (e) {\r\n e.preventDefault();\r\n remove(model);\r\n },\r\n 'aria-label': 'close-button'\r\n }, [\r\n m('span', [\r\n Svg('close', { class: 'retail-file-upload__close-button--svg' })\r\n ])\r\n ]) : null,\r\n m('div.retail-file-upload__header', [\r\n m('span', model.purpose().header()),\r\n model.purpose().isRequired() ? null : m('span.retail-file-upload__header-optional', dictionary('UploadDocuments/Optional'))\r\n ]),\r\n m('div.retail-file-upload__description', model.purpose().description()),\r\n !model.file() ? m('label', {\r\n class: 'retail-file-upload__button',\r\n for: id,\r\n 'data-label-text': 'upload-' + model.purpose().purpose() + '-button'\r\n }, [\r\n m('span', [\r\n Svg('plus', { class: 'retail-file-upload__add-button--svg' })\r\n ]),\r\n m('span', { class: 'retail-file-upload__button-text' }, dictionary('UploadDocuments/AddFile'))\r\n ]) : m('div', { class: 'retail-file-upload__details' }, [\r\n m('div', { class: 'retail-file-upload__details-column--1' }, [\r\n m('div', { class: 'retail-file-upload__details-name' }, Utils.prettifyFileName(model.file().name)),\r\n m('div', { class: 'retail-file-upload__details-type' }, dictionary('UploadDocuments/FileType', { type: Utils.prettifyFileType(model.file().name) }))\r\n ]),\r\n m('div', { class: 'retail-file-upload__details-column--2' }, [\r\n m('div', { class: 'retail-file-upload__details-size-label' }, dictionary('UploadDocuments/FileSize')),\r\n m('div', { class: 'retail-file-upload__details-size-value' }, Utils.prettifyFileSize(model.file().size))\r\n ]),\r\n m('div', { class: 'retail-file-upload__details-column--3' },\r\n m('button', {\r\n type: 'button',\r\n class: 'retail-file-upload__details-remove',\r\n onclick: function (e) {\r\n e.preventDefault();\r\n model.file(null);\r\n model.errors([]);\r\n document.getElementById(id).value = null;\r\n }\r\n }, m('span', [\r\n Svg('trashbin', { class: 'retail-file-upload__details-remove-icon' })\r\n ]))\r\n )\r\n ]),\r\n m('input', {\r\n class: 'retail-file-upload__input',\r\n type: 'file',\r\n accept: settings.AllowedMimeTypes,\r\n name: model.purpose().header(),\r\n id: id,\r\n onchange: function (event) {\r\n var newFile = event.target.files[0];\r\n add(newFile, index);\r\n validate();\r\n }\r\n }),\r\n model.errors().length > 0 ? model.errors().map(function (error) {\r\n return ErrorMessage(error);\r\n }) : null// TODO: Add dictionary text here for each input type\r\n ])\r\n ]);\r\n };\r\n\r\n return FileUpload;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, ErrorMessage) {\r\n\r\n var Checkbox = function (options) {\r\n return [\r\n m('div', {\r\n class: [\r\n 'retail-checkbox-container',\r\n options.hasErrors ? 'has-errors' : null,\r\n options.isDisabled ? 'is-disabled' : null,\r\n options.class ? options.class : null\r\n ].join(' ')\r\n }, [\r\n m('input', {\r\n type: 'checkbox',\r\n class: 'retail-checkbox__input',\r\n name: options.name || '',\r\n id: options.id || options.name,\r\n checked: options.model(),\r\n disabled: options.isDisabled || false,\r\n onchange: function (e) {\r\n var checked = options.model();\r\n options.model(!checked);\r\n\r\n if (options.onchange) {\r\n options.onchange(e);\r\n }\r\n }\r\n }),\r\n m('label', {\r\n class: [\r\n 'retail-checkbox__label',\r\n options.labelClass ? options.labelClass : null\r\n ].join(' '),\r\n for: options.id || options.name\r\n }, m.trust(options.labelText))\r\n ]),\r\n options.hasErrors ? ErrorMessage(options.hasErrors) : null\r\n ];\r\n };\r\n\r\n return Checkbox;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/RadioButton', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, ErrorMessage) {\r\n\r\n var RadioButton = function (options) {\r\n return [\r\n m('div', {\r\n class: [\r\n 'retail-radio-button-container',\r\n options.hasErrors ? 'has-errors' : null,\r\n options.isDisabled ? 'is-disabled' : null,\r\n options.class ? options.class : null\r\n ].join(' '),\r\n 'data-uitest-id': 'retail-radio-button-container' + (options.name ? '-' + options.name : '')\r\n }, [\r\n m('input', {\r\n type: 'radio',\r\n class: 'retail-radio-button__input',\r\n name: options.name || '',\r\n id: options.id || options.name,\r\n checked: options.model(),\r\n disabled: options.isDisabled || false,\r\n onkeyup: function (ev) {\r\n if (ev.keyCode === 32 || ev.key === 'Enter') {\r\n options.model(true);\r\n if (options.onchange) {\r\n options.onchange(ev);\r\n }\r\n }\r\n },\r\n onchange: function (ev) {\r\n options.model(true);\r\n\r\n if (options.onchange) {\r\n options.onchange(ev);\r\n }\r\n },\r\n 'data-uitest-id': 'retail-radio-button__input' + (options.name ? '-' + options.name : '')\r\n }),\r\n m('label', {\r\n class: [\r\n 'retail-radio-button__label',\r\n options.labelClass ? options.labelClass : null\r\n ].join(' '),\r\n for: options.id || options.name\r\n }, m.trust(options.labelText))\r\n ]),\r\n options.hasErrors ? ErrorMessage(options.hasErrors) : null\r\n ];\r\n };\r\n\r\n return RadioButton;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/IconButton', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, Utils, Svg) {\r\n\r\n var IconButton = function (config) {\r\n var options = {\r\n icon: 'arrow_left',\r\n onclick: null,\r\n class: null,\r\n ...config\r\n };\r\n\r\n return m('button', {\r\n class: [\r\n 'retail-icon-button',\r\n options.class\r\n ].join(' '),\r\n type: 'button',\r\n onclick: function (e) {\r\n if (options.onclick) {\r\n options.onclick(e);\r\n } else {\r\n var pushVirtualPageCallback = function () {\r\n Utils.pushVirtualPage(window.location.hash, (window.location.pathname.replace(/-/g, '_') + window.location.hash), window.location.hash);\r\n window.removeEventListener('popstate', pushVirtualPageCallback);\r\n };\r\n window.addEventListener('popstate', pushVirtualPageCallback);\r\n window.history.back();\r\n }\r\n },\r\n title: options.title || ''\r\n }, Svg(options.icon, {\r\n class: 'retail-icon-button__icon'\r\n }));\r\n };\r\n\r\n return IconButton;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton', [\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/IconButton'\r\n], function (IconButton) {\r\n\r\n var BackButton = function (config) {\r\n var options = {\r\n icon: 'arrow_left',\r\n title: 'Tilbage',\r\n onclick: null,\r\n class: 'retail-back-button',\r\n ...config\r\n };\r\n\r\n return IconButton(options);\r\n };\r\n\r\n return BackButton;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg'\r\n], function (m, Svg) {\r\n\r\n var InfoRow = function (config) {\r\n var options = {\r\n class: '',\r\n labelText: null,\r\n subLabelText: null,\r\n value: null,\r\n horizontal: false,\r\n clickable: typeof config.onclick === 'function',\r\n clickableIcon: 'arrow_right',\r\n testId: null,\r\n ...config\r\n };\r\n\r\n var selector = options.clickable ? 'button' : 'div';\r\n\r\n return m(selector, {\r\n 'data-uitest-id': options.testId ? options.testId : '',\r\n class: [\r\n 'retail-info-row',\r\n options.class ? options.class : null,\r\n options.clickable ? 'is-clickable' : null,\r\n options.horizontal ? 'retail-info-row--horizontal' : null\r\n ].join(' '),\r\n onclick: function (e) {\r\n if (options.clickable) {\r\n e.preventDefault();\r\n options.onclick();\r\n }\r\n }\r\n }, [\r\n options.labelText ? m('span.retail-info-row__label', [\r\n m('span.retail-info-row__label-text', options.labelText),\r\n options.subLabelText ? m('span.retail-info-row__label-subtext', options.subLabelText) : null\r\n ]) : null,\r\n options.value ? m('span.retail-info-row__value', m.trust(options.value)) : null,\r\n options.clickable ? Svg(options.clickableIcon, { class: 'retail-info-row__svg' }) : null\r\n ]);\r\n };\r\n\r\n\r\n\r\n return InfoRow;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/NotificationDialog', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/IconButton'\r\n], function (m, Svg, IconButton) {\r\n\r\n var NotificationDialog = function (config) {\r\n var options = {\r\n class: null,\r\n type: 'info',\r\n title: '',\r\n closeIcon: 'close',\r\n onClose: null,\r\n ...config\r\n };\r\n\r\n return m('div', {\r\n class: [\r\n 'retail-notification-dialog',\r\n 'retail-notification-dialog--' + options.type,\r\n options.class ? options.class : null\r\n ].join(' '),\r\n }, [\r\n Svg(options.type, {\r\n class: 'retail-notification-dialog__icon'\r\n }),\r\n m('.retail-notification-dialog__content', options.title),\r\n IconButton({\r\n class: 'retail-notification-dialog__close-icon',\r\n icon: options.closeIcon,\r\n onclick: function () {\r\n if (typeof options.onClose === 'function') {\r\n options.onClose();\r\n }\r\n }\r\n })\r\n ]);\r\n };\r\n\r\n return NotificationDialog;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/RetailWallet', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n\r\n var RetailWallet = function (options) {\r\n return m('.retail-wallet',\r\n m('h2.retail-wallet__title', options.title),\r\n m('.retail-wallet__amount', m.trust(options.amount)),\r\n m('.retail-wallet__amount-notice', options.amountNotice),\r\n m('.retail-wallet__pickup-notice', m.trust(options.pickupNotice))\r\n );\r\n };\r\n\r\n return RetailWallet;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/GameHistoryNavigation', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/RouteParam',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Link',\r\n], (m, RouteParam, Utils, Link) => {\r\n\r\n const GameHistoryNavigation = (controller) => {\r\n const page = RouteParam('page')() || controller.settings?.page || 1;\r\n const period = RouteParam('period')() || controller.settings?.period || 365;\r\n const offset = RouteParam('offset')() || controller.settings?.offset || 1;\r\n const type = RouteParam('type')() || 'overblik';\r\n\r\n return m('.retail-tabs', [\r\n\r\n Link({\r\n onclick: () => {\r\n Utils.pushGaEventOnPageRedirect('sikkert_spil', 'cta_click', 'aktive spil');\r\n m.route(`/${page}/${period}/${offset}/aktive`);\r\n },\r\n class: type === 'aktive' && 'is-active',\r\n text: controller.d('List/ActiveGamesLabel')\r\n }),\r\n\r\n Link({\r\n onclick: () => {\r\n Utils.pushGaEventOnPageRedirect('sikkert_spil', 'cta_click', 'afsluttede spil');\r\n m.route(`/${page}/${period}/${offset}/afsluttede`);\r\n },\r\n class: type === 'afsluttede' && 'is-active',\r\n text: controller.d('List/FinishedGamesLabel')\r\n }),\r\n\r\n Link({\r\n onclick: () => {\r\n Utils.pushGaEventOnPageRedirect('sikkert_spil', 'cta_click', 'overblik');\r\n m.route('/overblik/');\r\n },\r\n class: type === 'overblik' && 'is-active',\r\n text: controller.d('List/OverviewLabel')\r\n })\r\n\r\n ]);\r\n };\r\n\r\n return GameHistoryNavigation;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Name', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, ProgressBar, BackButton, InputField, Button, StepHeader) {\r\n\r\n var StepName = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep ? controller.routeToPrevStep : null\r\n })) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('Name/PageTitle'),\r\n abstract: controller.d('Name/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, controller.model().nameIsSet() ? m('i', {\r\n class: 'info-message'\r\n }, controller.d('Name/NameAlreadyValidated')) : [\r\n InputField({\r\n model: userModel.firstName,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.firstName(),\r\n name: 'firstName',\r\n labelText: controller.d('Name/LabelFirstName')\r\n }),\r\n InputField({\r\n model: userModel.lastName,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.lastName(),\r\n name: 'lastName',\r\n labelText: controller.d('Name/LabelLastName')\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Name/SubmitButton'),\r\n onclick: controller.submit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return StepName;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Address', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ListField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Dropdown',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, ProgressBar, BackButton, ListField, InputField, Dropdown, Button, StepHeader) {\r\n\r\n var StepAddress = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep ? controller.routeToPrevStep : null\r\n })) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('Address/PageTitle'),\r\n abstract: controller.d('Address/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.fields', [\r\n ListField({\r\n model: userModel.street,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupAddress,\r\n hasErrors: errors.street(),\r\n hasFocus: controller.fieldInFocus(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n controller.selectAddressFromSelection(value);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n controller.selectAddressFromSelection(event.target.innerText);\r\n }\r\n },\r\n name: 'street',\r\n labelText: controller.d('Address/LabelStreet'),\r\n list: controller.addresses\r\n }),\r\n InputField({\r\n model: userModel.houseNumber,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.houseNumber(),\r\n name: 'houseNumber',\r\n labelText: controller.d('Address/LabelHouseNumber')\r\n }),\r\n ListField({\r\n model: userModel.zipCode,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupZip,\r\n hasErrors: errors.zipCode(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n userModel.zipCode(value);\r\n controller.selectCityFromZip(value);\r\n controller.zips([]);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n userModel.zipCode(event.target.innerText);\r\n controller.selectCityFromZip(event.target.innerText);\r\n controller.fieldInFocus(null);\r\n }\r\n },\r\n name: 'zipCode',\r\n type: 'number',\r\n labelText: controller.d('Address/LabelZipCode'),\r\n list: controller.zips\r\n }),\r\n ListField({\r\n model: userModel.city,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupCity,\r\n hasErrors: errors.city(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n userModel.city(value);\r\n controller.cities([]);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n userModel.city(event.target.innerText);\r\n controller.fieldInFocus(null);\r\n }\r\n },\r\n name: 'city',\r\n labelText: controller.d('Address/LabelCity'),\r\n list: controller.cities\r\n }),\r\n Dropdown({\r\n model: userModel.country,\r\n choices: controller.model().availableCountries(),\r\n hasErrors: errors.country(),\r\n name: 'country',\r\n labelText: controller.d('Address/LabelCountry')\r\n })\r\n ]),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Address/SubmitButton'),\r\n onclick: controller.submit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepAddress;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Email', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, ProgressBar, BackButton, InputField, Checkbox, Button, StepHeader) {\r\n\r\n var StepEmail = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n var showRetailMarketingTerms = controller.hasOwnProperty('showRetailMarketingTermsInEmail') && controller.showRetailMarketingTermsInEmail();\r\n var showEmailPermissionTermsInEmail = controller.hasOwnProperty('showEmailPermissionTermsInEmail') && controller.showEmailPermissionTermsInEmail();\r\n var showAppPermissionTerms = controller.hasOwnProperty('showAppPermissionTerms') && controller.showAppPermissionTerms();\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep ? controller.routeToPrevStep : null\r\n })) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('Email/PageTitle'),\r\n abstract: controller.d('Email/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n InputField({\r\n model: userModel.email,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.email(),\r\n name: 'email',\r\n type: 'email',\r\n labelText: controller.d('Email/LabelEmail')\r\n }),\r\n showRetailMarketingTerms ?\r\n Checkbox({\r\n model: userModel.marketingTerms,\r\n name: 'marketingTerms',\r\n labelText: controller.d('Email/LabelMarketingTerms'),\r\n }) : null,\r\n showEmailPermissionTermsInEmail ?\r\n Checkbox({\r\n model: userModel.emailPermission,\r\n name: 'showEmailPermissionTermsInEmail',\r\n labelText: controller.d('Email/LabelOnlineMarketingTerms'),\r\n }) : null,\r\n showAppPermissionTerms ?\r\n Checkbox({\r\n model: userModel.appPermission,\r\n name: 'appPermission',\r\n labelText: controller.d('Email/LabelPushPermissionsTerms'),\r\n }) : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Email/SubmitButton'),\r\n onclick: controller.submit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return StepEmail;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PINCode', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, Render, ProgressBar, BackButton, InputField, StepHeader, ErrorMessage) {\r\n\r\n var StepPINCode = function (controller) {\r\n let render = Render();\r\n let errors = controller.model().errors;\r\n let dictionaryKey = controller.currentStep().dictionaryKey;\r\n let userModel = controller.model().fields;\r\n let maskInput = typeof controller.maskPincodeInput === 'function' ? controller.maskPincodeInput() : false;\r\n let fieldSuffix = '';\r\n\r\n if (controller.currentStep().route === '/repeat-pincode') {\r\n fieldSuffix = 'Confirm';\r\n }\r\n\r\n const onkeyupHandler = (ev, fieldName, cb) => {\r\n const val = ev.target.value.trim();\r\n\r\n if (ev.key === 'Backspace') {\r\n let number = fieldName.slice(3, 4);\r\n let prevNumber = number - 1;\r\n const prevFieldName = fieldName.replace(number, prevNumber);\r\n\r\n if (typeof userModel[prevFieldName] === 'function') {\r\n userModel[prevFieldName](null);\r\n }\r\n\r\n if (typeof userModel[fieldName] === 'function') {\r\n userModel[fieldName](null);\r\n }\r\n\r\n controller.model().clearErrors();\r\n\r\n focusField(prevFieldName);\r\n return;\r\n }\r\n\r\n if (isNaN(val) || !val.length) {\r\n userModel[fieldName]('');\r\n return;\r\n }\r\n\r\n if (val.length > 1) {\r\n const cappedValue = val.substring(0, 1);\r\n userModel[fieldName](cappedValue);\r\n }\r\n\r\n if (typeof cb === 'function') {\r\n cb();\r\n }\r\n };\r\n\r\n const isFieldDisabled = (fieldName) => {\r\n if (!userModel[fieldName]()?.length) {\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const onFocusHandler = (ev) => {\r\n const fieldName = ev.target.name;\r\n\r\n if (!fieldName) {\r\n return;\r\n }\r\n\r\n const fieldNumber = parseInt(fieldName.slice(3, 4), 10);\r\n const numberOfFields = document.querySelectorAll('.js-retail-input-field__input').length;\r\n\r\n for (var i = fieldNumber; i <= numberOfFields; i++) {\r\n userModel['pin' + i + fieldSuffix]('');\r\n }\r\n };\r\n\r\n const focusField = (fieldName) => {\r\n if (typeof controller.fieldInFocus === 'function') {\r\n controller.fieldInFocus(fieldName);\r\n }\r\n\r\n const $field = document.querySelector(`[name=${fieldName}]`);\r\n\r\n if ($field) {\r\n $field.focus();\r\n }\r\n };\r\n\r\n render.ready.then((nodes) => {\r\n var context = nodes['pin1' + fieldSuffix].context;\r\n if (nodes['pin1' + fieldSuffix].rendered && !context.focusOnce) {\r\n focusField('pin1' + fieldSuffix);\r\n context.focusOnce = true;\r\n }\r\n });\r\n\r\n return m('div', {\r\n 'ui-test-id': 'page-' + controller.currentStep().route.replace('/', '')\r\n }, [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep\r\n })) : null,\r\n m('.retail-page__content', {\r\n class: controller.hideBackButton() ? 'retail-page__no-progress' : ''\r\n },\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(`${dictionaryKey}/PageTitle`),\r\n abstract: controller.d(`${dictionaryKey}/PageDescription`)\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, m('.retail-pincode-input-container', [\r\n InputField({\r\n model: userModel['pin1' + fieldSuffix],\r\n onkeyup: (ev) => onkeyupHandler(ev, 'pin1' + fieldSuffix, () => controller.validateField(ev, focusField('pin2' + fieldSuffix))),\r\n onfocus: (ev) => onFocusHandler(ev),\r\n hasErrors: errors['pin1' + fieldSuffix](),\r\n name: 'pin1' + fieldSuffix,\r\n type: maskInput ? 'password' : 'tel',\r\n forceNumeric: true,\r\n noErrorIcon: true,\r\n class: 'retail-input-field--pincode',\r\n config: render.depend('pin1' + fieldSuffix)\r\n }),\r\n InputField({\r\n model: userModel['pin2' + fieldSuffix],\r\n onkeyup: (ev) => onkeyupHandler(ev, 'pin2' + fieldSuffix, () => controller.validateField(ev, focusField('pin3' + fieldSuffix))),\r\n onfocus: (ev) => onFocusHandler(ev),\r\n hasErrors: errors['pin2' + fieldSuffix](),\r\n name: 'pin2' + fieldSuffix,\r\n type: maskInput ? 'password' : 'tel',\r\n forceNumeric: true,\r\n noErrorIcon: true,\r\n class: 'retail-input-field--pincode',\r\n disabled: isFieldDisabled('pin1' + fieldSuffix)\r\n }),\r\n InputField({\r\n model: userModel['pin3' + fieldSuffix],\r\n onkeyup: (ev) => onkeyupHandler(ev, 'pin3' + fieldSuffix, () => controller.validateField(ev, focusField('pin4' + fieldSuffix))),\r\n onfocus: (ev) => onFocusHandler(ev),\r\n hasErrors: errors['pin3' + fieldSuffix](),\r\n name: 'pin3' + fieldSuffix,\r\n type: maskInput ? 'password' : 'tel',\r\n forceNumeric: true,\r\n noErrorIcon: true,\r\n class: 'retail-input-field--pincode',\r\n disabled: isFieldDisabled('pin2' + fieldSuffix)\r\n }),\r\n InputField({\r\n model: userModel['pin4' + fieldSuffix],\r\n onkeyup: (ev) => onkeyupHandler(ev, 'pin4' + fieldSuffix, () => controller.mergeAndValidateField(ev, controller.submit)),\r\n onfocus: (ev) => onFocusHandler(ev),\r\n hasErrors: errors['pin4' + fieldSuffix](),\r\n name: 'pin4' + fieldSuffix,\r\n type: maskInput ? 'password' : 'tel',\r\n forceNumeric: true,\r\n noErrorIcon: true,\r\n class: 'retail-input-field--pincode',\r\n disabled: isFieldDisabled('pin3' + fieldSuffix)\r\n }),\r\n ]),\r\n errors?.pincode() ? ErrorMessage(errors.pincode()) : null\r\n )\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepPINCode;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Phone', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, ProgressBar, BackButton, InputField, Button, StepHeader) {\r\n\r\n var StepPhone = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep ? controller.routeToPrevStep : null\r\n })) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('Phone/PageTitle'),\r\n abstract: controller.d('Phone/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n InputField({\r\n model: userModel.phone,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.phone(),\r\n name: 'phone',\r\n type: 'tel',\r\n labelText: controller.d('Phone/LabelPhone')\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Phone/SubmitButton'),\r\n onclick: controller.submit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return StepPhone;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PNumber', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, Utils, ProgressBar, BackButton, InputField, Checkbox, Button, StepHeader) {\r\n\r\n var StepPNumber = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n var pNumber = controller.model().fields.cprNumber;\r\n\r\n this.isInvalid = function () {\r\n errors.cprNumber(controller.d('PNumber/InvalidPNumber'));\r\n };\r\n\r\n this.onKeyup = function (event) {\r\n var newValue = event.target.value.replace(/\\D/g, '');\r\n if (newValue.length > 0) {\r\n if (newValue.length > 9) {\r\n controller.validateField(event);\r\n } else {\r\n controller.buttonIsDisabled(true);\r\n }\r\n } else {\r\n pNumber(null);\r\n }\r\n }.bind(this);\r\n\r\n\r\n this.onFocus = function (event) {\r\n controller.setFieldFocus(event);\r\n var newValue = event.target.value.replace(/\\D/g, '');\r\n if (newValue.length > 0) {\r\n errors.cprNumber(null);\r\n pNumber(newValue);\r\n }\r\n };\r\n\r\n this.validatePNumber = function (pNumber) {\r\n pNumber = pNumber.replace(/\\D/g, '');\r\n // pNumber validates if the first 6 digits is an actually birthday, taking leap year and other special dates into consideration. The 3 remaining characters just has to be digits.\r\n var pRegEx = /^(((0[1-9]|[12][0-9]|30)(0[13-9]|1[012])|31(0[13578]|1[02])|(0[1-9]|1[0-9]|2[0-8])02)[0-9]{2}|2902((([2468][048]|[02468][48])|[13579][26])|([13579][26]|[02468][048]|0[0-9]|1[0-6])00))(-|\\s)?\\d{3}/;\r\n return pRegEx.test(pNumber);\r\n };\r\n\r\n this.onBlur = function (event) {\r\n var newValue = event.target.value.replace(/\\D/g, '');\r\n\r\n if (newValue.length > 0) {\r\n pNumber(Utils.formatFaroeseId(newValue));\r\n }\r\n if (this.validatePNumber(newValue)) {\r\n controller.validateField(event);\r\n } else {\r\n this.isInvalid();\r\n }\r\n\r\n if (controller.fieldInFocus() === event.target.name) {\r\n controller.fieldInFocus(null);\r\n }\r\n }.bind(this);\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('PNumber/PageTitle'),\r\n abstract: controller.d('PNumber/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n InputField({\r\n model: userModel.cprNumber,\r\n onkeyup: this.onKeyup,\r\n onblur: this.onBlur,\r\n onfocus: this.onFocus,\r\n hasErrors: errors.cprNumber(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'cprNumber',\r\n forceNumeric: true,\r\n type: 'text',\r\n labelText: controller.d('PNumber/LabelPNumber'),\r\n helpText: controller.d('PNumber/HelpTextPNumber')\r\n }),\r\n Checkbox({\r\n model: userModel.acceptTermsAndConditions,\r\n labelText: controller.d('PNumber/LabelTermsAndConditions'),\r\n name: 'acceptTermsAndConditions',\r\n onchange: controller.validateField,\r\n hasErrors: errors.acceptTermsAndConditions()\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('PNumber/SubmitButton'),\r\n onclick: function () {\r\n if (userModel.cprNumber() && userModel.cprNumber().length === 10 && this.validatePNumber(userModel.cprNumber())) {\r\n controller.submit();\r\n } else {\r\n this.isInvalid();\r\n }\r\n }.bind(this)\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return StepPNumber;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Username', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, ProgressBar, BackButton, InputField, Button, StepHeader) {\r\n\r\n var StepUsername = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('Username/PageTitle'),\r\n abstract: controller.d('Username/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, controller.model().usernameIsSet() ?\r\n m('div', controller.d('Username/UsernameIsAlreadySet'))\r\n : [\r\n InputField({\r\n model: userModel.username,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.username(),\r\n name: 'username',\r\n labelText: controller.d('Username/LabelUsername'),\r\n helpText: controller.d('Username/HelpTextUsername')\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Username/SubmitButton'),\r\n onclick: controller.createUsername\r\n })\r\n )\r\n ]\r\n )\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepUsername;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/AlreadyCreated', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, Button, StepHeader) {\r\n\r\n var StepAlreadyCreated = function (controller) {\r\n var userModel = controller.model().fields;\r\n var dictionaryKey = controller.isRetailIpad() ? 'AlreadyCreated/RetailIpad/' : 'AlreadyCreated/';\r\n\r\n return m('.retail-page__content', m('.retail-page__row', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n StepHeader({\r\n title: controller.d(dictionaryKey + 'PageTitle', { NAME: userModel.firstName() }),\r\n abstract: controller.d(dictionaryKey + 'PageDescription', { NAME: userModel.firstName() })\r\n }),\r\n m('.retail-button-container', [\r\n Button({\r\n class: 'retail-button--secondary',\r\n buttonText: controller.d('AlreadyCreated/CancelButton'),\r\n onclick: function () {\r\n window.location.href = controller.loginPage();\r\n }\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.d('AlreadyCreated/SubmitButton'),\r\n onclick: controller.receiptContent().callback\r\n })\r\n )\r\n ])\r\n ])\r\n ]));\r\n };\r\n\r\n return StepAlreadyCreated;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Password', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, ProgressBar, BackButton, InputField, Button, StepHeader) {\r\n\r\n var StepPassword = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n var dictionaryKey = 'Password/';\r\n\r\n if (controller.createUsernameFlow()) {\r\n dictionaryKey = 'Username/Password/';\r\n }\r\n\r\n controller.verifyUsername();\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(dictionaryKey + 'PageTitle'),\r\n abstract: controller.d(dictionaryKey + 'PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n !userModel.nemIdSignedIn() ?\r\n InputField({\r\n model: userModel.currentPassword,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.currentPassword(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'currentPassword',\r\n type: 'password',\r\n labelText: controller.d('Password/LabelCurrentPassword')\r\n })\r\n : null,\r\n InputField({\r\n model: userModel.password,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.password(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'password',\r\n type: 'password',\r\n labelText: controller.d('Password/LabelPassword'),\r\n helpText: controller.d('Password/HelpTextPassword')\r\n }),\r\n InputField({\r\n model: userModel.repeatPassword,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.repeatPassword(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'repeatPassword',\r\n type: 'password',\r\n labelText: controller.d('Password/LabelPasswordConfirmation'),\r\n helpText: controller.d('Password/HelpTextPasswordConfirmation')\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d(dictionaryKey + 'SubmitButton'),\r\n onclick: controller.submit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepPassword;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ForgotPassword', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, InputField, BackButton, Button, StepHeader) {\r\n\r\n var StepForgotPassword = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n m('.retail-page__button-container', BackButton()),\r\n m('.retail-page__content',\r\n controller.tokenIsValid() ?\r\n m('.retail-page__row has-rows-2', [\r\n m('.retail-page__column retail-page__column--1', StepHeader({\r\n title: controller.d('Password/PageTitle'),\r\n abstract: controller.d('Password/PageDescription')\r\n })\r\n ),\r\n m('.retail-page__column retail-page__column--2', [\r\n InputField({\r\n model: userModel.password,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.password(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'password',\r\n type: 'password',\r\n labelText: controller.d('Password/LabelPassword'),\r\n helpText: controller.d('Password/HelpTextPassword')\r\n }),\r\n InputField({\r\n model: userModel.repeatPassword,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.repeatPassword(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'repeatPassword',\r\n type: 'password',\r\n labelText: controller.d('Password/LabelPasswordConfirmation'),\r\n helpText: controller.d('Password/HelpTextPasswordConfirmation')\r\n }),\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Password/SubmitButton'),\r\n onclick: controller.submit\r\n })\r\n ])\r\n ]) : // Token is not valid, lets show general page\r\n m('.retail-page__row has-rows-2', [\r\n m('.retail-page__column retail-page__column--1', StepHeader({\r\n title: controller.d('Lost/PageTitle'),\r\n abstract: controller.isApp() ? controller.d('Lost/PageDescriptionAppDetected') : controller.d('Lost/PageDescription')\r\n })\r\n ),\r\n m('.retail-page__column retail-page__column--2', [\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Lost/SubmitButton'),\r\n onclick: function () {\r\n window.location.href = controller.isApp() ? controller.appLoginLink() : controller.loginLink();\r\n }\r\n }),\r\n m('.retail-rich-text retail-rich-text--subtext', m.trust(controller.d('Lost/SubtextDescription'))),\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepForgotPassword;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ForgotPincode', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, InputField, BackButton, Button, StepHeader) {\r\n\r\n var StepForgotPincode = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n m('.retail-page__button-container', BackButton()),\r\n m('.retail-page__content',\r\n controller.tokenIsValid() ?\r\n m('.retail-page__row has-rows-2', [\r\n m('.retail-page__column retail-page__column--1', StepHeader({\r\n title: controller.d('Password/PageTitle'),\r\n abstract: controller.d('Password/PageDescription')\r\n })\r\n ),\r\n m('.retail-page__column retail-page__column--2', [\r\n InputField({\r\n model: userModel.password,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.password(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'password',\r\n type: 'password',\r\n labelText: controller.d('Password/LabelPassword'),\r\n helpText: controller.d('Password/HelpTextPassword')\r\n }),\r\n InputField({\r\n model: userModel.repeatPassword,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.validateField,\r\n hasErrors: errors.repeatPassword(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'repeatPassword',\r\n type: 'password',\r\n labelText: controller.d('Password/LabelPasswordConfirmation'),\r\n helpText: controller.d('Password/HelpTextPasswordConfirmation')\r\n }),\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Password/SubmitButton'),\r\n onclick: controller.submit\r\n })\r\n ])\r\n ]) : // Token is not valid, lets show general page\r\n m('.retail-page__row has-rows-2', [\r\n m('.retail-page__column retail-page__column--1', StepHeader({\r\n title: controller.d('Lost/PageTitle'),\r\n abstract: controller.isApp() ? controller.d('Lost/PageDescriptionAppDetected') : controller.d('Lost/PageDescription')\r\n })\r\n ),\r\n m('.retail-page__column retail-page__column--2', [\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Lost/SubmitButton'),\r\n onclick: function () {\r\n window.location.href = controller.isApp() ? controller.appLoginLink() : controller.loginLink();\r\n }\r\n }),\r\n m('.retail-rich-text retail-rich-text--subtext', m.trust(controller.d('Lost/SubtextDescription'))),\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepForgotPincode;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/AccountInfo', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, StepGuide, InputField, Button, Checkbox, StepHeader) {\r\n\r\n var StepAccountInfo = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n StepGuide(2, controller.totalSteps()),\r\n m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('AccountInfo/PageTitle'),\r\n abstract: controller.d('AccountInfo/PageDescription')\r\n })\r\n ),\r\n InputField({\r\n model: userModel.email,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.email(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'email',\r\n type: 'email',\r\n labelText: controller.d('AccountInfo/Email/LabelEmail'),\r\n helpText: controller.d('AccountInfo/Email/HelpTextEmail')\r\n }),\r\n InputField({\r\n model: userModel.phone,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.phone(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'phone',\r\n type: 'tel',\r\n labelText: controller.d('AccountInfo/Phone/LabelPhone'),\r\n helpText: controller.d('AccountInfo/Phone/HelpTextPhone')\r\n }),\r\n controller.model().usernameIsSet() ? null : ('div', [\r\n InputField({\r\n model: userModel.username,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.username(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'username',\r\n labelText: controller.d('AccountInfo/Username/LabelUsername'),\r\n helpText: controller.d('AccountInfo/Username/HelpTextUsername')\r\n }),\r\n InputField({\r\n model: userModel.password,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.password(),\r\n hasFocus: controller.fieldInFocus(),\r\n type: 'password',\r\n name: 'password',\r\n labelText: controller.d('AccountInfo/Password/LabelPassword'),\r\n helpText: controller.d('AccountInfo/Password/HelpTextPassword')\r\n }),\r\n InputField({\r\n model: userModel.repeatPassword,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.repeatPassword(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'repeatPassword',\r\n type: 'password',\r\n labelText: controller.d('AccountInfo/Password/LabelPasswordConfirmation'),\r\n helpText: controller.d('AccountInfo/Password/HelpTextPasswordConfirmation')\r\n })\r\n ]),\r\n controller.initialValues().fields.marketingDefaultTerms() ? null : Checkbox({\r\n model: userModel.marketingDefaultTerms,\r\n labelText: controller.d('AccountInfo/LabelDefaultMarketingTerms'),\r\n name: 'marketingDefaultTerms',\r\n hasErrors: errors.marketingDefaultTerms()\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('AccountInfo/SubmitButton'),\r\n onclick: controller.submit,\r\n uiTestId: 'retail-button-submit-button'\r\n })\r\n )\r\n ])\r\n ]);\r\n };\r\n\r\n return StepAccountInfo;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/BasicAccountInfo', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Dropdown',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ListField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Recaptcha'\r\n], function (m, Utils, ProgressBar, BackButton, Dropdown, StepHeader, InfoRow, InputField, ListField, Checkbox, Button, Recaptcha) {\r\n\r\n var StepBasicAccountInfo = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('BasicAccountInfo/PageTitle'),\r\n abstract: controller.d('BasicAccountInfo/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n InfoRow({\r\n labelText: controller.d('BasicAccountInfo/Cpr/HeaderCprNumber'),\r\n value: controller.d('BasicAccountInfo/Cpr/DescriptionCprNumber')\r\n }),\r\n InputField({\r\n model: userModel.cprNumber,\r\n onkeyup: function (ev) {\r\n controller.resetErrors(ev);\r\n var newValue = ev.target.value.replace(/\\D/g, '');\r\n if (newValue.length > 0) {\r\n if (newValue.length > 10) {\r\n controller.validateField(event);\r\n } else {\r\n controller.buttonIsDisabled(true);\r\n }\r\n } else {\r\n userModel.cprNumber(null);\r\n }\r\n },\r\n onblur: function (ev) {\r\n var newValue = ev.target.value.replace(/\\D/g, '');\r\n\r\n if (newValue.length > 0) {\r\n userModel.cprNumber(Utils.formatCprNumber(newValue));\r\n }\r\n if (controller.validateCprNumber(newValue)) {\r\n controller.validateField(event);\r\n } else {\r\n errors.cprNumber(controller.d('BasicAccountInfo/Cpr/InvalidCprNumber'));\r\n }\r\n\r\n if (controller.fieldInFocus() === event.target.name) {\r\n controller.fieldInFocus(null);\r\n }\r\n },\r\n onfocus: function (ev) {\r\n controller.setFieldFocus(ev);\r\n var newValue = ev.target.value.replace(/\\D/g, '');\r\n if (newValue.length > 0) {\r\n errors.cprNumber(null);\r\n userModel.cprNumber(newValue);\r\n }\r\n },\r\n hasErrors: errors.cprNumber(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'cprNumber',\r\n forceNumeric: true,\r\n type: 'text',\r\n labelText: controller.d('BasicAccountInfo/Cpr/LabelCprNumber'),\r\n helpText: controller.d('BasicAccountInfo/Cpr/HelpTextCprNumber')\r\n }),\r\n m('hr'),\r\n InfoRow({\r\n labelText: controller.d('BasicAccountInfo/Personal/HeaderPersonal'),\r\n value: controller.d('BasicAccountInfo/Personal/DescriptionPersonal')\r\n }),\r\n InputField({\r\n model: userModel.firstName,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.firstName(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'firstName',\r\n labelText: controller.d('BasicAccountInfo/Personal/Name/LabelFirstName'),\r\n helpText: controller.d('BasicAccountInfo/Personal/Name/HelpTextFirstName')\r\n }),\r\n InputField({\r\n model: userModel.lastName,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.lastName(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'lastName',\r\n labelText: controller.d('BasicAccountInfo/Personal/Name/LabelLastName'),\r\n helpText: controller.d('BasicAccountInfo/Personal/Name/HelpTextLastName')\r\n }),\r\n m('.fields', [\r\n ListField({\r\n model: userModel.street,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupAddress,\r\n hasErrors: errors.street(),\r\n hasFocus: controller.fieldInFocus(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n controller.selectAddressFromSelection(value);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n controller.selectAddressFromSelection(event.target.innerText);\r\n }\r\n },\r\n name: 'street',\r\n labelText: controller.d('BasicAccountInfo/Personal/Address/LabelStreet'),\r\n helpText: controller.d('BasicAccountInfo/Personal/Address/HelpTextStreet'),\r\n list: controller.addresses\r\n }),\r\n InputField({\r\n model: userModel.houseNumber,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.houseNumber(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'houseNumber',\r\n labelText: controller.d('BasicAccountInfo/Personal/Address/LabelHouseNumber'),\r\n helpText: controller.d('BasicAccountInfo/Personal/Address/HelpTextHouseNumber')\r\n }),\r\n m('.retail-multi-container', [\r\n ListField({\r\n model: userModel.zipCode,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupZip,\r\n hasErrors: errors.zipCode(),\r\n hasFocus: controller.fieldInFocus(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n userModel.zipCode(value);\r\n controller.selectCityFromZip(value);\r\n controller.zips([]);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n userModel.zipCode(event.target.innerText);\r\n controller.selectCityFromZip(event.target.innerText);\r\n controller.fieldInFocus(null);\r\n }\r\n },\r\n name: 'zipCode',\r\n type: 'number',\r\n labelText: controller.d('BasicAccountInfo/Personal/Address/LabelZipCode'),\r\n helpText: controller.d('BasicAccountInfo/Personal/Address/HelpTextZipCode'),\r\n list: controller.zips\r\n }),\r\n ListField({\r\n model: userModel.city,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupCity,\r\n hasErrors: errors.city(),\r\n hasFocus: controller.fieldInFocus(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n userModel.city(value);\r\n controller.cities([]);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n userModel.city(event.target.innerText);\r\n controller.fieldInFocus(null);\r\n }\r\n },\r\n name: 'city',\r\n labelText: controller.d('BasicAccountInfo/Personal/Address/LabelCity'),\r\n helpText: controller.d('BasicAccountInfo/Personal/Address/HelpTextCity'),\r\n list: controller.cities\r\n }),\r\n ]),\r\n ]),\r\n Dropdown({\r\n model: userModel.country,\r\n choices: controller.model().availableCountries(),\r\n hasErrors: errors.country(),\r\n name: 'country',\r\n labelText: controller.d('BasicAccountInfo/Personal/Address/LabelCountry')\r\n }),\r\n m('hr'),\r\n InfoRow({\r\n labelText: controller.d('BasicAccountInfo/Phone/HeaderPhone'),\r\n }),\r\n InputField({\r\n model: userModel.phone,\r\n onblur: controller.validateField,\r\n onfocus: controller.setFieldFocus,\r\n hasErrors: errors.phone(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'phone',\r\n type: 'tel',\r\n labelText: controller.d('BasicAccountInfo/Phone/LabelPhone'),\r\n helpText: controller.d('BasicAccountInfo/Phone/HelpTextPhone')\r\n }),\r\n m('hr'),\r\n InfoRow({\r\n labelText: controller.d('BasicAccountInfo/Email/HeaderEmail'),\r\n }),\r\n InputField({\r\n model: userModel.email,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.email(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'email',\r\n type: 'email',\r\n labelText: controller.d('BasicAccountInfo/Email/LabelEmail'),\r\n helpText: controller.d('BasicAccountInfo/Email/HelpTextEmail')\r\n }),\r\n Checkbox({\r\n model: userModel.acceptTermsAndConditions,\r\n labelText: controller.d('BasicAccountInfo/Terms/LabelTermsAndConditions'),\r\n name: 'acceptTermsAndConditions',\r\n onchange: controller.validateField,\r\n hasErrors: errors.acceptTermsAndConditions()\r\n }),\r\n controller.recaptchaEnabled() ? Recaptcha({\r\n model: controller.recaptcha().model,\r\n hasErrors: controller.recaptcha().hasErrors(),\r\n validate: controller.validateRecaptcha,\r\n id: 'recaptchafield'\r\n }) : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('BasicAccountInfo/SubmitButton'),\r\n onclick: controller.verify\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepBasicAccountInfo;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/FaroeseAccountInfo', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Recaptcha'\r\n], function (m, ProgressBar, BackButton, StepHeader, InputField, Checkbox, Button, Recaptcha) {\r\n\r\n var StepFaroeseAccountInfo = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('FaroeseAccountInfo/PageTitle'),\r\n abstract: controller.d('FaroeseAccountInfo/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n InputField({\r\n model: userModel.email,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.email(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'email',\r\n type: 'email',\r\n labelText: controller.d('FaroeseAccountInfo/Email/LabelEmail'),\r\n helpText: controller.d('FaroeseAccountInfo/Email/HelpTextEmail')\r\n }),\r\n InputField({\r\n model: userModel.username,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.username(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'username',\r\n labelText: controller.d('FaroeseAccountInfo/Username/LabelUsername'),\r\n helpText: controller.d('FaroeseAccountInfo/Username/HelpTextUsername')\r\n }),\r\n InputField({\r\n model: userModel.password,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.password(),\r\n hasFocus: controller.fieldInFocus(),\r\n type: 'password',\r\n name: 'password',\r\n labelText: controller.d('FaroeseAccountInfo/Password/LabelPassword'),\r\n helpText: controller.d('FaroeseAccountInfo/Password/HelpTextPassword')\r\n }),\r\n InputField({\r\n model: userModel.repeatPassword,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validatePassword,\r\n hasErrors: errors.repeatPassword(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'repeatPassword',\r\n type: 'password',\r\n labelText: controller.d('FaroeseAccountInfo/Password/LabelPasswordConfirmation'),\r\n helpText: controller.d('FaroeseAccountInfo/Password/HelpTextPasswordConfirmation')\r\n }),\r\n Checkbox({\r\n model: controller.model().fields.marketingTerms,\r\n labelText: controller.d('FaroeseAccountInfo/NewsPermissions/LabelNews'),\r\n name: 'marketingTerms',\r\n hasErrors: controller.model().errors.marketingTerms()\r\n }),\r\n controller.recaptchaEnabled() ? Recaptcha({\r\n model: controller.recaptcha().model,\r\n hasErrors: controller.recaptcha().hasErrors(),\r\n validate: controller.validateRecaptcha,\r\n id: 'recaptchafield'\r\n }) : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('FaroeseAccountInfo/SubmitButton'),\r\n onclick: controller.verify\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepFaroeseAccountInfo;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PersonalInfo', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ListField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Dropdown',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, StepGuide, InputField, ListField, Button, Checkbox, Dropdown, StepHeader) {\r\n\r\n var StepPersonalInfo = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n StepGuide(3, controller.totalSteps()),\r\n m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('PersonalInfo/PageTitle'),\r\n abstract: controller.d('PersonalInfo/PageDescription')\r\n })\r\n ),\r\n InputField({\r\n model: userModel.firstName,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.firstName(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'firstName',\r\n labelText: controller.d('PersonalInfo/Name/LabelFirstName'),\r\n helpText: controller.d('PersonalInfo/Name/HelpTextFirstName')\r\n }),\r\n InputField({\r\n model: userModel.lastName,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.lastName(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'lastName',\r\n labelText: controller.d('PersonalInfo/Name/LabelLastName'),\r\n helpText: controller.d('PersonalInfo/Name/HelpTextLastName')\r\n }),\r\n\r\n m('.fields', [\r\n ListField({\r\n model: userModel.street,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupAddress,\r\n hasErrors: errors.street(),\r\n hasFocus: controller.fieldInFocus(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n controller.selectAddressFromSelection(value);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n controller.selectAddressFromSelection(event.target.innerText);\r\n }\r\n },\r\n name: 'street',\r\n labelText: controller.d('PersonalInfo/Address/LabelStreet'),\r\n helpText: controller.d('PersonalInfo/Address/HelpTextStreet'),\r\n list: controller.addresses\r\n }),\r\n m('.fields-row', [\r\n InputField({\r\n model: userModel.houseNumber,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.houseNumber(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'houseNumber',\r\n labelText: controller.d('PersonalInfo/Address/LabelHouseNumber'),\r\n helpText: controller.d('PersonalInfo/Address/HelpTextHouseNumber')\r\n }),\r\n InputField({\r\n model: userModel.level,\r\n onfocus: controller.setFieldFocus,\r\n hasErrors: errors.level(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'level',\r\n labelText: controller.d('PersonalInfo/Address/LabelLevel'),\r\n helpText: controller.d('PersonalInfo/Address/HelpTextLevel')\r\n })\r\n ]),\r\n m('.fields-row', [\r\n ListField({\r\n model: userModel.zipCode,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupZip,\r\n hasErrors: errors.zipCode(),\r\n hasFocus: controller.fieldInFocus(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n userModel.zipCode(value);\r\n controller.selectCityFromZip(value);\r\n controller.zips([]);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n userModel.zipCode(event.target.innerText);\r\n controller.selectCityFromZip(event.target.innerText);\r\n controller.fieldInFocus(null);\r\n }\r\n },\r\n name: 'zipCode',\r\n type: 'number',\r\n labelText: controller.d('PersonalInfo/Address/LabelZipCode'),\r\n helpText: controller.d('PersonalInfo/Address/HelpTextZipCode'),\r\n list: controller.zips\r\n }),\r\n ListField({\r\n model: userModel.city,\r\n onfocus: controller.setFieldFocus,\r\n onkeyup: controller.lookupCity,\r\n hasErrors: errors.city(),\r\n hasFocus: controller.fieldInFocus(),\r\n fieldInFocus: controller.fieldInFocus,\r\n validateField: controller.validateField,\r\n setSelected: function (value) {\r\n userModel.city(value);\r\n controller.cities([]);\r\n },\r\n onkeyevent: function (event) {\r\n controller.fieldInFocus(event.target.name);\r\n if (event.key === 'Enter') {\r\n userModel.city(event.target.innerText);\r\n controller.fieldInFocus(null);\r\n }\r\n },\r\n name: 'city',\r\n labelText: controller.d('PersonalInfo/Address/LabelCity'),\r\n helpText: controller.d('PersonalInfo/Address/HelpTextCity'),\r\n list: controller.cities\r\n })\r\n ]),\r\n Dropdown({\r\n model: userModel.country,\r\n choices: controller.model().availableCountries(),\r\n hasErrors: errors.country(),\r\n name: 'country',\r\n labelText: controller.d('PersonalInfo/Address/LabelCountry')\r\n })\r\n ]),\r\n Checkbox({\r\n model: userModel.acceptTermsAndConditions,\r\n labelText: controller.d('PersonalInfo/TermsAndConditions/LabelTermsAndConditions'),\r\n name: 'acceptTermsAndConditions',\r\n onchange: controller.validateField,\r\n hasErrors: errors.acceptTermsAndConditions()\r\n }),\r\n controller.initialValues().fields.acceptDataProcessing() ? null : Checkbox({\r\n model: userModel.acceptDataProcessing,\r\n labelText: controller.d('PersonalInfo/GameScanner/LabelGameScannerTerms'),\r\n name: 'acceptDataProcessing',\r\n onchange: controller.validateField,\r\n hasErrors: errors.acceptDataProcessing()\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('PersonalInfo/SubmitButton'),\r\n onclick: function () {\r\n controller.submit(true);\r\n },\r\n uiTestId: 'retail-button-submit-button'\r\n })\r\n )\r\n ])\r\n ]);\r\n };\r\n\r\n return StepPersonalInfo;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/SelectLimit', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, StepGuide, Utils, InputField, ErrorMessage, Button, StepHeader) {\r\n\r\n var StepSelectLimit = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n this.onLimitInput = function (event) {\r\n var newValue = event.target.value.replace(/\\D/g, '');\r\n if (newValue.length > 0) {\r\n newValue = parseInt(newValue, 10);\r\n userModel.limitValue(newValue);\r\n userModel.limitFormatted(Utils.formatLimit(newValue));\r\n } else {\r\n userModel.limitValue(null);\r\n userModel.limitFormatted(null);\r\n }\r\n };\r\n\r\n this.onFocus = function (event) {\r\n controller.model().clearErrors();\r\n controller.setFieldFocus(event);\r\n var newValue = event.target.value.replace(/\\D/g, '');\r\n if (newValue.length > 0) {\r\n userModel.limitFormatted(Utils.formatLimit(newValue));\r\n }\r\n };\r\n\r\n this.onBlur = function (event) {\r\n var newValue = event.target.value.replace(/\\D/g, '');\r\n controller.fieldInFocus(null);\r\n if (newValue.length > 0) {\r\n userModel.limitFormatted(Utils.formatCurrency(newValue));\r\n }\r\n controller.validateLimit();\r\n };\r\n\r\n this.onKeyUp = function (event) {\r\n var value = event.target.value.replace(/\\D/g, '');\r\n if (value.length > 1) {\r\n controller.validateLimit();\r\n }\r\n };\r\n\r\n var setType = function (type) {\r\n userModel.limitType(type);\r\n controller.model().clearErrors();\r\n };\r\n\r\n return m('div', [\r\n StepGuide(5, controller.totalSteps()),\r\n m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('SelectLimit/PageTitle'),\r\n abstract: controller.d('SelectLimit/PageDescription')\r\n })\r\n ),\r\n m('.pam-button-container', [\r\n ['Daily', 'Weekly', 'Monthly'].map(function (limit) {\r\n return Button({\r\n buttonText: controller.d('SelectLimit/' + limit + 'Limit'),\r\n class: [\r\n 'limit-button',\r\n userModel.limitType() === limit ? 'limit-button--selected' : ''\r\n ].join(' '),\r\n onclick: function () {\r\n setType(limit);\r\n }\r\n });\r\n })\r\n ]),\r\n errors.limitType() ? ErrorMessage('Ingen grænse type valgt') : null,\r\n userModel.limitType() ? InputField({\r\n model: userModel.limitFormatted,\r\n oninput: this.onLimitInput,\r\n onfocus: this.onFocus,\r\n onblur: this.onBlur,\r\n onkeyup: this.onKeyUp,\r\n hasErrors: errors.limitFormatted(),\r\n hasFocus: controller.fieldInFocus(),\r\n forceNumeric: true,\r\n name: 'limitFormatted',\r\n type: 'text',\r\n labelText: controller.d('SelectLimit/' + userModel.limitType() + 'Limit'),\r\n helpText: controller.d('SelectLimit/HelpText' + userModel.limitType() + 'Limit'),\r\n setcaret: userModel.limitFormatted() && controller.postfix ? userModel.limitFormatted().length - controller.postfix.length : 1, // Default to index one to almost make it pretty when amount is null.\r\n }) : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('SelectLimit/SubmitButton'),\r\n onclick: function () {\r\n if (!controller.validateLimit()) {\r\n controller.submit();\r\n }\r\n },\r\n uiTestId: 'retail-button-submit-button'\r\n })\r\n )\r\n ])\r\n ]);\r\n };\r\n\r\n return StepSelectLimit;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UpdateLimit', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/LimitField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, StepGuide, Utils, LimitField, Button, StepHeader) {\r\n\r\n var StepUpdateLimit = function (controller) {\r\n var userLimitModel = controller.model().userLimits;\r\n\r\n const getPlaceholderText = (limit) => {\r\n if (!limit.value() && !limit.stored()) {\r\n return controller.d('UpdateLimit/NoLimitFound');\r\n } else if (!limit.value() && limit.stored()) {\r\n return controller.d('UpdateLimit/LimitWillBeDeleted', { VALUE: limit.stored() });\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n return m('div', [\r\n StepGuide(5, controller.totalSteps()),\r\n m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('UpdateLimit/PageTitle'),\r\n abstract: controller.d('UpdateLimit/PageDescription')\r\n })\r\n ),\r\n userLimitModel().limits().map(function (limit) {\r\n return new LimitField({\r\n model: limit,\r\n hasErrors: limit.hasErrors().length > 0,\r\n postfix: controller.postfix,\r\n alwaysVisible: true,\r\n limitText: controller.d(`UpdateLimit/${limit.type()}Limit`),\r\n stateText: limit.plannedAt() ? (limit.plannedValue() ? controller.d('UpdateLimit/ChangedLimit', {\r\n TYPE: controller.d(`UpdateLimit/${limit.type()}`),\r\n VALUE: Utils.formatCurrency(limit.plannedValue()),\r\n ACTIVEFROM: Utils.formatDateTime(new Date(limit.plannedAt()))\r\n }) : controller.d('UpdateLimit/DeletedLimit', {\r\n TYPE: controller.d(`UpdateLimit/${limit.type()}`),\r\n ACTIVEFROM: Utils.formatDateTime(new Date(limit.plannedAt()))\r\n })) : null,\r\n operatorText: controller.d('UpdateLimit/OperatorLimit', {\r\n TYPE: controller.d(`UpdateLimit/${limit.type()}`),\r\n VALUE: Utils.formatCurrency(limit.max())\r\n }),\r\n cancelDelete: controller.d('UpdateLimit/CancelDelete'),\r\n cancelChange: controller.d('UpdateLimit/CancelChange'),\r\n placeholder: getPlaceholderText(limit),\r\n cannotDelete: !limit.value()\r\n });\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('UpdateLimit/SubmitButton'),\r\n onclick: function () {\r\n if (controller.model().userLimits().validate()) {\r\n controller.submit();\r\n }\r\n },\r\n uiTestId: 'retail-button-submit-button'\r\n })\r\n )\r\n ])\r\n ]);\r\n };\r\n\r\n return StepUpdateLimit;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/EmailPermissions', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n], function (m, ProgressBar, BackButton, StepHeader, Checkbox, Button) {\r\n\r\n var StepEmailPermissions = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('EmailPermissions/PageTitle')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n userModel.isRetailAccount() || userModel.marketingTerms() ?\r\n [\r\n m('.retail-rich-text', m.trust(controller.retailEmailPermissionText())),\r\n Checkbox({\r\n model: userModel.marketingTerms,\r\n labelText: controller.d('EmailPermissions/LabelEmail'),\r\n labelClass: 'retail-checkbox__label--large',\r\n name: 'marketingTerms',\r\n hasErrors: errors.marketingTerms(),\r\n isDisabled: userModel.emailPermission()\r\n })\r\n ] : null,\r\n !userModel.isRetailAccount() ?\r\n [\r\n userModel.marketingTerms() ? m('hr') : null,\r\n m('.retail-rich-text', m.trust(controller.onlineEmailPermissionText())),\r\n Checkbox({\r\n model: userModel.emailPermission,\r\n onchange: function () {\r\n if (userModel.emailPermission()) {\r\n userModel.marketingTerms(false);\r\n } else {\r\n var prevValue = controller.model().initialValues.marketingTerms;\r\n userModel.marketingTerms(prevValue);\r\n }\r\n },\r\n labelText: controller.d('EmailPermissions/LabelEmail'),\r\n labelClass: 'retail-checkbox__label--large',\r\n name: 'emailPermission',\r\n hasErrors: errors.emailPermission(),\r\n })\r\n ] : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('EmailPermissions/SubmitButton'),\r\n onclick: function () {\r\n controller.updatePermissions('marketing');\r\n }\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepEmailPermissions;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/EmailWinningsPermissions', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n], function (m, ProgressBar, BackButton, StepHeader, Checkbox, Button) {\r\n\r\n var StepEmailWinningsPermissions = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('EmailWinningsPermissions/PageTitle'),\r\n abstract: controller.d('EmailWinningsPermissions/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-rich-text', [\r\n m('h3', { class: 'retail-rich-text__title' }, controller.d('EmailWinningsPermissions/SectionTitle')),\r\n Checkbox({\r\n model: userModel.emailWinningPermission,\r\n labelText: controller.d('EmailWinningsPermissions/LabelEmail'),\r\n name: 'emailWinningPermission',\r\n hasErrors: errors.emailWinningPermission(),\r\n }),\r\n Checkbox({\r\n model: userModel.smsWinningPermission,\r\n labelText: controller.d('EmailWinningsPermissions/LabelSMS'),\r\n name: 'smsWinningPermission',\r\n hasErrors: errors.smsWinningPermission(),\r\n })\r\n ]),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('EmailWinningsPermissions/SubmitButton'),\r\n onclick: function () {\r\n controller.updatePermissions('winner');\r\n }\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepEmailWinningsPermissions;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Limits', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/LimitField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage'\r\n], function (m, Utils, ProgressBar, BackButton, LimitField, Button, StepHeader, ErrorMessage) {\r\n\r\n var StepLimits = function (controller, initiator) {\r\n const dictionaryKey = controller.currentStep().dictionaryKey;\r\n\r\n const getVariant = (isRetailAccount, initiator) => {\r\n if (initiator) {\r\n return '';\r\n }\r\n\r\n if (!isRetailAccount) {\r\n return '/Variant2';\r\n } else {\r\n return '/Variant1';\r\n }\r\n };\r\n\r\n const variant = getVariant(controller.model().fields.isRetailAccount(), initiator);\r\n\r\n const cannotDeleteLimit = (limit) => {\r\n const max = limit.max();\r\n const userLimit = limit.value();\r\n const isOperator = limit.isOperator();\r\n return !!(max === userLimit && isOperator);\r\n };\r\n\r\n return m('div', [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n m('.retail-page__button-container', [\r\n !controller.hideBackButton() ? BackButton({\r\n onclick: () => { controller.goToRoute('/'); }\r\n }) : null\r\n ]),\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(`${dictionaryKey + variant}/PageTitle`),\r\n abstract: controller.d(`${dictionaryKey + variant}/PageDescription`)\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n controller.model().userLimits().limits().map(function (limit) {\r\n return new LimitField({\r\n model: limit,\r\n hasErrors: limit.hasErrors().length > 0,\r\n postfix: controller.postfix,\r\n confirm: controller.goToConfirmLimit,\r\n buttonText: controller.d(`${dictionaryKey}/Add${limit.type()}Button`),\r\n limitText: controller.d(`${dictionaryKey}/${limit.type()}Limit`),\r\n stateText: limit.plannedAt() ? (limit.plannedValue() ? controller.d(`${dictionaryKey}/ChangedLimit`, {\r\n TYPE: controller.d(`${dictionaryKey}/${limit.type()}`),\r\n VALUE: Utils.formatCurrency(limit.plannedValue()),\r\n ACTIVEFROM: Utils.formatDateTime(new Date(limit.plannedAt()))\r\n }) : controller.d(`${dictionaryKey}/DeletedLimit`, {\r\n TYPE: controller.d(`${dictionaryKey}/${limit.type()}`),\r\n ACTIVEFROM: Utils.formatDateTime(new Date(limit.plannedAt()))\r\n })) : null,\r\n operatorText: controller.d(`${dictionaryKey}/OperatorLimit`, {\r\n TYPE: controller.d(`${dictionaryKey}/${limit.type()}`),\r\n VALUE: Utils.formatCurrency(limit.max())\r\n }),\r\n cancelDelete: controller.d(`${dictionaryKey}/CancelDelete`),\r\n cancelChange: controller.d(`${dictionaryKey}/CancelChange`),\r\n cannotDelete: cannotDeleteLimit(limit),\r\n });\r\n }),\r\n controller.noLimitsChanged() && controller.d(`${dictionaryKey}/Errors/NoLimitsChanged`).length > 0 ? ErrorMessage([controller.d(`${dictionaryKey}/Errors/NoLimitsChanged`)]) : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.d(`${dictionaryKey}/SubmitButton`),\r\n onclick: controller.goToConfirmLimit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepLimits;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameScanner', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader'\r\n], function (m, ProgressBar, BackButton, StepHeader, InfoRow, Checkbox, Button, Loader) {\r\n\r\n var StepGameScanner = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n userModel.runKnowYourCustomerFlow(true); // Ask backend to run KYC on customer\r\n\r\n this.displayAddress = function () {\r\n var address = '';\r\n\r\n address += userModel.street() + ' ';\r\n address += userModel.houseNumber() + (userModel.level() ? userModel.level() : '') + ', ';\r\n address += userModel.zipCode() + ' ';\r\n address += userModel.city() + ', ';\r\n address += userModel.country();\r\n\r\n return InfoRow({\r\n labelText: controller.d('GameScanner/LabelAddress'),\r\n value: address\r\n });\r\n };\r\n\r\n // If user has already accepted dataprocessing then just submit and show a loader for UI purposes\r\n if (controller.model().hasConsentedToGameScanner()) {\r\n controller.submit();\r\n\r\n return Loader();\r\n }\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep ? controller.routeToPrevStep : null\r\n })) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n StepHeader({\r\n title: controller.d('GameScanner/PageTitle')\r\n }),\r\n InfoRow({\r\n labelText: controller.d('GameScanner/LabelName'),\r\n value: userModel.firstName() + ' ' + userModel.lastName()\r\n }),\r\n controller.showAddress() && userModel.street() ?\r\n this.displayAddress() : null,\r\n InfoRow({\r\n labelText: controller.d('GameScanner/LabelEmail'),\r\n value: userModel.email()\r\n }),\r\n InfoRow({\r\n labelText: controller.d('GameScanner/LabelPhone'),\r\n value: userModel.phone()\r\n }),\r\n userModel.username() ? InfoRow({\r\n labelText: controller.d('GameScanner/LabelUsername'),\r\n value: userModel.username()\r\n }) : null\r\n ]),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n InfoRow({\r\n labelText: controller.d('GameScanner/LabelTerms')\r\n }),\r\n Checkbox({\r\n model: userModel.acceptDataProcessing,\r\n labelText: controller.d('GameScanner/LabelGameScannerTerms'),\r\n name: 'acceptDataProcessing',\r\n onchange: controller.validateField,\r\n hasErrors: errors.acceptDataProcessing(),\r\n isDisabled: controller.model().hasConsentedToGameScanner()\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('GameScanner/SubmitButton'),\r\n onclick: controller.submit,\r\n config: controller.checkElementInViewport,\r\n class: controller.elementIsInViewport() ? null : 'is-floating'\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return StepGameScanner;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UploadDocuments', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/FileDropdown',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/FileUpload',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, BackButton, Button, ErrorMessage, InfoRow, FileDropdown, FileUpload, StepHeader) {\r\n\r\n var StepUploadDocuments = function (controller, ignoreInitiator, classPrefix) {\r\n classPrefix = classPrefix || 'retail-page';\r\n var fields = controller.model().fields;\r\n\r\n if (!controller.hasLoadedDocuments()) {\r\n controller.loadDocumentData();\r\n }\r\n var requirements = [];\r\n\r\n if (!fields.hasValidName()) {\r\n requirements.push('personal' + (fields.isFromFaroe() ? 'Faroe' : ''));\r\n }\r\n if (!fields.cprCheck() && fields.accountTypeChangeInProgress()) {\r\n requirements.push('address');\r\n }\r\n if (!fields.hasValidBankAccount() && fields.isFromFaroe()) {\r\n requirements.push('bankinfo');\r\n }\r\n if (fields.nemIdNotUsed()) {\r\n requirements.push('nemidExemption');\r\n }\r\n\r\n controller.addFileRequirement(requirements);\r\n\r\n\r\n return m('div', [\r\n controller.backAllowed() && !controller.hideBackButton() ? m('div', { class: classPrefix + '__button-container' }, BackButton()) : null,\r\n m('div', { class: [\r\n classPrefix + '__content',\r\n !controller.noPaddingTop() ? classPrefix + '__no-progress' : null\r\n ].join(' ') }, [\r\n controller.model().hasDocuments() ? m('span', { class: classPrefix + '__warning' }, controller.d('UploadDocuments/PendingFiles')) : null,\r\n StepHeader({\r\n title: controller.d('UploadDocuments/PageTitle'),\r\n abstract: controller.d('UploadDocuments/PageDescription')\r\n }),\r\n controller.model().files().map(function (fileUpload, index) {\r\n return FileUpload(fileUpload, index, controller.validateUpload, controller.addFile, controller.removeSelection, controller.uploadSettings, controller.d);\r\n }),\r\n FileDropdown({\r\n files: controller.model().files,\r\n purposes: controller.purposes(),\r\n dictionary: controller.d,\r\n uploadSettings: controller.uploadSettings,\r\n name: 'purposes'\r\n }),\r\n m('.retail-button-container', [\r\n controller.backAllowed() ? Button({\r\n buttonText: controller.d('UploadDocuments/CancelButton'),\r\n class: 'retail-button--secondary',\r\n onclick: function () {\r\n window.history.back();\r\n }\r\n }) : null,\r\n controller.hasFilesUploaded() ? Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n buttonText: controller.d('UploadDocuments/SubmitButton'),\r\n onclick: controller.upload\r\n }) : null\r\n ]),\r\n controller.noFilesSelected() && controller.model().files().length === 0 ? ErrorMessage(controller.d('Errors/NoFilesSelected'), { center: true }) : null,\r\n InfoRow({\r\n value: m.trust(controller.d('UploadDocuments/PageFooter')),\r\n })\r\n ]\r\n )\r\n ]);\r\n };\r\n\r\n return StepUploadDocuments;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n], function (m, Svg, Stepheader, Button) {\r\n\r\n var StepReceipt = function (controller) {\r\n var handleCallback = function () {\r\n if (controller.receiptContent().callback) {\r\n controller.receiptContent().callback();\r\n } else if (controller.goToRoute) {\r\n controller.goToRoute('/');\r\n }\r\n };\r\n\r\n return m('.retail-page__content retail-page__no-progress',\r\n m('.retail-receipt', {\r\n config: function (ignoreContext, isInit) {\r\n if (isInit) return;\r\n\r\n if (typeof controller.receiptContent().init === 'function') {\r\n controller.receiptContent().init();\r\n }\r\n\r\n if (controller.receiptContent().timeout) {\r\n setTimeout(handleCallback, controller.receiptContent().timeout);\r\n }\r\n }\r\n }, [\r\n controller.receiptContent().icon ?\r\n Svg(controller.receiptContent().icon, {\r\n class: 'retail-receipt__icon'\r\n }) : null,\r\n Stepheader({\r\n title: controller.receiptContent().title,\r\n abstract: controller.receiptContent().abstract || null\r\n }),\r\n controller.receiptContent().buttonText ?\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.receiptContent().buttonText,\r\n onclick: controller.receiptContent().callback,\r\n uiTestId: 'retail-receipt-button'\r\n })\r\n ) : null,\r\n controller.receiptContent().partialTemplate ? controller.receiptContent().partialTemplate : null\r\n ])\r\n );\r\n };\r\n\r\n return StepReceipt;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UpgradeSummary', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow'\r\n], function (m, Button, StepHeader, InfoRow) {\r\n\r\n var UpgradeSummary = function (controller) {\r\n\r\n var userModel = controller.model();\r\n var fields = userModel.fields;\r\n\r\n return m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('Summary/PageTitle'),\r\n abstract: controller.d('Summary/PageDescription')\r\n })\r\n ),\r\n m('.pam-page__column', [\r\n m('h1', controller.d('Summary/SectionHeader')),\r\n InfoRow({\r\n testId: 'retail_profile--name',\r\n labelText: controller.d('Summary/LabelName'),\r\n value: fields.firstName() + ' ' + fields.lastName()\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--address',\r\n labelText: controller.d('Summary/LabelAddress'),\r\n value: fields.street() + ' ' + fields.houseNumber() + ', ' + fields.zipCode() + ' ' + fields.city() + ', ' + fields.country()\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--username',\r\n labelText: controller.d('Summary/LabelUsername'),\r\n value: fields.username(),\r\n subLabelText: userModel.usernameIsSet() ? controller.d('Summary/TextReusedUsername') : null\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--email',\r\n labelText: controller.d('Summary/LabelEmail'),\r\n value: fields.email()\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--phone',\r\n labelText: controller.d('Summary/LabelPhone'),\r\n value: fields.phone()\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--limit',\r\n labelText: controller.d('Summary/LabelLimit'),\r\n value: fields.limitFormatted() + controller.d('Summary/' + fields.limitType())\r\n }),\r\n\r\n ]),\r\n m('.retail-button-container', [\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n class: 'retail-button--secondary',\r\n buttonText: controller.d('Summary/CancelButton'),\r\n onclick: controller.discard\r\n }),\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Summary/SubmitButton'),\r\n onclick: controller.upgrade\r\n })\r\n ])\r\n ]);\r\n };\r\n\r\n return UpgradeSummary;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Upgrade', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UpgradeSummary'\r\n], function (m, StepGuide, Button, StepHeader, UpgradeSummary) {\r\n\r\n var StepUpgrade = function (controller) {\r\n\r\n return m('div', [\r\n StepGuide(1, controller.totalSteps()),\r\n controller.model().cachedUpgrade() ? UpgradeSummary(controller) : m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('Upgrade/PageTitle'),\r\n abstract: controller.d('Upgrade/PageDescription')\r\n })\r\n ),\r\n m('.retail-button-container', [\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n class: 'retail-button--secondary',\r\n buttonText: controller.d('Upgrade/ExitButton'),\r\n onclick: controller.logout,\r\n uiTestId: 'retail-button-decline-button'\r\n }),\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Upgrade/NextButton'),\r\n onclick: controller.routeToNextStep,\r\n uiTestId: 'retail-button-submit-button'\r\n })\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n return StepUpgrade;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Security', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Dropdown',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, StepGuide, Button, Dropdown, InputField, StepHeader) {\r\n\r\n var StepSecurity = function (controller) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n\r\n return m('div', [\r\n StepGuide(4, controller.totalSteps()),\r\n m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('Security/PageTitle'),\r\n abstract: controller.d('Security/PageDescription')\r\n })\r\n ),\r\n Dropdown({\r\n model: userModel.securityQuestion,\r\n choices: controller.model().securityQuestions(),\r\n onchange: controller.validateField,\r\n hasErrors: errors.securityQuestion(),\r\n name: 'securityQuestion',\r\n labelText: controller.d('Security/LabelQuestion'),\r\n placeholder: controller.d('Security/LabelSelectQuestion')\r\n }),\r\n InputField({\r\n model: userModel.securityAnswer,\r\n onfocus: controller.setFieldFocus,\r\n onblur: controller.validateField,\r\n hasErrors: errors.securityAnswer(),\r\n hasFocus: controller.fieldInFocus(),\r\n name: 'securityAnswer',\r\n type: 'text',\r\n labelText: controller.d('Security/LabelAnswer'),\r\n helpText: controller.d('Security/HelpTextAnswer')\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('Security/SubmitButton'),\r\n onclick: function () {\r\n controller.submit(true);\r\n },\r\n uiTestId: 'retail-button-submit-button'\r\n })\r\n )\r\n ])\r\n ]);\r\n };\r\n\r\n return StepSecurity;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ResumeSignupFlow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, Button, StepHeader) {\r\n\r\n var StepResumeSignupFlow = function (controller) {\r\n\r\n return m('', [\r\n m('div', {\r\n class: 'retail-page__content retail-page__no-progress'\r\n }, m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('ResumeSignupFlow/PageTitle'),\r\n abstract: controller.d('ResumeSignupFlow/PageDescription')\r\n })),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n },\r\n m('.retail-button-container',\r\n Button({\r\n buttonText: controller.d('ResumeSignupFlow/SubmitButton'),\r\n onclick: function () {\r\n controller.routeToNextStep();\r\n }\r\n })\r\n )\r\n )\r\n ]))\r\n ]);\r\n };\r\n\r\n return StepResumeSignupFlow;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/FinalizeUpgrade', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Checkbox',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, StepGuide, Button, Checkbox, StepHeader) {\r\n\r\n var StepFinalizeUpgrade = function (controller) {\r\n\r\n return m('', [\r\n StepGuide(6, controller.totalSteps()),\r\n m('.pam-page__content', [\r\n m('div', {\r\n class: 'pam-page__header'\r\n }, StepHeader({\r\n title: controller.d('FinalizeUpgrade/PageTitle'),\r\n abstract: controller.d('FinalizeUpgrade/PageDescription')\r\n })\r\n ),\r\n Checkbox({\r\n model: controller.model().fields.emailPermission,\r\n labelText: controller.d('PersonalInfo/NewsPermissions/LabelNews'),\r\n name: 'emailPermission',\r\n hasErrors: controller.model().errors.emailPermission()\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('FinalizeUpgrade/NextButton'),\r\n onclick: controller.finalize,\r\n uiTestId: 'retail-button-submit-button'\r\n })\r\n )\r\n ])\r\n ]);\r\n };\r\n\r\n return StepFinalizeUpgrade;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ProfileOverview', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n], function (m, Utils, StepHeader, InfoRow, Svg) {\r\n\r\n var ProfileOverview = function (controller) {\r\n var initialValues = controller.model().initialValues;\r\n const userModel = controller.model().fields;\r\n const playcardModel = controller.playcardModel();\r\n\r\n return m('div', {\r\n class: 'retail-page__content retail-page__no-progress'\r\n }, m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n StepHeader({\r\n title: controller.d('ProfileOverview/PageTitle')\r\n }),\r\n m('div', {\r\n class: 'list list--no-bottom-margin'\r\n }, [\r\n InfoRow({\r\n testId: 'retail_profile--name',\r\n labelText: controller.d('ProfileOverview/LabelName'),\r\n value: initialValues.firstName + ' ' + initialValues.lastName,\r\n horizontal: true,\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--email',\r\n labelText: controller.d('ProfileOverview/LabelEmail'),\r\n value: initialValues.email,\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/email');\r\n }\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--phone',\r\n labelText: controller.d('ProfileOverview/LabelPhone'),\r\n value: initialValues.phone,\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/phone');\r\n }\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--account',\r\n labelText: controller.d('ProfileOverview/LabelAccount'),\r\n value: initialValues.bankAccount,\r\n class: 'retail-info-row__large-icon',\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/payoutMethod');\r\n },\r\n clickableIcon: 'round-info'\r\n })\r\n ]),\r\n m('button', {\r\n 'data-uitest-id': 'retail_profile--upload',\r\n class: 'retail-file-upload__button',\r\n type: 'button',\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/uploadDocuments');\r\n }\r\n }, [\r\n m('span', [\r\n Svg('plus', { class: 'retail-file-upload__add-button--svg' }),\r\n ]),\r\n m('span', { class: 'retail-file-upload__button-text' }, 'Tilføj dokumentation')\r\n ]),\r\n StepHeader({\r\n title: controller.d('ProfileOverview/LoginTitle')\r\n }),\r\n m('.list', [\r\n controller.model().usernameIsSet() ?\r\n m('', [\r\n InfoRow({\r\n testId: 'retail_profile--username',\r\n labelText: controller.d('ProfileOverview/LabelUsername'),\r\n value: initialValues.username,\r\n horizontal: true,\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--password',\r\n labelText: controller.d('ProfileOverview/LabelPassword'),\r\n value: '•••••••',\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/password');\r\n }\r\n })\r\n ])\r\n : InfoRow({\r\n testId: 'retail_profile--create-username',\r\n labelText: controller.d('ProfileOverview/LabelUsername'),\r\n value: 'Opret brugernavn',\r\n horizontal: true,\r\n onclick: function () {\r\n Utils.ensightenEvent('opret', 'brugernavn');\r\n controller.goToRoute('/username');\r\n }\r\n })\r\n ]),\r\n userModel.isActive() ?\r\n [\r\n StepHeader({\r\n title: controller.d('ProfileOverview/PlaycardTitle')\r\n }),\r\n m('.list', [\r\n !controller.hasOfflineExclusion() ?\r\n InfoRow({\r\n testId: 'retail_profile--set-pincode',\r\n labelText: controller.d('ProfileOverview/LinkSetPincode'),\r\n horizontal: true,\r\n onclick: function () {\r\n if (!userModel.pincode()) {\r\n controller.goToRoute('/edit-pincode');\r\n } else {\r\n controller.goToRoute('/pincode');\r\n }\r\n }\r\n }) : null,\r\n playcardModel.playcardStatus() === 'order' ?\r\n InfoRow({\r\n testId: 'retail_profile--order-playcard',\r\n labelText: controller.d('ProfileOverview/LinkOrderPlaycard'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/manage');\r\n }\r\n }) : null,\r\n controller.hasOfflineExclusion() ?\r\n InfoRow({\r\n testId: 'retail_profile--reactivate-playcard',\r\n labelText: controller.d('ProfileOverview/LinkReactivatePlaycard'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/reactivate');\r\n }\r\n }) : null,\r\n playcardModel.playcardStatus() !== 'order' ?\r\n InfoRow({\r\n testId: 'retail_profile--block-playcard',\r\n labelText: controller.d('ProfileOverview/LinkBlockPlaycard'),\r\n subLabelText: controller.d('ProfileOverview/LinkBlockPlaycardSubText'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/manage');\r\n }\r\n }) : null,\r\n playcardModel.isPhysicalCard() && playcardModel.canReorder() ?\r\n InfoRow({\r\n testId: 'retail_profile--reorder-playcard',\r\n labelText: controller.d('ProfileOverview/LinkReorderPlaycard'),\r\n subLabelText: controller.d('ProfileOverview/LinkReorderPlaycardSubText'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/reorder');\r\n }\r\n }) : null,\r\n ])\r\n ] : null,\r\n StepHeader({\r\n title: controller.d('ProfileOverview/RestrictAccountTitle')\r\n }),\r\n m('.list', [\r\n InfoRow({\r\n testId: 'retail_profile--set-limits',\r\n labelText: controller.d('ProfileOverview/LinkSetLimits'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/offline-limits');\r\n }\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--restrict-account',\r\n labelText: controller.d('ProfileOverview/LinkRestrictAccount'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/restrict-account');\r\n }\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--close-account',\r\n labelText: controller.d('ProfileOverview/LinkCloseAccount'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/close-account');\r\n }\r\n })\r\n ]),\r\n StepHeader({\r\n title: controller.d('ProfileOverview/CommunicationTitle')\r\n }),\r\n m('.list', [\r\n InfoRow({\r\n testId: 'retail_profile--news-permission',\r\n labelText: controller.d('ProfileOverview/LabelNewsletterPermissions'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/emailPermissions');\r\n }\r\n }),\r\n InfoRow({\r\n testId: 'retail_profile--winnings-permission',\r\n labelText: controller.d('ProfileOverview/LabelWinnerMessagePermissions'),\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/emailWinningsPermissions');\r\n }\r\n }),\r\n ]),\r\n ])\r\n ])\r\n );\r\n };\r\n\r\n return ProfileOverview;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ViewPINCode', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n], function (m, Utils, StepHeader, Button, BackButton) {\r\n\r\n var ViewPINCode = function (controller) {\r\n const hasSetPincode = controller.model().initialValues.pincode !== null;\r\n return [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('div', {\r\n class: 'retail-page__content'\r\n },\r\n m('.retail-page__row', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n StepHeader({\r\n title: controller.d('ViewPINCode/PageTitle')\r\n }),\r\n hasSetPincode ?\r\n m('.retail-rich-text', [\r\n m('strong', controller.d('ViewPINCode/CurrentPINCodeText', { PINCODE: controller.model().initialValues.pincode })),\r\n m('p', controller.d('ViewPINCode/PINCodeRecommendation'))\r\n ])\r\n : null,\r\n ]\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n hasSetPincode ?\r\n m('.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.d('ViewPINCode/CTA'),\r\n uiTestId: 'retail-button-view-pincode--cancel',\r\n onclick: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n controller.goToRoute('/');\r\n }\r\n }\r\n })\r\n )\r\n : null,\r\n m('.retail-button-container.retail-button-container--centered',\r\n Button({\r\n uiTestId: 'retail-button-view-pincode--edit',\r\n class: 'retail-button--secondary',\r\n buttonText: controller.d('ViewPINCode/SecondCTA'),\r\n onclick: function () {\r\n controller.goToRoute('/edit-pincode');\r\n }\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return ViewPINCode;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PayoutMethod', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, BackButton, Button, StepHeader) {\r\n\r\n var StepPayoutMethod = function (controller) {\r\n\r\n return m('div', [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('PayoutMethod/PageTitle'),\r\n abstract: controller.d('PayoutMethod/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('PayoutMethod/SubmitButton'),\r\n onclick: function () {\r\n if (controller.goToUploadDocumentation && typeof controller.goToUploadDocumentation === 'function') {\r\n controller.goToUploadDocumentation();\r\n }\r\n }\r\n })\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepPayoutMethod;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PlaycardOverview', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/NotificationDialog'\r\n], function (m, Utils, InfoRow, Svg, StepHeader, Button, NotificationDialog) {\r\n\r\n var StepPlaycardOverview = function (controller) {\r\n var userModel = controller.model().fields;\r\n var playcardModel = controller.playcardModel();\r\n var playcardLinkButtonText = controller.d('PlaycardOverview/LinkOrderCard');\r\n var playcardLinkButtonSubText = null;\r\n\r\n // Only render links if dictionary exists\r\n var playCardLinkMobilePay = controller.d('PlaycardOverview/LinkMobilePayCard');\r\n var playcardLinkReorder = controller.d('PlaycardOverview/LinkReorderPlaycard');\r\n\r\n if (playcardModel.playcardStatus() === 'unblock') {\r\n playcardLinkButtonText = controller.d('PlaycardOverview/LinkUnblockCard');\r\n } else if (playcardModel.playcardStatus() === 'block') {\r\n playcardLinkButtonText = controller.d('PlaycardOverview/LinkBlockCard');\r\n playcardLinkButtonSubText = controller.d('PlaycardOverview/LinkBlockCardSubText');\r\n }\r\n\r\n return m('div', {\r\n class: 'retail-page__content has-two-columns'\r\n },\r\n m('div', {\r\n class: [\r\n 'retail-page__row has-rows-2',\r\n controller.showPlaycardFrontside() ? 'is-frontside' : 'is-backside'\r\n ].join(' ')\r\n }, [\r\n userModel.isPending() && controller.showPendingNotification() ?\r\n NotificationDialog({\r\n title: controller.d('UserIsPending'),\r\n onClose: function () {\r\n controller.showPendingNotification(false);\r\n }\r\n }) : null,\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1 retail-visual-playcard'\r\n }, [\r\n m('.retail-visual-playcard__name', userModel.firstName() + ' ' + userModel.lastName()),\r\n m('.retail-visual-playcard__id', playcardModel.digitalPlaycardNumber() ? Utils.splitString(playcardModel.digitalPlaycardNumber()) : null),\r\n m('.retail-visual-playcard__card-container', userModel.isActive() ? [\r\n m('button', {\r\n type: 'button',\r\n title: controller.d('PlaycardOverview/Frontside/CardHelpText'),\r\n class: 'retail-visual-playcard__image-container retail-visual-playcard__front-side',\r\n onmouseenter: function () {\r\n controller.mouseoverPlaycard(true);\r\n },\r\n onmouseleave: function () {\r\n controller.mouseoverPlaycard(false);\r\n },\r\n onclick: function () {\r\n controller.showPlaycardFrontside(false);\r\n }\r\n }, [\r\n Svg('touch', {\r\n class: 'retail-visual-playcard__hover-icon'\r\n }),\r\n Svg('spil-id-forside', {\r\n class: 'retail-visual-playcard__background-icon'\r\n })\r\n ]),\r\n m('button', {\r\n type: 'button',\r\n title: controller.d('PlaycardOverview/Backside/CardHelpText'),\r\n class: 'retail-visual-playcard__image-container retail-visual-playcard__back-side',\r\n onmouseenter: function () {\r\n controller.mouseoverPlaycard(true);\r\n },\r\n onmouseleave: function () {\r\n controller.mouseoverPlaycard(false);\r\n },\r\n onclick: function () {\r\n controller.showPlaycardFrontside(true);\r\n }\r\n }, m('.retail-visual-playcard__image', playcardModel.digitalPlaycardImage() ? m.trust(playcardModel.digitalPlaycardImage()) : null))\r\n ] : m('.retail-visual-playcard__empty', '')),\r\n userModel.isActive() ?\r\n m('.retail-visual-playcard__text-container', {\r\n class: controller.mouseoverPlaycard() ? 'is-visible' : null\r\n }, [\r\n m('.retail-visual-playcard__front-side-text', controller.d('PlaycardOverview/Frontside/CardHelpText')),\r\n m('.retail-visual-playcard__back-side-text', controller.d('PlaycardOverview/Backside/CardHelpText'))\r\n ]) : null\r\n ]\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-link-list__front-side', [\r\n StepHeader({\r\n title: controller.d('PlaycardOverview/Frontside/Title'),\r\n abstract: userModel.isActive() ? controller.d('PlaycardOverview/Frontside/Description') : controller.d('PlaycardOverview/Frontside/DescriptionPending')\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.appLink().Text,\r\n class: 'retail-button--white',\r\n onclick: function () {\r\n window.location.href = controller.appLink().Url;\r\n }\r\n }),\r\n ),\r\n userModel.isActive() && playcardModel.playcardStatus() === 'order' ?\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: playcardLinkButtonText,\r\n class: 'retail-button--white',\r\n onclick: function () {\r\n controller.goToRoute('/manage');\r\n }\r\n })\r\n ) : null\r\n ]),\r\n m('.retail-link-list__back-side', m('.list', [\r\n userModel.isActive() && playcardModel.playcardStatus() !== 'order' && playcardLinkReorder ?\r\n InfoRow({\r\n labelText: playcardLinkReorder,\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/reorder');\r\n }\r\n }) : null,\r\n userModel.isActive() ?\r\n InfoRow({\r\n labelText: playcardLinkButtonText,\r\n subLabelText: playcardLinkButtonSubText,\r\n horizontal: true,\r\n onclick: function () {\r\n controller.goToRoute('/manage');\r\n }\r\n }) : null,\r\n playCardLinkMobilePay && controller.mobilePayLink() ?\r\n InfoRow({\r\n labelText: playCardLinkMobilePay,\r\n subLabelText: controller.d('PlaycardOverview/LinkMobilePayCardSubText'),\r\n horizontal: true,\r\n onclick: controller.openMobilePay\r\n })\r\n : null,\r\n controller.subMenuLink() ?\r\n controller.subMenuLink().map(function (menuLink) {\r\n return InfoRow({\r\n labelText: menuLink.label,\r\n horizontal: true,\r\n onclick: function () {\r\n window.location.href = menuLink.url;\r\n }\r\n });\r\n })\r\n : null\r\n ]))\r\n ])\r\n ])\r\n );\r\n };\r\n\r\n return StepPlaycardOverview;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardIntro', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button'\r\n], function (m, Utils, StepHeader, Button) {\r\n\r\n var OrderPlaycardIntro = function (controller) {\r\n const playcardModel = controller.playcardModel();\r\n const canOrder = playcardModel.canReorder() || !playcardModel.isPhysicalCard();\r\n const canReorder = playcardModel.canReorder();\r\n const reorderFlow = window.location.hash === '#retail-playcard=/reorder' || window.location.hash === '#retail-profile=/reorder';\r\n let dictionaryKey = 'OrderPlaycardIntro';\r\n let pageDescriptionDictionaryText = canOrder && playcardModel.isPhysicalCard() ? 'PageDescriptionExistingCard' : 'PageDescription';\r\n\r\n let submit = () => {\r\n controller.goToRoute('/order/pincode-option');\r\n };\r\n\r\n if (!reorderFlow && playcardModel.playcardStatus() === 'unblock') {\r\n dictionaryKey = 'UnblockPlaycard';\r\n pageDescriptionDictionaryText = 'PageDescription';\r\n submit = controller.togglePlaycardStatus;\r\n } else if (!reorderFlow && playcardModel.playcardStatus() === 'block') {\r\n dictionaryKey = 'BlockPlaycard';\r\n pageDescriptionDictionaryText = 'PageDescription';\r\n submit = controller.togglePlaycardStatus;\r\n } else if (!reorderFlow && Utils.isRetailIpad()) {\r\n dictionaryKey = 'RetailIpadPlaycard';\r\n pageDescriptionDictionaryText = 'PageDescription';\r\n } else if (!canReorder && playcardModel.playcardStatus() !== 'order') {\r\n dictionaryKey = 'OrderPlaycardIntro/Cooldown';\r\n }\r\n\r\n return m('div', {\r\n class: 'retail-page__content retail-page__no-progress'\r\n },\r\n m('.retail-page__row', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(`${dictionaryKey}/PageTitle`),\r\n abstract: controller.d(`${dictionaryKey}/${pageDescriptionDictionaryText}`),\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-button-container', {\r\n class: !canOrder ? 'retail-button-container--centered' : null\r\n }, [\r\n Button({\r\n class: 'retail-button--secondary',\r\n buttonText: controller.d(`${dictionaryKey}/CancelButton`),\r\n onclick: function () {\r\n controller.goToRoute('/');\r\n }\r\n }),\r\n canOrder ? Button({\r\n buttonText: controller.d(`${dictionaryKey}/SubmitButton`),\r\n onclick: submit\r\n }) : null\r\n ]),\r\n ])\r\n ])\r\n );\r\n };\r\n\r\n return OrderPlaycardIntro;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardConfirm', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow'\r\n], function (m, Utils, Svg, BackButton, Button, StepHeader, InfoRow) {\r\n\r\n var StepOrderPlaycardConfirm = function (controller) {\r\n var userModel = controller.model().fields;\r\n var dictionaryKey = 'OrderPlaycard/';\r\n\r\n if (Utils.isRetailIpad()) {\r\n dictionaryKey = 'RetailIpadPlaycard/';\r\n }\r\n\r\n return [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, '', Utils.isRetailIpad() ? Svg('spil-id-forside', {\r\n class: 'retail-visual-playcard__icon'\r\n }) : null),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n StepHeader({\r\n title: controller.d(dictionaryKey + 'PageTitle'),\r\n abstract: controller.d(dictionaryKey + 'PageDescription')\r\n }),\r\n m('.retail-rich-text', [\r\n m('h3', { class: 'retail-rich-text__title' }, controller.d('OrderPlaycard/PincodeChoiceLabel')),\r\n InfoRow({\r\n labelText: controller.d('OrderPlaycard/PincodeLabel'),\r\n value: userModel.pincode(),\r\n horizontal: true,\r\n class: 'retail-info-row--not-bold'\r\n }),\r\n m('.retail-rich-text__title', controller.d('OrderPlaycard/ShipPlaycardTitle')),\r\n m('div', userModel.firstName() + ' ' + userModel.lastName()),\r\n m('div', userModel.street() + ' ' + (userModel.houseNumber() ? userModel.houseNumber() : '') + (userModel.level() ? ', ' + userModel.level() : '') + (userModel.door() ? ' ' + userModel.door() : '')),\r\n m('div', userModel.zipCode() + ' ' + userModel.city()),\r\n m('.notice', controller.d('OrderPlaycard/AddressFromCPRRegistryNotice'))\r\n ]),\r\n m('.retail-button-container', [\r\n Button({\r\n class: 'retail-button--white',\r\n buttonText: controller.d(dictionaryKey + 'CancelButton'),\r\n onclick: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n controller.goToRoute('/');\r\n }\r\n }\r\n }),\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d(dictionaryKey + 'SubmitButton'),\r\n onclick: controller.confirmPlaycardOrder\r\n })\r\n ])\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return StepOrderPlaycardConfirm;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardPincode', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/RadioButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton'\r\n], function (m, StepHeader, Button, RadioButton, BackButton) {\r\n\r\n var OrderPlaycardPincode = function (controller) {\r\n const dictionaryKey = 'OrderPlaycardPincode';\r\n const playcardModel = controller.playcardModel();\r\n const userModel = controller.model().fields;\r\n\r\n var selectOption = function (type) {\r\n playcardModel.orderWithSamePincode(type === 'samePincode');\r\n playcardModel.orderWithNewPincode(type === 'newPincode');\r\n };\r\n\r\n return [\r\n !controller.hideBackButton() ? m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(`${dictionaryKey}/PageTitle`),\r\n abstract: controller.d(`${dictionaryKey}/PageDescription`),\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-rich-text',\r\n m('.retail-rich-text__title.retail-rich-text__title--spacing-md', controller.d(`${dictionaryKey}/OptionsLabel`))\r\n ),\r\n m('.retail-radio-button__group', [\r\n RadioButton({\r\n model: playcardModel.orderWithSamePincode,\r\n labelText: controller.d(`${dictionaryKey}/KeepPincodeLabel`, { PINCODE: userModel.pincode() }),\r\n id: 'offlineWagerLimitPeriodDaily',\r\n name: 'keepPincode',\r\n onchange: function () {\r\n selectOption('samePincode');\r\n }\r\n }),\r\n RadioButton({\r\n model: playcardModel.orderWithNewPincode,\r\n labelText: controller.d(`${dictionaryKey}/CreateNewPincodeLabel`),\r\n id: 'offlineWagerLimitPeriodWeekly',\r\n name: 'createNewPincode',\r\n onchange: function () {\r\n selectOption('newPincode');\r\n }\r\n }),\r\n ]),\r\n m('.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.d(`${dictionaryKey}/SubmitButton`),\r\n onclick: function () {\r\n if (playcardModel.orderWithSamePincode()) {\r\n controller.goToRoute('/order/confirm');\r\n } else if (playcardModel.orderWithNewPincode()) {\r\n controller.goToRoute('/edit-pincode');\r\n }\r\n }\r\n })\r\n ),\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return OrderPlaycardPincode;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ReactivatePlaycard', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, BackButton, Button, StepHeader) {\r\n\r\n var StepReoctivatePlaycard = function (controller) {\r\n return m('', [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('ReactivatePlaycard/PageTitle'),\r\n abstract: controller.d('ReactivatePlaycard/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-rich-text', [\r\n m('.retail-rich-text__title', controller.d('ReactivatePlaycard/ChoiceTitle')),\r\n ]),\r\n m('.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('ReactivatePlaycard/SubmitButton'),\r\n onclick: () => {\r\n controller.reactivatePlaycardWithNewPincode();\r\n }\r\n })\r\n ),\r\n m('.retail-button-container.retail-button-container--centered',\r\n Button({\r\n class: 'retail-button--white',\r\n buttonText: controller.d('ReactivatePlaycard/CancelButton'),\r\n onclick: () => {\r\n controller.reactivatePlaycard(true);\r\n }\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepReoctivatePlaycard;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/CloseAccount', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Link',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, BackButton, Button, Link, StepHeader) {\r\n\r\n var StepCloseAccount = function (controller) {\r\n var userModel = controller.model().fields;\r\n var dictionaryKey = '';\r\n\r\n if (!userModel.isRetailAccount()) {\r\n dictionaryKey = 'OnlineAccount/';\r\n }\r\n\r\n return m('div', [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({ onclick: controller.backLinkCallback })) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('CloseAccount/PageTitle'),\r\n abstract: controller.d('CloseAccount/' + dictionaryKey + 'PageDescription')\r\n }),\r\n m('div', controller.d('CloseAccount/CloseNotice'))\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n Button({\r\n buttonText: controller.d('CloseAccount/SubmitButton'),\r\n onclick: function () {\r\n controller.restrictAccountSubmit('close');\r\n }\r\n }),\r\n m('.info-message', controller.d('CloseAccount/RofusText')),\r\n controller.rofusLink('InfoLink') ?\r\n m('div',\r\n Link({\r\n class: 'retail-link--full-width',\r\n href: controller.rofusLink('InfoLink').Url,\r\n target: controller.rofusLink('InfoLink').Target,\r\n text: controller.rofusLink('InfoLink').Text\r\n })\r\n )\r\n : null,\r\n controller.rofusLink('TreatmentPlacesLink') ?\r\n m('div',\r\n Link({\r\n class: 'retail-link--full-width',\r\n href: controller.rofusLink('TreatmentPlacesLink').Url,\r\n target: controller.rofusLink('TreatmentPlacesLink').Target,\r\n text: controller.rofusLink('TreatmentPlacesLink').Text\r\n })\r\n )\r\n : null,\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepCloseAccount;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ConfirmAccountRestriction', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Link',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n], function (m, Utils, BackButton, Button, Link, StepHeader) {\r\n\r\n // This step is now only for restriction with 24hours.\r\n // All other scenarios is using DsLogin identify confirm, and does not go through this template.\r\n\r\n var StepConfirmAccountRestriction = function (controller) {\r\n var userModel = controller.model().fields;\r\n var onlineAccount = userModel.isRetailAccount() ? '' : '/OnlineAccount';\r\n var dictionaryKey = 'RestrictAccount/Confirm/24hours' + onlineAccount;\r\n\r\n var pageDescription = dictionaryKey + '/PageDescription';\r\n\r\n return m('div', [\r\n m('.retail-page__button-container', BackButton()),\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(dictionaryKey + '/PageTitle'),\r\n abstract: controller.d(pageDescription)\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n\r\n m('.retail-button-container',\r\n [\r\n Button({\r\n class: 'retail-button--white',\r\n buttonText: controller.d(dictionaryKey + '/CancelButton'),\r\n onclick: function () {\r\n var returnUrl = Utils.getQueryParam('returnUrl');\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n controller.route('/')();\r\n }\r\n }\r\n }),\r\n Button({\r\n buttonText: controller.d(dictionaryKey + '/SubmitButton'),\r\n onclick: function () {\r\n controller.restrictAccount();\r\n }\r\n })\r\n ]),\r\n m('.info-message', controller.d('CloseAccount/RofusText')),\r\n controller.rofusLink('InfoLink') ?\r\n m('div',\r\n Link({\r\n class: 'retail-link--full-width',\r\n href: controller.rofusLink('InfoLink').Url,\r\n target: controller.rofusLink('InfoLink').Target,\r\n text: controller.rofusLink('InfoLink').Text\r\n })\r\n )\r\n : null,\r\n controller.rofusLink('TreatmentPlacesLink') ?\r\n m('div',\r\n Link({\r\n class: 'retail-link--full-width',\r\n href: controller.rofusLink('TreatmentPlacesLink').Url,\r\n target: controller.rofusLink('TreatmentPlacesLink').Target,\r\n text: controller.rofusLink('TreatmentPlacesLink').Text\r\n })\r\n )\r\n : null,\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepConfirmAccountRestriction;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ConfirmWagerLimits', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow',\r\n], function (m, Utils, BackButton, Button, StepHeader, InfoRow) {\r\n\r\n var StepConfirmWagerLimits = function (controller) {\r\n\r\n if (controller.model().userLimits().changes().length === 0) {\r\n controller.goToRoute('/offline-limits'); // no pending changes lets go back to limits.\r\n }\r\n\r\n this.cancel = function () {\r\n controller.model().userLimits().reset();\r\n window.history.back();\r\n };\r\n\r\n return m('div', [\r\n m('.retail-page__button-container', BackButton({\r\n onclick: this.cancel\r\n }\r\n )),\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('WagerLimits/Confirm/PageTitle'),\r\n abstract: controller.d('WagerLimits/Confirm/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n controller.model().userLimits().changes().map(function (limit) {\r\n return new InfoRow({\r\n labelText: controller.d('WagerLimits/' + limit.type() + 'Limit'),\r\n value: limit.value() ? controller.d('WagerLimits/ChangedLimit', {\r\n TYPE: controller.d('WagerLimits/' + limit.type()),\r\n VALUE: limit.formatted(),\r\n ACTIVEFROM: limit.stored() > limit.value() || limit.stored() === null || limit.state() === 'revert' ? controller.d('WagerLimits/Confirm/Now') : Utils.formatDateTime(new Date(), 1)\r\n }) : controller.d('WagerLimits/DeletedLimit', {\r\n TYPE: controller.d('WagerLimits/' + limit.type()),\r\n ACTIVEFROM: Utils.formatDateTime(new Date(), 1)\r\n })\r\n });\r\n }),\r\n m('.retail-button-container', [\r\n Button({\r\n class: 'retail-button--white',\r\n buttonText: controller.d('WagerLimits/Confirm/CancelButton'),\r\n onclick: this.cancel\r\n }),\r\n Button({\r\n buttonText: controller.d('WagerLimits/Confirm/ConfirmButton'),\r\n onclick: controller.confirmLimit\r\n })\r\n ])\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepConfirmWagerLimits;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/RestrictAccount', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Calendar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/RadioButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Link'\r\n], function (m, Calendar, BackButton, InfoRow, ErrorMessage, StepHeader, RadioButton, Button, Link) {\r\n\r\n var StepRestrictAccount = function (controller) {\r\n var userModel = controller.model().fields;\r\n var dictionaryKey = '';\r\n\r\n if (!userModel.isRetailAccount()) {\r\n dictionaryKey = 'OnlineAccount/';\r\n }\r\n\r\n var selectType = function (type) {\r\n userModel.restrict24hours(type === '24hour');\r\n userModel.restrictCustomDate(type === 'customDate');\r\n userModel.restrictUnlimited(type === 'unlimited');\r\n userModel.restrictType(type);\r\n controller.noPeriodSelected(false);\r\n };\r\n\r\n return m('div', [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({ onclick: controller.backLinkCallback })) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('RestrictAccount/PageTitle'),\r\n abstract: controller.d('RestrictAccount/' + dictionaryKey + 'PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-radio-button__group', [\r\n RadioButton({\r\n model: userModel.restrict24hours,\r\n labelText: controller.d('RestrictAccount/Label24hours'),\r\n id: 'restrict24hours',\r\n name: 'restrictGroup',\r\n onchange: function () {\r\n if (userModel.restrict24hours()) {\r\n selectType('24hour');\r\n }\r\n }\r\n }),\r\n userModel.restrict24hours() ? InfoRow({\r\n value: controller.d('RestrictAccount/' + dictionaryKey + 'Restrict24HoursDescription')\r\n }) : null,\r\n RadioButton({\r\n model: userModel.restrictCustomDate,\r\n labelText: controller.d('RestrictAccount/LabelChooseDate'),\r\n labelClass: 'js-restrict-account-page-date',\r\n id: 'restrictCustomDate',\r\n name: 'restrictGroup',\r\n onchange: function () {\r\n if (userModel.restrictCustomDate()) {\r\n selectType('customDate');\r\n }\r\n }\r\n }),\r\n userModel.restrictCustomDate() ? [\r\n InfoRow({\r\n value: controller.d('RestrictAccount/' + dictionaryKey + 'RestrictCustomDateDescription')\r\n }),\r\n Calendar(userModel.restrictDate, controller.calendarStartDate(), controller.calendarEndDate(), '.js-restrict-account-page-date'),\r\n ]\r\n : null,\r\n RadioButton({\r\n model: userModel.restrictUnlimited,\r\n labelText: controller.d('RestrictAccount/LabelUnlimited'),\r\n id: 'restrictUnlimited',\r\n name: 'restrictGroup',\r\n onchange: function () {\r\n if (userModel.restrictUnlimited()) {\r\n selectType('unlimited');\r\n }\r\n }\r\n }),\r\n userModel.restrictUnlimited() ? InfoRow({\r\n value: controller.d('RestrictAccount/' + dictionaryKey + 'RestrictUnlimitedDescription')\r\n }) : null,\r\n ]),\r\n controller.noPeriodSelected() ? ErrorMessage([controller.d('Errors/NoPeriodSelected')]) : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.d('RestrictAccount/SubmitButton'),\r\n onclick: function () {\r\n controller.restrictAccountSubmit();\r\n }.bind(this)\r\n })\r\n ),\r\n m('.info-message', controller.d('CloseAccount/RofusText')),\r\n controller.rofusLink('InfoLink') ?\r\n m('div',\r\n Link({\r\n class: 'retail-link--full-width',\r\n href: controller.rofusLink('InfoLink').Url,\r\n target: controller.rofusLink('InfoLink').Target,\r\n text: controller.rofusLink('InfoLink').Text\r\n })\r\n )\r\n : null,\r\n controller.rofusLink('TreatmentPlacesLink') ?\r\n m('div',\r\n Link({\r\n class: 'retail-link--full-width',\r\n href: controller.rofusLink('TreatmentPlacesLink').Url,\r\n target: controller.rofusLink('TreatmentPlacesLink').Target,\r\n text: controller.rofusLink('TreatmentPlacesLink').Text\r\n })\r\n )\r\n : null,\r\n ])\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepRestrictAccount;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ReorderPlaycard', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, Utils, BackButton, Button, StepHeader) {\r\n\r\n var StepReorderPlaycard = function (controller) {\r\n var userModel = controller.model().fields;\r\n\r\n return m('', [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('.retail-page__content',\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d('ReorderPlaycard/PageTitle'),\r\n abstract: controller.d('ReorderPlaycard/PageDescription')\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, controller.playcardModel().canReorder() ? [\r\n m('.retail-rich-text', [\r\n m('.retail-rich-text__title', controller.d('OrderPlaycard/ShipPlaycardTitle')),\r\n m('div', userModel.firstName() + ' ' + userModel.lastName()),\r\n m('div', userModel.street() + ' ' + (userModel.houseNumber() ? userModel.houseNumber() : '') + (userModel.level() ? ', ' + userModel.level() : '') + (userModel.door() ? ' ' + userModel.door() : '')),\r\n m('div', userModel.zipCode() + ' ' + userModel.city()),\r\n m('.notice', controller.d('OrderPlaycard/AddressFromCPRRegistryNotice'))\r\n ]),\r\n m('.retail-button-container', [\r\n Button({\r\n class: 'retail-button--white',\r\n buttonText: controller.d('ReorderPlaycard/CancelButton'),\r\n onclick: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location.href = Utils.getQueryParam('returnUrl');\r\n }\r\n\r\n controller.goToRoute('/');\r\n }\r\n }),\r\n Button({\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d('ReorderPlaycard/SubmitButton'),\r\n onclick: controller.reOrderPlaycard\r\n })\r\n ])\r\n ] : m('div', controller.d('ReorderPlaycard/CoolDownMessage')))\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return StepReorderPlaycard;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodConfirm', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InfoRow'\r\n], function (m, Utils, ProgressBar, BackButton, Button, StepHeader, InfoRow) {\r\n\r\n const getVariant = (isRetailAccount, initiator) => {\r\n if (initiator) {\r\n return '';\r\n }\r\n\r\n if (!isRetailAccount) {\r\n return '/Variant2';\r\n } else {\r\n return '/Variant1';\r\n }\r\n };\r\n\r\n const LimitPeriodConfirm = function (controller, initiator) {\r\n var userModel = controller.model().fields;\r\n var dictionaryKey = controller.currentStep().dictionaryKey;\r\n var limitPeriodType;\r\n\r\n const variant = getVariant(userModel.isRetailAccount(), initiator);\r\n\r\n const forceRestartFlowIfNoTypeOrValue = () => {\r\n userModel.offlineWagerLimitPeriodDaily(null);\r\n userModel.offlineWagerLimitPeriodWeekly(null);\r\n userModel.offlineWagerLimitPeriodMonthly(null);\r\n\r\n if (typeof controller.goToRoute === 'function') {\r\n controller.goToRoute('/');\r\n }\r\n };\r\n\r\n if (!userModel.offlineWagerLimit()) {\r\n forceRestartFlowIfNoTypeOrValue();\r\n }\r\n\r\n switch (userModel.offlineWagerLimitPeriod()) {\r\n case 'daily':\r\n limitPeriodType = controller.d(`${dictionaryKey}/Daily`);\r\n break;\r\n case 'weekly':\r\n limitPeriodType = controller.d(`${dictionaryKey}/Weekly`);\r\n break;\r\n case 'monthly':\r\n limitPeriodType = controller.d(`${dictionaryKey}/Monthly`);\r\n break;\r\n default:\r\n forceRestartFlowIfNoTypeOrValue();\r\n break;\r\n }\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep\r\n })) : null,\r\n m('.retail-page__content', {\r\n class: controller.hideBackButton() ? 'retail-page__no-progress' : ''\r\n },\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(`${dictionaryKey + variant}/PageTitle`, { TYPE: limitPeriodType }),\r\n abstract: controller.d(`${dictionaryKey + variant}/PageDescription`)\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2 retail-rich-text'\r\n }, [\r\n m('h3', { class: 'retail-rich-text__title' }, controller.d(`${dictionaryKey}/TypeLabel`)),\r\n InfoRow({\r\n labelText: controller.d(`${dictionaryKey}/InputLabel`, { TYPE: Utils.capitalize(limitPeriodType) }),\r\n value: Utils.formatCurrency(userModel.offlineWagerLimit()),\r\n horizontal: true,\r\n class: 'retail-info-row--not-bold'\r\n }),\r\n m('h3', { class: 'retail-rich-text__title' }, controller.d(`${dictionaryKey}/PendingLabel`)),\r\n InfoRow({\r\n labelText: controller.d(`${dictionaryKey + variant}/EffectiveLabel`),\r\n horizontal: true,\r\n class: 'retail-info-row--not-bold'\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d(`${dictionaryKey}/SubmitButton`),\r\n onclick: controller.submit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return LimitPeriodConfirm;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UpdateOverview', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button'\r\n], function (m, StepHeader, Button) {\r\n\r\n var UpdateOverview = function (controller) {\r\n var userModel = controller.model().fields;\r\n\r\n return m('div', {\r\n class: 'retail-page__content retail-page__no-progress'\r\n },\r\n m('.retail-page__row', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n StepHeader({\r\n title: controller.d('UpdateOverview/PageTitle', { NAME: userModel.firstName() }),\r\n abstract: controller.d('UpdateOverview/PageDescription', { NAME: userModel.firstName() })\r\n })\r\n ]\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-button-container', [\r\n Button({\r\n buttonText: controller.d('UpdateOverview/SubmitButton'),\r\n onclick: function () {\r\n controller.goToRoute('/email');\r\n }\r\n }),\r\n Button({\r\n class: 'retail-button--white',\r\n buttonText: controller.d('UpdateOverview/CancelButton'),\r\n onclick: function () {\r\n window.location.href = controller.receiptLink().Url;\r\n }\r\n }),\r\n ])\r\n ])\r\n ])\r\n );\r\n };\r\n\r\n return UpdateOverview;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryList', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/GameHistoryNavigation',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Link',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/RetailWallet',\r\n], (m, Utils, GameHistoryNavigation, StepHeader, Svg, Link, Button, Loader, RetailWallet) => {\r\n\r\n const GameHistoryList = function (controller) {\r\n if (controller.isLoading()) return Loader();\r\n\r\n return m('.retail-page', [\r\n m('.retail-page__content', {\r\n class: !controller.isWebview() && 'retail-page__no-progress'\r\n }, [\r\n\r\n !controller.isWebview() && m('.pam-page__header', StepHeader({ title: controller.d('List/PageTitle') })),\r\n\r\n GameHistoryNavigation(controller),\r\n\r\n controller.state.type() === 'afsluttede' && controller.uncollectedPrizes()?.amount > 0\r\n ? RetailWallet({\r\n title: controller.d('Wallet/Title'),\r\n amount: controller.d('Wallet/Amount',\r\n { AMOUNT: Utils.convertCentsToKronerAndFormat(controller.uncollectedPrizes().amount) }),\r\n amountNotice: controller.d('Wallet/AmountNotice'),\r\n pickupNotice: controller.d('Wallet/PickupNotice')\r\n })\r\n : null,\r\n\r\n controller.state.items().length\r\n ? [\r\n controller.state.items().map(function (item) {\r\n return m('.game-history-card', {\r\n class: [\r\n item.win > 0 && item.winStatus === 'PENDING' ? 'has-active-payout' : null,\r\n item.win > 0 && item.winStatus !== 'PENDING' ? 'has-payout' : null,\r\n controller.payoutSlideOpen() === item.id ? 'is-open' : null\r\n ].join(' ')\r\n }, [\r\n m('.game-history-card__row', [\r\n m('.game-history-card__column-1', [\r\n m('.game-history-card__title', item.type),\r\n m('div', Utils.formatDateShort(item.createdAt)),\r\n m('div', item.channel)\r\n ]),\r\n m('.game-history-card__column-2', [\r\n Link({\r\n onclick: () => {\r\n controller.viewBetslipDetails(item);\r\n },\r\n class: 'game-history-card__title',\r\n text: controller.d('List/ViewBetSlip')\r\n }),\r\n m('.game-wager', Utils.convertCentsToKronerAndFormat(item.wager))\r\n ])\r\n ]),\r\n\r\n item.win > 0\r\n ? m('.game-history-card__row', [\r\n m('.game-history-card__column-1', m('.game-history-card__title', controller.d('List/PrizeLabel'))),\r\n m('.game-history-card__column-2', m('.game-history-card__title', Utils.convertCentsToKronerAndFormat(item.win)))\r\n ])\r\n : null,\r\n\r\n item.win > 0\r\n ? m('.payout-container.is-retail',\r\n m('button.payout-container__toggle-button', {\r\n type: 'button',\r\n title: controller.d('List/PrizeLabel'),\r\n onclick: () => {\r\n let setSlide;\r\n\r\n if (controller.payoutSlideOpen() === item.id) {\r\n Utils.ensightenEvent('cashout', 'slide_close');\r\n setSlide = null;\r\n } else {\r\n Utils.ensightenEvent('cashout', 'slide_open');\r\n setSlide = item.id;\r\n }\r\n\r\n controller.payoutSlideOpen(setSlide);\r\n }\r\n }, [\r\n\r\n Svg('arrow_left', { class: 'payout-container__toggle-icon' }),\r\n\r\n item.winStatus === 'PENDING' && Svg('prize-available', {\r\n class: 'payout-container__toggle-payout-icon'\r\n }),\r\n ]),\r\n\r\n m('.payout__info', [\r\n m('.payout__info-container', [\r\n m('.payout__info-title', controller.d('List/PayoutInfo/Title')),\r\n m('.payout__info-abstract', controller.d('List/PayoutInfo/Abstract')),\r\n m('.payout__info-amount', Utils.convertCentsToKronerAndFormat(item.win))\r\n ]),\r\n\r\n (item.winStatus === 'PAID' || item.winStatus === 'CLAIMED') || !item.canBePaidOut\r\n ? m('div', controller.d('List/PrizePaidText'))\r\n : Button({\r\n buttonText: controller.d('List/PayoutInfo/ButtonLabel'),\r\n class: 'retail-button--white',\r\n onclick: () => {\r\n controller.payoutSlideOpen(item.id);\r\n Utils.ensightenEvent('cashout', 'udbetal');\r\n m.route(`/prize/${item.id}`);\r\n },\r\n onfocus: () => {\r\n controller.payoutSlideOpen(item.id);\r\n }\r\n })\r\n ])\r\n )\r\n : null\r\n ]);\r\n }),\r\n\r\n m('.retail-button-container retail-button-container--centered', [\r\n controller.state.hasPrev()\r\n ? Button({\r\n class: 'retail-button--secondary',\r\n buttonText: controller.d('List/LoadPrevious'),\r\n onclick: () => {\r\n let page = parseInt(controller.state.page(), 10);\r\n controller.state.page(--page);\r\n }\r\n })\r\n : null,\r\n\r\n controller.state.hasNext()\r\n ? Button({\r\n buttonText: controller.d('List/LoadNext'),\r\n onclick: () => {\r\n let page = parseInt(controller.state.page(), 10);\r\n controller.state.page(++page);\r\n }\r\n })\r\n : null\r\n ])\r\n ]\r\n : m('.game-history__no-games', [\r\n Svg('grey-dice', { class: 'game-history__no-games-icon' }),\r\n\r\n m('.game-history__no-games-text',\r\n controller.state.type() === 'aktive'\r\n ? controller.d('List/NoActiveGames')\r\n : controller.d('List/NoFinishedGames')\r\n )\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n return GameHistoryList;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryDetails', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/GameHistoryNavigation',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/IconButton',\r\n], (m, GameHistoryNavigation, StepHeader, IconButton) => {\r\n\r\n const GameHistoryDetails = (controller) => {\r\n return m('.retail-page', [\r\n m('.retail-page__content retail-page__no-progress', [\r\n\r\n !controller.isWebview() && m('.pam-page__header', StepHeader({ title: controller.d('List/PageTitle') })),\r\n\r\n GameHistoryNavigation(controller),\r\n\r\n m('.retail-game-receipt__container', [\r\n\r\n m('.retail-game-receipt__close-button',\r\n IconButton({\r\n icon: 'close',\r\n class: 'retail-game-receipt__close-button',\r\n title: 'Vend tilbage til oversigten'\r\n })),\r\n\r\n controller.game().hasValidCouponUrl\r\n ? m('iframe.retail-game-receipt__iframe', {\r\n onload: controller.resizeIframe,\r\n config: controller.render.depend(`iframe-${controller.game().id}`),\r\n src: controller.game().couponUrl,\r\n frameborder: '0',\r\n allowfullscreen: '0',\r\n id: controller.game().id\r\n })\r\n : m('div', 'No coupon available')\r\n\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n return GameHistoryDetails;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryOverview', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/GameHistoryNavigation',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/LimitOverview'\r\n], (m, Utils, GameHistoryNavigation, StepHeader, Loader, LimitOverview) => {\r\n const GameHistoryOverview = (controller) => {\r\n if (controller.isLoading()) return Loader();\r\n\r\n return m('.retail-page', [\r\n\r\n m('.retail-page__content', {\r\n class: !controller.isWebview() && 'retail-page__no-progress'\r\n }, [\r\n\r\n !controller.isWebview() && m('.pam-page__header', StepHeader({ title: controller.d('List/PageTitle') })),\r\n\r\n GameHistoryNavigation(controller),\r\n\r\n LimitOverview({\r\n title: controller.d('LimitOverview/Title', { TYPE: controller.d(`LimitOverview/${Utils.capitalize(controller.limitType())}Label`) }),\r\n abstract: controller.d('LimitOverview/Abstract'),\r\n totalAmount: controller.totalAmount(),\r\n currentAmount: controller.currentAmount(),\r\n currentAmountLabel: controller.d('LimitOverview/CurrentAmountLabel'),\r\n limitLabel: controller.d('LimitOverview/LimitLabel'),\r\n limitInfo: controller.d('LimitOverview/LimitInfo'),\r\n }),\r\n\r\n ])\r\n ]);\r\n };\r\n\r\n return GameHistoryOverview;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryPrize', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Fireworks',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader'\r\n], function (m, Render, Utils, Button, Fireworks, BackButton, Loader) {\r\n\r\n var GameHistoryPrize = function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n var render = Render();\r\n\r\n render.ready.then(function () {\r\n var storelocator = document.querySelector('.js-shape-storelocator');\r\n if (storelocator && storelocator.href) {\r\n // If we find and js anchor point and the page is loaded with dsApplicationId, then replace href.\r\n if (controller.isWebview()) {\r\n storelocator.href = 'app://storelocator';\r\n } else {\r\n // otherwise presume we are on desktop with no storelocator feature enabled. Hence strip the a tag.\r\n var span = document.createElement('span');\r\n var innerHTML = storelocator.innerHTML;\r\n var spanText = document.createTextNode(innerHTML);\r\n span.appendChild(spanText);\r\n storelocator.parentNode.replaceChild(span, storelocator);\r\n }\r\n }\r\n });\r\n\r\n return m('.retail-page', { config: render.depend('container') }, [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('div', {\r\n class: [\r\n 'retail-page__content',\r\n controller.game().hasPayout ? 'has-payout' : null\r\n ].join(' ')\r\n }, [\r\n m('.retail-prize__container', [\r\n Fireworks({\r\n title: controller.d('Prize/PrizeTitle'),\r\n amount: Utils.convertCentsToKronerAndFormat(controller.game().win)\r\n }),\r\n m('.retail-rich-text', [\r\n controller.game().winStatus === 'PENDING' ?\r\n [\r\n m('strong', controller.d('Prize/PayoutPossibilities/Title')),\r\n m('.retail-payout-possibilities__self-title', controller.d('Prize/PayoutPossibilities/SelfServiceTitle')),\r\n m('.retail-payout-possibilities__self-abstract', controller.d('Prize/PayoutPossibilities/SelfServiceAbstract')),\r\n m('.retail-button-container.retail-button-container--centered',\r\n Button({\r\n class: 'retail-payout__button',\r\n buttonText: controller.d('Prize/PayoutPossibilities/SelfServiceButtonLabel'),\r\n onclick: function () {\r\n m.route('/payout/' + controller.game().id);\r\n }\r\n }),\r\n ),\r\n m('.retail-account-separator', {\r\n 'data-text': controller.d('Prize/PayoutPossibilities/SeparatorText')\r\n }),\r\n m('.retail-payout-possibilities__dealer-text', m.trust(controller.dealerText())),\r\n m('.retail-payout-possibilities__customer-service-text', m.trust(controller.customerServiceText()))\r\n ] : null\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n return GameHistoryPrize;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryPayout', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt'\r\n], function (m, Utils, StepHeader, Button, BackButton, Loader, Receipt) {\r\n\r\n var GameHistoryPayout = function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n if (controller.showReceipt()) {\r\n return Receipt(controller);\r\n }\r\n\r\n return m('.retail-page', [\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton()) : null,\r\n m('div', {\r\n class: [\r\n 'retail-page__content',\r\n controller.game().hasPayout ? 'has-payout' : null\r\n ].join(' ')\r\n }, [\r\n StepHeader({\r\n title: controller.hasBankAccount() ? controller.d('Payout/BankAccountPageTitle') : controller.d('Payout/NemKontoPageTitle'),\r\n }),\r\n m('.retail-prize__container', [\r\n m('h2', {\r\n class: 'retail-prize__title'\r\n }, controller.d('Payout/PrizeTitle')),\r\n m('.retail-prize__amount', Utils.convertCentsToKronerAndFormat(controller.game().win)),\r\n m('.retail-rich-text', [\r\n m('div', m.trust(controller.payoutText())),\r\n m('.retail-button-container', [\r\n Button({\r\n buttonText: controller.d('Payout/ConfirmButton'),\r\n onclick: function () {\r\n controller.executePayout();\r\n }\r\n }),\r\n Button({\r\n class: 'retail-button--white',\r\n buttonText: controller.d('Payout/CancelButton'),\r\n onclick: function () {\r\n window.history.back();\r\n }\r\n })\r\n ]),\r\n m('.retail-payout-possibilities__customer-service-text', m.trust(controller.customerServiceText()))\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n return GameHistoryPayout;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ConfirmCallback', [\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n], function (Loader) {\r\n\r\n var ConfirmCallback = function (controller) {\r\n return Loader({ loaderText: controller.d('RestrictCloseAccountLoaderText') });\r\n };\r\n\r\n return ConfirmCallback;\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Intro', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button'\r\n], function (m, StepHeader, Button) {\r\n\r\n var Intro = function (controller) {\r\n let dictionaryKey = '';\r\n\r\n if (!controller.model().fields.pincode() && controller.model().fields.offlineWagerLimit()) {\r\n dictionaryKey = 'Variant1/';\r\n } else if (controller.model().fields.isRetailAccount()) {\r\n if (!controller.model().fields.pincode() && controller.model().fields.hasOldOfflineWagerLimit()) {\r\n dictionaryKey = 'Variant4/';\r\n } else if (!controller.model().fields.pincode()) {\r\n dictionaryKey = 'Variant3/';\r\n } else {\r\n dictionaryKey = 'Variant2/';\r\n }\r\n } else {\r\n if (!controller.model().fields.pincode()) {\r\n dictionaryKey = 'Variant6/';\r\n } else {\r\n dictionaryKey = 'Variant5/';\r\n }\r\n }\r\n\r\n\r\n return m('div', {\r\n class: 'retail-page__content retail-page__no-progress'\r\n },\r\n m('.retail-page__row', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n StepHeader({\r\n title: controller.d(`Intro/${dictionaryKey}PageTitle`),\r\n abstract: controller.d(`Intro/${dictionaryKey}PageDescription`)\r\n })\r\n ]\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.d(`Intro/${dictionaryKey}CTA`),\r\n onclick: function () {\r\n controller.routeToNextStep(null, true);\r\n }\r\n })\r\n )\r\n ])\r\n ])\r\n );\r\n };\r\n\r\n return Intro;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodSelection', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorMessage',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/RadioButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n], function (m, BackButton, ErrorMessage, StepHeader, RadioButton, Button, ProgressBar) {\r\n\r\n const getVariant = (isRetailAccount, hasOldOfflineWagerLimit, initiator) => {\r\n if (initiator) {\r\n return '';\r\n }\r\n\r\n if (isRetailAccount) {\r\n if (hasOldOfflineWagerLimit) {\r\n return '/Variant3';\r\n } else {\r\n return '/Variant4';\r\n }\r\n } else {\r\n if (!hasOldOfflineWagerLimit) {\r\n return '/Variant2';\r\n } else {\r\n return '/Variant1';\r\n }\r\n }\r\n };\r\n\r\n const LimitPeriodSelection = function (controller, initiator) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n var dictionaryKey = controller.currentStep().dictionaryKey;\r\n const variant = getVariant(userModel.isRetailAccount(), userModel.hasOldOfflineWagerLimit(), initiator);\r\n var selectType = function (type) {\r\n userModel.offlineWagerLimitPeriodDaily(type === 'daily');\r\n userModel.offlineWagerLimitPeriodWeekly(type === 'weekly');\r\n userModel.offlineWagerLimitPeriodMonthly(type === 'monthly');\r\n userModel.offlineWagerLimitPeriod(type);\r\n };\r\n let errorMessage = controller.d('Errors/NoLimitPeriodSelected');\r\n if (errors.offlineWagerLimitPeriod()) {\r\n errorMessage = errors.offlineWagerLimitPeriod();\r\n }\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep\r\n })) : null,\r\n m('.retail-page__content', {\r\n class: controller.hideBackButton() ? 'retail-page__no-progress' : ''\r\n },\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(`${dictionaryKey + variant}/PageTitle`),\r\n abstract: controller.d(`${dictionaryKey + variant}/PageDescription`)\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2 retail-rich-text'\r\n }, [\r\n m('h3.retail-rich-text__title', m('strong', controller.d(`${dictionaryKey}/LimitTypeLabel`))),\r\n m('.retail-radio-button__group', [\r\n RadioButton({\r\n model: userModel.offlineWagerLimitPeriodDaily,\r\n labelText: controller.d(`${dictionaryKey}/DailyLimitOption`),\r\n id: 'offlineWagerLimitPeriodDaily',\r\n name: 'limitPeriod',\r\n onchange: function () {\r\n selectType('daily');\r\n }\r\n }),\r\n RadioButton({\r\n model: userModel.offlineWagerLimitPeriodWeekly,\r\n labelText: controller.d(`${dictionaryKey}/WeeklyLimitOption`),\r\n id: 'offlineWagerLimitPeriodWeekly',\r\n name: 'limitPeriod',\r\n onchange: function () {\r\n selectType('weekly');\r\n }\r\n }),\r\n RadioButton({\r\n model: userModel.offlineWagerLimitPeriodMonthly,\r\n labelText: controller.d(`${dictionaryKey}/MonthlyLimitOption`),\r\n id: 'offlineWagerLimitPeriodMonthly',\r\n name: 'limitPeriod',\r\n onchange: function () {\r\n selectType('monthly');\r\n }\r\n }),\r\n ]),\r\n errors.offlineWagerLimitPeriod() ? ErrorMessage(errorMessage) : null,\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n buttonText: controller.d(`${dictionaryKey}/SubmitButton`),\r\n onclick: function () {\r\n controller.submit();\r\n }\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return LimitPeriodSelection;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodValue', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ProgressBar',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/BackButton',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/InputField',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader'\r\n], function (m, Utils, ProgressBar, BackButton, InputField, Button, StepHeader) {\r\n\r\n const getVariant = (isRetailAccount, initiator) => {\r\n if (initiator) {\r\n return '';\r\n }\r\n\r\n if (!isRetailAccount) {\r\n return '/Variant2';\r\n } else {\r\n return '/Variant1';\r\n }\r\n };\r\n\r\n const LimitPeriodValue = function (controller, initiator) {\r\n var userModel = controller.model().fields;\r\n var errors = controller.model().errors;\r\n var dictionaryKey = controller.currentStep().dictionaryKey;\r\n var limitPeriodType;\r\n\r\n const variant = getVariant(userModel.isRetailAccount(), initiator);\r\n\r\n const forceRestartFlowIfNoType = () => {\r\n userModel.offlineWagerLimitPeriodDaily(null);\r\n userModel.offlineWagerLimitPeriodWeekly(null);\r\n userModel.offlineWagerLimitPeriodMonthly(null);\r\n\r\n if (typeof controller.goToRoute === 'function') {\r\n controller.goToRoute('/');\r\n }\r\n };\r\n\r\n switch (userModel.offlineWagerLimitPeriod()) {\r\n case 'daily':\r\n limitPeriodType = controller.d(`${dictionaryKey}/Daily`);\r\n break;\r\n case 'weekly':\r\n limitPeriodType = controller.d(`${dictionaryKey}/Weekly`);\r\n break;\r\n case 'monthly':\r\n limitPeriodType = controller.d(`${dictionaryKey}/Monthly`);\r\n break;\r\n default:\r\n forceRestartFlowIfNoType();\r\n break;\r\n }\r\n\r\n return [\r\n controller.progress ?\r\n ProgressBar({\r\n progress: controller.progress()\r\n }) : null,\r\n !controller.hideBackButton() ?\r\n m('.retail-page__button-container', BackButton({\r\n onclick: controller.routeToPrevStep\r\n })) : null,\r\n m('.retail-page__content', {\r\n class: controller.hideBackButton() ? 'retail-page__no-progress' : ''\r\n },\r\n m('.retail-page__row has-rows-2', [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, StepHeader({\r\n title: controller.d(`${dictionaryKey + variant}/PageTitle`, { TYPE: limitPeriodType })\r\n })\r\n ),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n InputField({\r\n model: userModel.offlineWagerLimit,\r\n hasErrors: errors.offlineWagerLimit(),\r\n name: 'offlineWagerLimit',\r\n type: 'tel',\r\n labelText: controller.d(`${dictionaryKey}/InputLabel`, { TYPE: Utils.capitalize(limitPeriodType) }),\r\n onkeyup: (ev) => {\r\n if (isNaN(ev.target.value)) {\r\n userModel.offlineWagerLimit(null);\r\n return;\r\n }\r\n\r\n controller.validateField(ev);\r\n },\r\n onblur: (ev) => {\r\n if (Number(ev.target.value) <= 0) {\r\n errors.offlineWagerLimit(controller.d('Errors/ValueBelowMinimumAllowed', { AMOUNT: ev.target.value }));\r\n }\r\n }\r\n }),\r\n m('div.retail-button-container.retail-button-container--centered',\r\n Button({\r\n isDisabled: controller.buttonIsDisabled(),\r\n isLoading: controller.isSubmitting(),\r\n buttonText: controller.d(`${dictionaryKey}/SubmitButton`),\r\n onclick: controller.submit\r\n })\r\n )\r\n ])\r\n ])\r\n )\r\n ];\r\n };\r\n\r\n return LimitPeriodValue;\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailUpgrade', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay', // TODO: Move out from NG, or use more generic one?\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/WaitForAuthSynced',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/PurposeModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/FileUploadModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/LimitModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Upgrade',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/AccountInfo',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PersonalInfo',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Security',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/SelectLimit',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UpdateLimit',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UploadDocuments',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/FinalizeUpgrade'\r\n],\r\nfunction (Component, DSUtils, LoginController, FrameworkOverlay, Dictionary, Utils, RetailApi, WaitForAuthSynced, UserModel, PurposeModel, FileUploadModel, LimitModel, Loader, ErrorOverlay, Upgrade, AccountInfo, PersonalInfo, Security, SelectLimit, UpdateLimit, UploadDocuments, Receipt, FinalizeUpgrade) {\r\n\r\n // Component:\r\n Component('retail-upgrade', [Dictionary, WaitForAuthSynced], function (m, route, settings) {\r\n\r\n document.body.classList.add('page-retail-upgrade');\r\n\r\n // Declare steps in upgrade flow\r\n var routeConfiguration = [\r\n { order: 0, route: '/upgrade', fields: [], template: Upgrade },\r\n { order: 1, route: '/accountInfo', fields: ['email', 'phone'], template: AccountInfo },\r\n { order: 2, route: '/personalInfo', fields: ['firstName', 'lastName', 'street', 'houseNumber', 'zipCode', 'city', 'country', 'acceptTermsAndConditions'], template: PersonalInfo },\r\n { order: 3, route: '/security', fields: ['securityQuestion', 'securityAnswer'], template: Security },\r\n { order: 4, route: '/selectLimit', fields: ['limitType', 'limitFormatted'], template: SelectLimit },\r\n { order: null, route: '/updateLimit', fields: [], template: UpdateLimit },\r\n { order: 5, route: '/finalizeUpgrade', fields: [], template: FinalizeUpgrade },\r\n { order: null, route: '/uploadDocuments', fields: ['isActive', 'hasValidBankAccount'], template: UploadDocuments },\r\n { order: null, route: '/receipt', template: Receipt }\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-upgrade=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n currentStep = currentStep.length ? currentStep[0] : routeConfiguration[0];\r\n\r\n var preSelectedPurposes = Utils.getQueryParam('purpose') ? Utils.getQueryParam('purpose').split(',') : [];\r\n\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(true);\r\n this.isSubmitting = m.prop(false);\r\n this.classPrefix = m.prop('pam-page');\r\n this.buttonIsDisabled = m.prop(true);\r\n this.modalError = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.totalSteps = m.prop(6);\r\n this.progress = m.prop(0);\r\n this.model = m.prop(new UserModel());\r\n this.initialValues = m.prop(new UserModel());\r\n this.d = Dictionary.get.bind({ prefix: 'RetailUpgrade/' });\r\n this.purposes = m.prop([]);\r\n this.limitMinimum = settings.LimitMinimum;\r\n this.uploadSettings = settings.UploadSettings;\r\n this.maxLimits = settings.MaxLimits;\r\n this.hasLoadedDocuments = m.prop(false);\r\n this.hasPreloadFiles = m.prop(false);\r\n this.noFilesSelected = m.prop(false);\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/Upload/PageTitle'),\r\n abstract: this.d('Receipt/Upload/PageDescription'),\r\n icon: 'circle_checkmark',\r\n timeout: null,\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n buttonText: settings.receiptLink.Text\r\n });\r\n this.fieldInFocus = m.prop();\r\n this.backAllowed = m.prop(false);\r\n this.noPaddingTop = m.prop((Utils.getQueryParam('dsApplicationId') || window.dsApplicationConfig) || false);\r\n this.hideBackButton = m.prop((Utils.getQueryParam('dsApplicationId') || window.dsApplicationConfig) || false);\r\n this.postfix = ' kr.';\r\n\r\n // Collections to hold suggested zipcodes and cities\r\n this.zips = m.prop([]);\r\n this.cities = m.prop([]);\r\n this.addresses = m.prop([]);\r\n\r\n var getCities = function () {\r\n return RetailApi.getCities().then(function (response) {\r\n this.model().citiesList(response.data);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getCountries = function () {\r\n return RetailApi.getCountries().then(function (response) {\r\n this.model().availableCountries(response.data);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPurposes = function () {\r\n return RetailApi.getUploadFilePurposes('RetailSignup').then(function (response) {\r\n this.purposes(response.data.map(function (purpose) {\r\n var purposeModel = new PurposeModel(purpose, true);\r\n var foundMatch = preSelectedPurposes.some(function (preSelected) {\r\n return preSelected.toLowerCase() === (purposeModel.identifier().toLowerCase());\r\n });\r\n if (foundMatch) {\r\n this.model().files().push(new FileUploadModel(purposeModel, this.uploadSettings, this.d, false));\r\n }\r\n return purposeModel;\r\n }.bind(this)));\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getSecurityQuestions = function () {\r\n return RetailApi.getSecurityQuestions().then(function (response) {\r\n this.model().securityQuestions(response);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getUserDepositLimits = () => {\r\n return RetailApi.getUserDepositLimits().then((response) => {\r\n var limits = response.limits.map(function (limit) {\r\n return new LimitModel(limit);\r\n });\r\n\r\n this.model().userLimits().sitecoreLimits([\r\n { type: 'Daily', value: settings.maxRetailDaily },\r\n { type: 'Weekly', value: settings.maxRetailWeekly },\r\n { type: 'Monthly', value: settings.maxRetailMonthly }\r\n ]);\r\n this.model().userLimits().limits(limits);\r\n this.model().userLimits().limitRequired(true);\r\n this.model().userLimits().limitMinimum(settings.LimitMinimum);\r\n\r\n m.redraw();\r\n });\r\n };\r\n\r\n var hasDocuments = function () {\r\n return RetailApi.hasDocuments().then(function (response) {\r\n this.model().hasDocuments(response.data.HasDocuments || false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.hasFilesUploaded = function () {\r\n return this.model().files().filter(function (file) {\r\n return file.file !== null;\r\n }).length > 0;\r\n }.bind(this);\r\n\r\n this.addFileRequirement = function (identifiers) {\r\n if (this.hasPreloadFiles() || this.purposes().length === 0) {\r\n return;\r\n }\r\n identifiers = Array.isArray(identifiers) ? identifiers : (typeof identifiers === 'string' ? [identifiers] : []);\r\n\r\n identifiers.forEach(function (identifier) {\r\n this.purposes().forEach(function (purpose) {\r\n if (purpose.identifier() === identifier) {\r\n this.model().files().push(new FileUploadModel(purpose, this.uploadSettings, this.d, false));\r\n }\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n this.hasPreloadFiles(true);\r\n }.bind(this);\r\n\r\n this.loadDocumentData = function () {\r\n this.hasLoadedDocuments(true);\r\n m.sync([getPurposes(), hasDocuments()]).then(function () {\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n\r\n RetailApi.getProfileWithCache().then(function (response) {\r\n var model = response.data.profile || {};\r\n this.model().update(model);\r\n if (model.limitValue.value) {\r\n this.model().fields.limitFormatted(Utils.formatLimit(model.limitValue.value));\r\n }\r\n this.model().usernameIsSet(model.usernameAlreadySet.value);\r\n this.model().cachedUpgrade(model.cachedUpgrade.value);\r\n this.initialValues().update(model);\r\n\r\n if (this.model().fields.accountTypeChangeInProgress()) {\r\n if (!this.model().fields.cprCheck()) {\r\n Utils.pushVirtualPage('/uploadDocuments', (window.location.pathname.replace(/-/g, '_') + '/uploadDocuments'), '/uploadDocuments');\r\n route('/uploadDocuments')();\r\n } else {\r\n this.model().fields.accountTypeChangeInProgress(false);\r\n var data = Utils.mapModelToApiData(['accountTypeChangeInProgress', 'isRetailAccount', 'cprCheck'], this.model().fields);\r\n RetailApi.updateProfile(data).then(function (response) {\r\n var hasErrors = this.model().setErrors(response.data);\r\n if (hasErrors) return;\r\n\r\n this.model().update(response.data.profile);\r\n return this.complete(response);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n }.bind(this));\r\n }\r\n } else if (!this.model().fields.isRetailAccount()) {\r\n this.receiptContent({\r\n title: this.d('Receipt/AlreadyRegistered/PageTitle'),\r\n abstract: this.d('Receipt/AlreadyRegistered/PageDescription'),\r\n icon: 'circle_checkmark',\r\n timeout: 5000,\r\n callback: function () {\r\n var returnUrl = Utils.getQueryParam('loginSuccessUrl') || Utils.getQueryParam('returnUrl') || Utils.getQueryParam('redirectUrl');\r\n window.location.href = returnUrl || window.location.origin;\r\n }.bind(this),\r\n buttonText: this.d('Receipt/AlreadyRegistered/SubmitButton')\r\n });\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')(); // TODO: Clearify with business that this is correct.\r\n } else {\r\n Utils.pushVirtualPage('/upgrade', (window.location.pathname.replace(/-/g, '_') + '/upgrade'), '/upgrade');\r\n route('/upgrade')();\r\n }\r\n\r\n m.sync([getCities(), getCountries(), getSecurityQuestions(), getUserDepositLimits()]).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n\r\n }.bind(this), function () {\r\n var loader = document.querySelector('.retail-loader');\r\n if (loader) {\r\n loader.style.display = 'none'; // lets hide spinner while we wait.\r\n }\r\n LoginController.openLogin({\r\n // Outcommented these, as they are extracted from other aprams that has not been in effect since RedirectBasedLogin was enabled (in 2021). /MIPE, 2022-03-15\r\n // cancelUrl: Utils.getQueryParam('redirectUrl') || window.location.origin\r\n });\r\n }.bind(this));\r\n\r\n this.updateProgress = function (locationHash) {\r\n var hash = locationHash.replace('#retail-upgrade=', '');\r\n var step;\r\n\r\n if (hash !== '') {\r\n step = this.routeConfiguration.filter(function (step) {\r\n return step.route.toLowerCase() === hash.toLowerCase();\r\n })[0];\r\n } else {\r\n step = this.routeConfiguration[0];\r\n }\r\n\r\n this.currentStep(step);\r\n\r\n if (!step.order) return;\r\n\r\n var newProgress = step.order / this.totalSteps() * 100;\r\n this.progress(newProgress);\r\n }.bind(this);\r\n\r\n this.setFieldFocus = function (e) {\r\n if (typeof this.fieldInFocus !== 'function') {\r\n return;\r\n }\r\n\r\n // If function is called with event from onfocus handler, set field to have focus.\r\n // If called without event, then set first input field to have focus\r\n var fieldName = e && e.target ? e.target.name : null;\r\n\r\n if (fieldName) {\r\n this.fieldInFocus(fieldName);\r\n }\r\n }.bind(this);\r\n\r\n this.validateField = function (ev) {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n this.buttonIsDisabled(hasErrors); // Disable button if fields has errors\r\n\r\n if (fieldName === this.fieldInFocus()) {\r\n this.fieldInFocus(null);\r\n }\r\n }.bind(this);\r\n\r\n this.resetErrors = function (ev) {\r\n var fieldName = ev.target.name;\r\n\r\n if (typeof this.model().errors[fieldName] === 'function') {\r\n this.model().errors[fieldName](null);\r\n }\r\n }.bind(this);\r\n\r\n this.addFile = function (file, index) {\r\n this.model().files()[index].file(file);\r\n }.bind(this);\r\n\r\n this.removeSelection = function (selection) {\r\n var removeIndex = this.model().files().indexOf(selection);\r\n this.model().files().splice(removeIndex, 1);\r\n }.bind(this);\r\n\r\n this.validateUpload = function () {\r\n this.model().files().forEach(function (file) {\r\n var hasErrors = file.file() && file.validate();\r\n this.buttonIsDisabled(hasErrors);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.validateLimit = function () {\r\n var hasErrors = this.model().validate(['limitType', 'limitFormatted']);\r\n if (!hasErrors && this.model().fields.limitValue() < this.limitMinimum) { // Need to make sure we are above minimum limit\r\n this.model().errors.limitFormatted(this.d('Errors/LimitBelowGlobalMinimum', { AMOUNT: this.limitMinimum }));\r\n hasErrors = true;\r\n }\r\n var maxLimitIdentifier = 'Max' + this.model().fields.limitType();\r\n var maxLimit = this.maxLimits.hasOwnProperty(maxLimitIdentifier) && this.maxLimits[maxLimitIdentifier]\r\n ? this.maxLimits[maxLimitIdentifier] : Number.MAX_VALUE;\r\n if (!hasErrors && (this.model().fields.limitValue() > maxLimit)) {\r\n this.model().errors.limitFormatted(this.d('Errors/LimitAboveGlobalMaximum', {\r\n AMOUNT: Utils.formatCurrency(this.maxLimits[maxLimitIdentifier]),\r\n PERIOD: this.d('Errors/Period/' + this.model().fields.limitType())\r\n }));\r\n hasErrors = true;\r\n }\r\n this.buttonIsDisabled(hasErrors);\r\n return hasErrors;\r\n }.bind(this);\r\n\r\n this.discard = function () {\r\n this.isLoading(true);\r\n RetailApi.discardUpgrade().then(function (ignoreResponse) {\r\n this.logout();\r\n window.location = window.location.origin;\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.logout = function (disableCallback) {\r\n this.buttonIsDisabled(true);\r\n this.isSubmitting(true);\r\n LoginController.logout({\r\n callback: function () {\r\n if (disableCallback) return;\r\n var redirect = Utils.getQueryParam('redirectUrl');\r\n window.location.href = redirect ? redirect : window.location.origin;\r\n },\r\n redirect: false\r\n });\r\n }.bind(this);\r\n\r\n this.complete = function (response) {\r\n var profile = response.data && response.data.profile ? response.data.profile : null;\r\n if (profile && !profile.isPending.value && !profile.isRetailAccount.value && !profile.accountTypeChangeInProgress.value) {\r\n // Force logout the user\r\n this.logout(true);\r\n\r\n this.receiptContent({\r\n title: this.d('Receipt/Success/PageTitle'),\r\n abstract: this.d('Receipt/Success/PageDescription'),\r\n icon: 'circle_checkmark',\r\n timeout: null,\r\n callback: function () {\r\n // var returnUrl = Utils.getQueryParam('returnUrl');\r\n var redirectUrl = Utils.getQueryParam('redirectUrl');\r\n var brandUrl = DSUtils.cookie(DS.Config.CONTEXT + 'currentBrandURL');\r\n if (brandUrl.includes('postlogin')) {\r\n // If the brandUrl is a postlogin url, dont use it. This is for avoiding redirecting to the previous postlogin url after upgrade complete.\r\n brandUrl = null;\r\n }\r\n\r\n if (window.dsApplicationConfig) {\r\n window.location.href = '/blaa-konto/login';\r\n return;\r\n }\r\n\r\n var options = {\r\n // Outcommented cancelUrl, as it is extracted from other onCancel that has not been in effect since RedirectBasedLogin was enabled (in 2021). /MIPE, 2022-03-15\r\n // cancelUrl: returnUrl || redirectUrl || window.location.origin,\r\n };\r\n\r\n var url = window.location.href.split('?')[0].split('#')[0]; // Remove query parameters and hash, as we want to append them afterwards\r\n\r\n if (redirectUrl || brandUrl) {\r\n url = Utils.appendParameter('loginSuccessUrl', redirectUrl || brandUrl, url);\r\n }\r\n\r\n options.loginSuccessUrl = url + '#retail-upgrade=/receipt';\r\n options.variant = profile.isFromFaroe.value ? 'RetailUpgradeFaroe' : 'RetailUpgrade';\r\n LoginController.openLogin(options);\r\n }.bind(this),\r\n buttonText: this.d('Receipt/Success/SubmitButton')\r\n });\r\n\r\n Utils.ensightenEvent('signup_' + window.DS.Config.CONTEXT, 'success');\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n } else {\r\n Utils.pushVirtualPage('/uploadDocuments', (window.location.pathname.replace(/-/g, '_') + '/uploadDocuments'), '/uploadDocuments');\r\n route('/uploadDocuments')();\r\n }\r\n window.scrollTo(0, 0);\r\n }.bind(this);\r\n\r\n this.upgrade = function () {\r\n this.isLoading(true);\r\n RetailApi.doUpgrade().then(function (response) {\r\n var model = response.data.profile || {};\r\n this.model().update(model);\r\n this.complete(response);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.submit = function (preventUpdate) {\r\n var fields = this.currentStep().fields;\r\n var hasAcceptedDefaultMarketingPermission = false;\r\n\r\n if (this.currentStep().route === '/accountInfo') {\r\n var usernameFields = ['username', 'password', 'repeatPassword'];\r\n hasAcceptedDefaultMarketingPermission = this.model().fields.marketingDefaultTerms(); // Persist to secondary updateprofile api call\r\n if (!this.model().usernameIsSet()) {\r\n Utils.extendFields(fields, usernameFields);\r\n } else {\r\n fields = Utils.removeFields(fields, usernameFields);\r\n }\r\n if (this.model().fields.email() === this.initialValues().fields.email()) { // Prevent updating email if is unchanged\r\n fields = Utils.removeFields(fields, ['email']);\r\n }\r\n if (this.model().fields.phone() === this.initialValues().fields.phone()) { // Prevent updating phone if is unchanged\r\n fields = Utils.removeFields(fields, ['phone']);\r\n }\r\n preventUpdate = fields.length === 0;\r\n this.buttonIsDisabled(true);\r\n this.isSubmitting(true);\r\n }\r\n\r\n if (this.currentStep().route === '/personalInfo') {\r\n if (!this.initialValues().fields.acceptDataProcessing()) {\r\n Utils.extendFields(fields, ['acceptDataProcessing']);\r\n }\r\n }\r\n\r\n if (this.model().validate(fields)) return;\r\n\r\n if (preventUpdate) {\r\n this.buttonIsDisabled(true);\r\n this.isSubmitting(false);\r\n return this.routeToNextStep();\r\n }\r\n\r\n if (this.currentStep().route === '/updateLimit' || this.currentStep().route === '/selectLimit') {\r\n // Append with data from previous step\r\n Utils.extendFields(fields, ['street', 'houseNumber', 'zipCode', 'city', 'country', 'accountTypeChangeInProgress', 'securityQuestion', 'securityAnswer', 'marketingDefaultTerms']);\r\n if (!this.initialValues().fields.acceptDataProcessing()) {\r\n Utils.extendFields(fields, ['acceptDataProcessing']);\r\n }\r\n\r\n var limitData;\r\n\r\n if (this.currentStep().route === '/selectLimit') {\r\n limitData = Utils.mapLimitToApiData(this.model().fields.limitType(), this.model().fields.limitValue());\r\n fields = Utils.removeFields(fields, ['limitType', 'limitFormatted']);\r\n } else {\r\n limitData = this.model().userLimits().mapToData();\r\n }\r\n\r\n this.model().fields.accountTypeChangeInProgress(true);\r\n\r\n if (this.currentStep().route === '/selectLimit' || this.model().userLimits().hasChanges()) {\r\n RetailApi.setAmountLimits(limitData).then(function (ignoreResponse) {\r\n // We do not want to block upgrade flow if set limits fail. User will be prompted for setLimits once properly\r\n // logged in with an online account if no limits has been selected.\r\n });\r\n }\r\n }\r\n\r\n var data = Utils.mapModelToApiData(fields, this.model().fields);\r\n this.isLoading(true);\r\n\r\n RetailApi.updateProfile(data).then(function (response) {\r\n if (this.currentStep().route === '/selectLimit' || this.currentStep().route === '/updateLimit') {\r\n return this.complete(response);\r\n }\r\n\r\n var hasErrors = this.model().setErrors(response.data);\r\n if (hasErrors) return;\r\n\r\n this.model().update(response.data.profile);\r\n this.model().fields.marketingDefaultTerms(hasAcceptedDefaultMarketingPermission);\r\n\r\n this.routeToNextStep();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n this.isSubmitting(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.routeToNextStep = function (routePath) {\r\n if (routePath) {\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n window.scrollTo(0, 0);\r\n return;\r\n }\r\n\r\n var nextStep = this.routeConfiguration[this.currentStep().order + 1];\r\n if (nextStep.route === '/personalInfo') {\r\n this.clearAddress();\r\n }\r\n\r\n if (nextStep.route === '/security') {\r\n // Reset previous selected security question\r\n this.model().fields.securityQuestion(null);\r\n }\r\n\r\n if (nextStep.route === '/selectLimit' && this.model().userLimits().hasLimit()) {\r\n this.routeToNextStep('/updateLimit');\r\n return;\r\n }\r\n\r\n Utils.pushVirtualPage(nextStep.route, (window.location.pathname.replace(/-/g, '_') + nextStep.route), nextStep.route);\r\n route(nextStep.route)();\r\n window.scrollTo(0, 0);\r\n }.bind(this);\r\n\r\n this.clearAddress = function () {\r\n this.model().fields.street(null);\r\n this.model().fields.houseNumber(null);\r\n this.model().fields.level(null);\r\n this.model().fields.zipCode(null);\r\n this.model().fields.city(null);\r\n };\r\n\r\n this.upload = function () {\r\n var hasErrors = this.model().files().map(function (file) {\r\n return file.validate();\r\n }).some(function (error) {\r\n return error;\r\n });\r\n\r\n if (this.model().files().length === 0) {\r\n hasErrors = true;\r\n this.noFilesSelected(true);\r\n }\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n var data = Utils.mapFilesToApiData(this.model);\r\n this.isLoading(true);\r\n\r\n RetailApi.uploadDocuments(data).then().then(function (response) {\r\n var data = response.data;\r\n if (!data.OperationSuccess) {\r\n this.showErrorModal(data);\r\n return;\r\n }\r\n\r\n this.model().files([]); // Lets reset all uploaded files.\r\n\r\n this.logout(true);\r\n if (Utils.isOddsetApp()) {\r\n this.receiptContent({\r\n title: this.d('Receipt/AppLoginAttempt/PageTitle'),\r\n abstract: this.d('Receipt/AppLoginAttempt/PageDescription'),\r\n icon: 'exclemation-mark',\r\n });\r\n Utils.pushVirtualPage('/receipt_app_pending', (window.location.pathname.replace(/-/g, '_') + '/receipt_app_pending'), '/receipt_app_pending');\r\n } else {\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n }\r\n route('/receipt')();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n }.bind(this));\r\n\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n var confirm = null;\r\n var dismisable = true;\r\n\r\n if (error.statusCode === 401) {\r\n confirm = function () {\r\n window.location.href = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n };\r\n dismisable = false;\r\n }\r\n\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: this.d('ErrorModal/Title'),\r\n body: error.message,\r\n confirm: confirm,\r\n dismisable: dismisable,\r\n confirmButtonClass: settings.loginLink.CssClass || null,\r\n confirmButton: confirm ? settings.loginLink.Text : null\r\n }))).show();\r\n };\r\n\r\n this.selectAddressFromSelection = function (value) {\r\n var match = this.addresses().filter(function (entry) {\r\n return entry.value.indexOf(value) === 0;\r\n });\r\n\r\n if (match.length) {\r\n var model = match[0].model;\r\n this.model().fields.street(model.street);\r\n this.model().fields.houseNumber(model.houseNumber);\r\n this.model().fields.zipCode(model.zipCode);\r\n this.model().fields.city(model.city);\r\n model.level ? this.model().fields.level([model.level, model.door].join('. ')) : null;\r\n this.model().validate(['street', 'houseNumber', 'zipCode', 'city']);\r\n this.addresses([]);\r\n }\r\n }.bind(this);\r\n\r\n this.selectCityFromZip = function (zip) {\r\n var match = this.model().citiesList().filter(function (entry) {\r\n return entry.ZipCode.indexOf(zip) === 0;\r\n });\r\n if (match.length) {\r\n this.model().fields.zipCode(match[0].ZipCode);\r\n this.model().fields.city(match[0].City);\r\n this.model().validate(['city']);\r\n } else {\r\n this.model().fields.city(null);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupZip = function (e) {\r\n this.setFieldFocus(e);\r\n var val = e.target.value;\r\n\r\n if (val.length === 4 || e.key === 'Enter') {\r\n this.selectCityFromZip(val);\r\n this.fieldInFocus(null);\r\n }\r\n\r\n if (val.length) {\r\n var matches = this.model().citiesList().filter(function (entry) {\r\n return entry.ZipCode.indexOf(val) === 0;\r\n }).map(function (entry, index) {\r\n return {\r\n value: entry.ZipCode,\r\n highlighted: index === 0\r\n };\r\n });\r\n this.zips(matches);\r\n } else {\r\n this.zips([]);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupCity = function (e) {\r\n this.setFieldFocus(e);\r\n var val = e.target.value;\r\n\r\n if (val.length) {\r\n var matches = this.model().citiesList().filter(function (entry) {\r\n return entry.City.toLowerCase().indexOf(val.toLowerCase()) === 0;\r\n }).map(function (entry, index) {\r\n return {\r\n value: entry.City,\r\n highlighted: index === 0\r\n };\r\n });\r\n this.cities(matches);\r\n } else {\r\n this.cities([]);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupAddress = function (e) {\r\n var val = e.target.value;\r\n if (e.key === 'Enter') {\r\n this.selectAddressFromSelection(val);\r\n this.addresses([]);\r\n return;\r\n }\r\n\r\n if (val.length) {\r\n RetailApi.getDawaAddress(val).then(function (response) {\r\n this.addresses(response);\r\n m.redraw();\r\n }.bind(this));\r\n } else {\r\n this.addresses([]);\r\n }\r\n }.bind(this);\r\n\r\n this.updateProgress(window.location.hash);\r\n\r\n window.addEventListener('popstate', function (e) {\r\n this.updateProgress(e.currentTarget.location.hash);\r\n }.bind(this), false);\r\n\r\n },\r\n view: function (controller) {\r\n var currentStep = controller.currentStep().route.replace('/', '').toLowerCase();\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return m('div', {\r\n class: [\r\n 'pam-page',\r\n 'retail-upgrade',\r\n currentStep ? 'retail-upgrade--' + currentStep : '',\r\n ].join(' '),\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-page-upgrade')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller, null, controller.classPrefix());\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailSignup', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay', // TODO: Move out from NG, or use more generic one?\r\n 'DanskeSpil/Domain/Authentification/Scripts/SitecoreAuth',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/WaitForAuthSynced',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/PurposeModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/FileUploadModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Name',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Address',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Email',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Phone',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodSelection',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodValue',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodConfirm',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameScanner',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UploadDocuments',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ResumeSignupFlow',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/AlreadyCreated'\r\n],\r\nfunction (Component, FrameworkOverlay, SitecoreAuth, Dictionary, Utils, RetailApi, WaitForAuthSynced, UserModel, PurposeModel, FileUploadModel, Loader, ErrorOverlay, Name, Address, Email, Phone, LimitPeriodSelection, LimitPeriodValue, LimitPeriodConfirm, PINCode, GameScanner, UploadDocuments, Receipt, ResumeSignupFlow, AlreadyCreated) {\r\n\r\n // Component:\r\n Component('retail-signup', [Dictionary, WaitForAuthSynced], function (m, route, settings) {\r\n\r\n // Declare steps in signup flow\r\n var routeConfiguration = [\r\n { order: 1, route: '/', fields: ['firstName', 'lastName'], template: Name, regularFlow: true },\r\n { order: 2, route: '/stepEmail', fields: ['email'], optionalFields: ['marketingTerms'], template: Email, regularFlow: true },\r\n { order: 3, route: '/stepPhone', fields: ['phone'], template: Phone, regularFlow: true },\r\n { order: 4, route: '/pincode', fields: ['pincode'], skipSubmit: true, dictionaryKey: 'SetPINCode', template: PINCode, regularFlow: true },\r\n { order: 5, route: '/repeat-pincode', fields: ['pincode', 'pincodeConfirm'], dictionaryKey: 'ConfirmPINCode', template: PINCode, regularFlow: true },\r\n { order: 6, route: '/limit/period', fields: ['offlineWagerLimitPeriod'], skipSubmit: true, dictionaryKey: 'LimitPeriodSelection', template: LimitPeriodSelection, regularFlow: true },\r\n { order: 7, route: '/limit/value', fields: ['offlineWagerLimit'], skipSubmit: true, dictionaryKey: 'LimitPeriodValue', template: LimitPeriodValue, regularFlow: true },\r\n { order: 8, route: '/limit/confirm', fields: ['offlineWagerLimitPeriod', 'offlineWagerLimit'], dictionaryKey: 'LimitPeriodConfirm', template: LimitPeriodConfirm, regularFlow: true },\r\n { order: 9, route: '/stepGameScanner', fields: ['acceptDataProcessing', 'runKnowYourCustomerFlow'], template: GameScanner, regularFlow: true },\r\n { order: 10, route: '/stepAddress', fields: ['street', 'houseNumber', 'zipCode', 'city', 'country'], template: Address, regularFlow: false },\r\n { order: 11, route: '/stepUploadDocuments', fields: ['isActive', 'hasValidBankAccount'], template: UploadDocuments, regularFlow: false },\r\n { order: 12, route: '/stepReceipt', template: Receipt, regularFlow: true },\r\n { order: null, route: '/stepResumeSignupFlow', template: ResumeSignupFlow },\r\n { order: null, route: '/stepAlreadyCreated', template: AlreadyCreated },\r\n { order: null, route: '/stepVerifyAccountDetails', template: Receipt },\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-signup=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n currentStep = currentStep.length ? currentStep[0] : routeConfiguration[0];\r\n\r\n history.replaceState(null, null, `#retail-signup=${currentStep.route}`);\r\n\r\n var preSelectedPurposes = Utils.getQueryParam('purpose') ? Utils.getQueryParam('purpose').split(',') : [];\r\n\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(true);\r\n this.isSubmitting = m.prop(false);\r\n this.isRetailIpad = m.prop(Utils.isRetailIpad());\r\n this.buttonIsDisabled = m.prop(true);\r\n this.modalError = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.totalSteps = m.prop(routeConfiguration.filter((elem) => elem.regularFlow).length - 1); // Regularflow minus receipt page\r\n this.progress = m.prop(0);\r\n this.model = m.prop(new UserModel());\r\n this.d = Dictionary.get.bind({ prefix: 'RetailSignup/' });\r\n this.purposes = m.prop([]);\r\n this.uploadSettings = settings;\r\n this.hasLoadedDocuments = m.prop(false);\r\n this.hasPreloadFiles = m.prop(false);\r\n this.noFilesSelected = m.prop(false);\r\n this.forceRegularSteps = m.prop(true);\r\n this.loginPage = m.prop(settings.loginPage || '/');\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/PageTitle'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n buttonText: settings.receiptLink.Text,\r\n timeout: 8000,\r\n init: function () {\r\n Utils.ensightenEvent('signup_sikkert_spil', 'success');\r\n }\r\n });\r\n this.showAddress = m.prop(false);\r\n this.backAllowed = m.prop(false);\r\n this.noPaddingTop = m.prop(false);\r\n this.hideBackButton = m.prop(false);\r\n this.maskPincodeInput = m.prop(false);\r\n this.showRetailMarketingTermsInEmail = m.prop(true);\r\n this.fieldInFocus = m.prop();\r\n this.elementIsInViewport = m.prop(false);\r\n this.globalWagerLimits = m.prop(null);\r\n\r\n // Collections to hold suggested addresses, zipcodes and cities\r\n this.zips = m.prop([]);\r\n this.cities = m.prop([]);\r\n this.addresses = m.prop([]);\r\n\r\n var getCities = function () {\r\n return RetailApi.getCities().then(function (response) {\r\n this.model().citiesList(response.data);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getCountries = function () {\r\n return RetailApi.getCountries().then(function (response) {\r\n this.model().availableCountries(response.data);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getProfile = function () {\r\n if (window.dsApplicationConfig?.ApplicationId === 'SHAPE_RETAILACCOUNT_IPADNATIVE') {\r\n this.maskPincodeInput(true);\r\n }\r\n\r\n return RetailApi.getProfileWithBankInformation().then(function (response) {\r\n var model = response.data.profile || {};\r\n this.model().update(model);\r\n this.model().setDefaultCountry();\r\n document.body.classList.add('is-logged-in');\r\n\r\n if (this.model().fields.isActive() && this.isRetailIpad()) {\r\n Utils.ensightenEvent('signup_error', 'already_have_a_default_account');\r\n Utils.pushVirtualPage('stepAlreadyCreated', (window.location.pathname.replace(/-/g, '_') + 'stepAlreadyCreated'), 'stepAlreadyCreated');\r\n route('/stepAlreadyCreated')();\r\n window.scrollTo(0, 0);\r\n this.isLoading(false);\r\n } else if (this.model().fields.isActive()) {\r\n window.location.href = settings.receiptLink.Url + window.location.search;\r\n return;\r\n } else if (this.model().fields.isPending() && model.lastLogin.value !== '') {\r\n this.forceRegularSteps(false);\r\n Utils.ensightenEvent('signup_error', 'continue_unfinished_registration');\r\n Utils.pushVirtualPage('stepResumeSignupFlow', (window.location.pathname.replace(/-/g, '_') + 'stepResumeSignupFlow'), 'stepResumeSignupFlow');\r\n route('/stepResumeSignupFlow')();\r\n window.scrollTo(0, 0);\r\n this.isLoading(false);\r\n } else if (this.model().fields.isPending() && this.model().fields.isFromFaroe()) {\r\n Utils.ensightenEvent('signup_sikkert_spil', 'pending_fo');\r\n Utils.pushVirtualPage('stepUploadDocuments', (window.location.pathname.replace(/-/g, '_') + 'stepUploadDocuments'), 'stepUploadDocuments');\r\n route('/stepUploadDocuments')();\r\n window.scrollTo(0, 0);\r\n this.isLoading(false);\r\n } else if (this.model().fields.isPending()) {\r\n hasDocuments().then(function () {\r\n if (this.model().hasDocuments()) {\r\n window.location.href = settings.receiptLink.Url + window.location.search;\r\n return;\r\n } else {\r\n this.isLoading(false);\r\n m.redraw();\r\n }\r\n }.bind(this));\r\n } else {\r\n this.isLoading(false);\r\n }\r\n\r\n m.redraw();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getDepositLimits = () => {\r\n return RetailApi.getUserDepositLimits().then((response) => {\r\n this.globalWagerLimits(response.limits);\r\n });\r\n };\r\n\r\n var getPurposes = function () {\r\n return RetailApi.getUploadFilePurposes('RetailSignup').then(function (response) {\r\n this.purposes(response.data.map(function (purpose) {\r\n var purposeModel = new PurposeModel(purpose, true);\r\n var foundMatch = preSelectedPurposes.some(function (preSelected) {\r\n return preSelected.toLowerCase() === (purposeModel.identifier().toLowerCase());\r\n });\r\n if (foundMatch) {\r\n this.model().files().push(new FileUploadModel(purposeModel, this.uploadSettings, this.d, false));\r\n }\r\n return purposeModel;\r\n }.bind(this)));\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var hasDocuments = function () {\r\n return RetailApi.hasDocuments().then(function (response) {\r\n this.model().hasDocuments(response.data.HasDocuments || false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.hasFilesUploaded = function () {\r\n return this.model().files().filter(function (file) {\r\n return file.file() !== null;\r\n }).length > 0;\r\n }.bind(this);\r\n\r\n this.skipUpload = function () {\r\n if (this.hasFilesUploaded()) {\r\n this.receiptContent({\r\n title: this.d('Receipt/UploadPendingFiles/PageTitle'),\r\n abstract: this.d('Receipt/UploadPendingFiles/PageText'),\r\n icon: 'exclemation-mark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location = returnUrl;\r\n } else {\r\n window.location.pathname = settings.receiptLink.Url;\r\n }\r\n },\r\n timeout: 20000,\r\n buttonText: this.d('Receipt/UploadPendingFiles/ButtonText')\r\n });\r\n } else {\r\n this.receiptContent({\r\n title: this.d('Receipt/UploadNotAllowed/PageTitle'),\r\n abstract: this.d('Receipt/UploadNotAllowed/PageText'),\r\n icon: 'exclemation-mark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location = returnUrl;\r\n } else {\r\n window.location.pathname = settings.receiptLink.Url;\r\n }\r\n },\r\n timeout: 20000,\r\n buttonText: this.d('Receipt/UploadNotAllowed/ButtonText')\r\n });\r\n }\r\n Utils.pushVirtualPage('/stepUploadDocumentsRetail', (window.location.pathname.replace(/-/g, '_') + '/stepUploadDocumentsRetail'), '/stepuploaddocumentsretail');\r\n route('/stepReceipt')();\r\n }.bind(this);\r\n\r\n this.addFileRequirement = function (identifiers) {\r\n if (this.hasPreloadFiles() || this.purposes().length === 0) {\r\n return;\r\n }\r\n identifiers = Array.isArray(identifiers) ? identifiers : (typeof identifiers === 'string' ? [identifiers] : []);\r\n\r\n identifiers.forEach(function (identifier) {\r\n this.purposes().forEach(function (purpose) {\r\n if (purpose.identifier() === identifier) {\r\n this.model().files().push(new FileUploadModel(purpose, this.uploadSettings, this.d, false));\r\n }\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n this.hasPreloadFiles(true);\r\n }.bind(this);\r\n\r\n this.checkElementInViewport = function (elem, isInitialized) {\r\n if (!isInitialized) {\r\n var detectElementInViewport = function () {\r\n this.elementIsInViewport(Utils.elementInViewport(elem));\r\n }.bind(this);\r\n\r\n window.addEventListener('scroll', detectElementInViewport);\r\n\r\n detectElementInViewport();\r\n }\r\n }.bind(this);\r\n\r\n this.updateProgress = function (locationHash) {\r\n var hash = locationHash.replace('#retail-signup=', '');\r\n var step = this.routeConfiguration.find(function (step) {\r\n return step.route.toLowerCase() === hash.toLowerCase();\r\n });\r\n\r\n if (!step) {\r\n step = this.routeConfiguration[0];\r\n }\r\n\r\n this.currentStep(step);\r\n\r\n if (!step.order) return;\r\n\r\n var newProgress = step.order / this.totalSteps() * 100;\r\n this.progress(newProgress);\r\n }.bind(this);\r\n\r\n this.setFieldFocus = function (e) {\r\n if (typeof this.fieldInFocus !== 'function') {\r\n return;\r\n }\r\n\r\n // If function is called with event from onfocus handler, set field to have focus.\r\n // If called without event, then set first input field to have focus\r\n var fieldName = e && e.target ? e.target.name : null;\r\n\r\n if (fieldName) {\r\n this.fieldInFocus(fieldName);\r\n }\r\n }.bind(this);\r\n\r\n this.validateField = function (ev, validateHandler) {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n this.buttonIsDisabled(hasErrors); // Disable button if fields has errors\r\n\r\n if (!hasErrors && typeof validateHandler === 'function') {\r\n validateHandler();\r\n }\r\n }.bind(this);\r\n\r\n this.mergeAndValidateField = (ev, validateHandler) => {\r\n if (this.currentStep().route === '/pincode') {\r\n this.mergeFieldsToSingleModelField('pincode', ['pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (this.currentStep().route === '/repeat-pincode') {\r\n this.mergeFieldsToSingleModelField('pincodeConfirm', ['pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n this.validateField(ev, validateHandler);\r\n };\r\n\r\n this.mergeFieldsToSingleModelField = (newFieldName, fieldNames = []) => {\r\n const fields = fieldNames.map((fieldName) => {\r\n return this.model().fields[fieldName]();\r\n });\r\n\r\n this.model().fields[newFieldName](fields.join(''));\r\n };\r\n\r\n this.addFile = function (file, index) {\r\n this.model().files()[index].file(file);\r\n }.bind(this);\r\n\r\n this.removeSelection = function (selection) {\r\n var removeIndex = this.model().files().indexOf(selection);\r\n this.model().files().splice(removeIndex, 1);\r\n }.bind(this);\r\n\r\n this.validateUpload = function () {\r\n this.model().files().forEach(function (file) {\r\n var hasErrors = file.file() && file.validate();\r\n this.buttonIsDisabled(hasErrors);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.findFirstErrorAndRouteToPage = (errors) => {\r\n if (errors.includes('pincode') || errors.includes('pincodeConfirm')) {\r\n this.resetFields(['pincode', 'pincodeConfirm', 'pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n if (errors.includes('offlineWagerLimitPeriod')) {\r\n this.resetFields(['offlineWagerLimitPeriodDaily', 'offlineWagerLimitPeriodWeekly', 'offlineWagerLimitPeriodMonthly', 'offlineWagerLimitPeriod']);\r\n }\r\n\r\n if (errors.includes('offlineWagerLimit')) {\r\n this.resetFields(['offlineWagerLimit']);\r\n }\r\n\r\n const step = this.routeConfiguration.find((routeConfig) => routeConfig.fields?.some((fieldKey) => errors.includes(fieldKey)));\r\n this.currentStep(step);\r\n this.hideBackButton(this.currentStep().hideBackButton || false);\r\n this.goToRoute(step.route);\r\n };\r\n\r\n this.submit = function () {\r\n var fields = this.currentStep().fields;\r\n var hasErrors = this.model().validate(fields);\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n if (this.currentStep().route === '/pincode') {\r\n this.resetFields(['pincodeConfirm', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n this.routeToNextStep(null, true);\r\n return;\r\n }\r\n\r\n if (this.currentStep().route === '/limit/value') {\r\n if (!this.isValidWithinGlobalLimits()) {\r\n return;\r\n }\r\n\r\n this.goToRoute('/limit/confirm');\r\n return;\r\n }\r\n\r\n if (this.currentStep().skipSubmit) {\r\n this.routeToNextStep();\r\n return;\r\n }\r\n\r\n if (this.currentStep().optionalFields) {\r\n fields = this.currentStep().fields.concat(this.currentStep().optionalFields);\r\n }\r\n\r\n var data = Utils.mapModelToApiData(fields, this.model().fields, this.model().initialValues);\r\n this.isLoading(true);\r\n\r\n RetailApi.updateProfile(data).then(function (response) {\r\n var errors = this.model().setErrors(response.data, true);\r\n if (errors) {\r\n this.findFirstErrorAndRouteToPage(errors);\r\n Utils.trackUserInputErrors('signup_error', this.model().errors);\r\n return;\r\n }\r\n\r\n this.model().update(response.data.profile); // Make sure our frontend UserModel is in sync with backend\r\n\r\n if (fields.indexOf('marketingTerms') > -1) {\r\n Utils.ensightenEvent('permission_signup_' + this.model().fields.marketingTerms(), 'marketingTerms');\r\n }\r\n\r\n if (fields.indexOf('acceptDataProcessing') > -1) {\r\n this.model().nameIsSet(true);\r\n\r\n // Refresh cached user information to ensure header and login has recent info\r\n SitecoreAuth.getUserObj(function (ignoreResponse) {\r\n });\r\n }\r\n\r\n this.routeToNextStep();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.resetFields = (fields) => {\r\n fields.forEach((fieldKey) => {\r\n this.model().fields[fieldKey](null);\r\n });\r\n };\r\n\r\n this.goToRoute = function (routePath) {\r\n var step = this.routeConfiguration.filter(function (step) {\r\n return step.route.toLowerCase() === routePath.toLowerCase();\r\n })[0];\r\n\r\n this.currentStep(step);\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n }.bind(this);\r\n\r\n this.routeToPrevStep = function () {\r\n window.scrollTo(0, 0);\r\n\r\n var currentStep = this.currentStep();\r\n var setRoute = this.routeConfiguration[currentStep.order - 2];\r\n\r\n if (!setRoute) {\r\n return;\r\n }\r\n\r\n if (setRoute.route === '/pincode') {\r\n this.resetFields([...setRoute.fields, 'pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (currentStep.route === '/repeat-pincode') {\r\n this.resetFields([...currentStep.fields, 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n if (currentStep.route === '/limit/value') {\r\n this.resetFields(['offlineWagerLimitPeriodDaily', 'offlineWagerLimitPeriodWeekly', 'offlineWagerLimitPeriodMonthly', 'offlineWagerLimitPeriod']);\r\n }\r\n\r\n Utils.pushVirtualPage(setRoute.route, (window.location.pathname.replace(/-/g, '_') + setRoute.route), setRoute.route);\r\n route(setRoute.route)();\r\n }.bind(this);\r\n\r\n this.routeToNextStep = function (routePath, setAutoFocus) {\r\n if (routePath) {\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n window.scrollTo(0, 0);\r\n return;\r\n }\r\n\r\n var currentStep = this.currentStep();\r\n var setRoute = this.routeConfiguration[currentStep.order];\r\n\r\n if (this.forceRegularSteps() && setRoute.regularFlow) {\r\n Utils.pushVirtualPage(setRoute.route, (window.location.pathname.replace(/-/g, '_') + setRoute.route), setRoute.route);\r\n route(setRoute.route)();\r\n window.scrollTo(0, 0);\r\n return;\r\n }\r\n\r\n var userIsPending = this.model().fields.isPending();\r\n\r\n if (this.currentStep().route === '/stepGameScanner' && userIsPending && this.isRetailIpad()) {\r\n this.skipUpload();\r\n return;\r\n }\r\n\r\n for (var index in this.routeConfiguration) {\r\n var step = this.routeConfiguration[index];\r\n var requiredFields = step.fields;\r\n\r\n // If route does not have missing fields and is part of the flow (defined by order), then load this\r\n if (!requiredFields && step.order) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n\r\n var missingFields = requiredFields.filter(function (field) {\r\n return !this.model().fields[field]();\r\n }.bind(this));\r\n\r\n if (missingFields.length) {\r\n if (step.route === '/stepUploadDocuments') {\r\n if (this.isRetailIpad()) {\r\n this.skipUpload();\r\n break;\r\n } else {\r\n Utils.ensightenEvent('signup_sikkert_spil', 'pending');\r\n }\r\n }\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n }\r\n\r\n if (setAutoFocus) {\r\n if (step.route === '/pincode') {\r\n document.querySelector('[name=\"pin1\"]')?.focus();\r\n }\r\n\r\n if (step.route === '/repeat-pincode') {\r\n document.querySelector('[name=\"pin1Confirm\"]')?.focus();\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.upload = function () {\r\n var hasErrors = this.model().files().map(function (file) {\r\n return file.validate();\r\n }).some(function (error) {\r\n return error;\r\n });\r\n\r\n if (this.model().files().length === 0) {\r\n this.noFilesSelected(true);\r\n hasErrors = true;\r\n }\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n var data = Utils.mapFilesToApiData(this.model);\r\n this.isLoading(true);\r\n\r\n RetailApi.uploadDocuments(data).then().then(function (response) {\r\n var data = response.data;\r\n if (!data.OperationSuccess) {\r\n this.showErrorModal(data);\r\n return;\r\n }\r\n\r\n this.model().files([]); // Lets reset all uploaded files.\r\n\r\n this.receiptContent({\r\n title: this.d('Receipt/UploadSuccess/PageTitle'),\r\n abstract: this.d('Receipt/UploadSuccess/PageText'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location = returnUrl;\r\n } else {\r\n window.location.hash = '#retail-signup=/stepUploadDocuments';\r\n }\r\n },\r\n buttonText: this.d('Receipt/UploadSuccess/ButtonText')\r\n });\r\n\r\n Utils.pushVirtualPage('/stepUploadDocumentReceipt', (window.location.pathname.replace(/-/g, '_') + '/stepUploadDocumentReceipt'), '/stepUploadDocumentReceipt');\r\n route('/stepReceipt')();\r\n window.scrollTo(0, 0);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n }.bind(this));\r\n\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n var confirm = null;\r\n var dismisable = true;\r\n\r\n if (error.statusCode === 401) {\r\n confirm = function () {\r\n window.location.href = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n };\r\n dismisable = false;\r\n }\r\n\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: this.d('ErrorModal/Title'),\r\n body: error.message,\r\n confirm: confirm,\r\n dismisable: dismisable,\r\n confirmButtonClass: settings.loginLink.CssClass || null,\r\n confirmButton: confirm ? settings.loginLink.Text : null\r\n }))).show();\r\n };\r\n\r\n this.selectAddressFromSelection = function (value) {\r\n var match = this.addresses().filter(function (entry) {\r\n return entry.value.indexOf(value) === 0;\r\n });\r\n\r\n if (match.length) {\r\n var model = match[0].model;\r\n this.model().fields.street(model.street);\r\n this.model().fields.houseNumber(model.houseNumber);\r\n this.model().fields.zipCode(model.zipCode);\r\n this.model().fields.city(model.city);\r\n model.level ? this.model().fields.level([model.level, model.door].join('. ')) : null;\r\n this.model().validate(['street', 'houseNumber', 'zipCode', 'city']);\r\n this.addresses([]);\r\n }\r\n }.bind(this);\r\n\r\n this.selectCityFromZip = function (zip) {\r\n var match = this.model().citiesList().filter(function (entry) {\r\n return entry.ZipCode.indexOf(zip) === 0;\r\n });\r\n if (match.length) {\r\n this.model().fields.zipCode(match[0].ZipCode);\r\n this.model().fields.city(match[0].City);\r\n this.model().validate(['city']);\r\n } else {\r\n this.model().fields.city(null);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupZip = function (e) {\r\n this.setFieldFocus(e);\r\n var val = e.target.value;\r\n\r\n if (val.length === 4 || e.key === 'Enter') {\r\n this.selectCityFromZip(val);\r\n this.fieldInFocus(null);\r\n }\r\n\r\n if (val.length) {\r\n var matches = this.model().citiesList().filter(function (entry) {\r\n return entry.ZipCode.indexOf(val) === 0;\r\n }).map(function (entry, index) {\r\n return {\r\n value: entry.ZipCode,\r\n highlighted: index === 0\r\n };\r\n });\r\n this.zips(matches);\r\n } else {\r\n this.zips([]);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupCity = function (e) {\r\n this.setFieldFocus(e);\r\n var val = e.target.value;\r\n\r\n if (val.length) {\r\n var matches = this.model().citiesList().filter(function (entry) {\r\n return entry.City.toLowerCase().indexOf(val.toLowerCase()) === 0;\r\n }).map(function (entry, index) {\r\n return {\r\n value: entry.City,\r\n highlighted: index === 0\r\n };\r\n });\r\n this.cities(matches);\r\n } else {\r\n this.cities([]);\r\n }\r\n }.bind(this);\r\n\r\n this.isValidWithinGlobalLimits = () => {\r\n const type = Utils.capitalize(this.model().fields.offlineWagerLimitPeriod());\r\n const value = this.model().fields.offlineWagerLimit();\r\n\r\n if (!this.globalWagerLimits()) {\r\n return true;\r\n }\r\n\r\n const globalLimit = this.globalWagerLimits().find((limit) => {\r\n return limit.Type.toLowerCase() === type.toLowerCase() && (limit.IsGlobal || limit.IsOperator);\r\n });\r\n\r\n if (Number(value) <= Utils.convertCentsToKroner(globalLimit.Value)) {\r\n return true;\r\n }\r\n\r\n this.model().errors.offlineWagerLimit(this.d(`Errors/ValueAboveMaxLimit${type}`, { VALUE: Utils.formatCurrency(value), LIMIT: Utils.convertCentsToKronerAndFormat(globalLimit.Value) }));\r\n return false;\r\n };\r\n\r\n this.lookupAddress = function (e) {\r\n var val = e.target.value;\r\n if (e.key === 'Enter') {\r\n this.selectAddressFromSelection(val);\r\n this.addresses([]);\r\n return;\r\n }\r\n\r\n if (val.length) {\r\n RetailApi.getDawaAddress(val).then(function (response) {\r\n this.addresses(response);\r\n m.redraw();\r\n }.bind(this));\r\n } else {\r\n this.addresses([]);\r\n }\r\n }.bind(this);\r\n\r\n this.loadDocumentData = function () {\r\n this.hasLoadedDocuments(true);\r\n m.sync([getPurposes(), hasDocuments()]).then(function () {\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n m.sync([getProfile(), getCities(), getCountries(), getDepositLimits()]);\r\n\r\n this.updateProgress(window.location.hash);\r\n\r\n window.addEventListener('popstate', function (e) {\r\n this.updateProgress(e.currentTarget.location.hash);\r\n }.bind(this), false);\r\n\r\n document.body.setAttribute('data-override-logout-return-url', settings.receiptLink?.Url || `/${window.location.pathname.split('/')[1]}`);\r\n\r\n Utils.setupLoginLinkEventListeners();\r\n },\r\n view: function (controller) {\r\n var currentStep = controller.currentStep().route.replace('/', '').toLowerCase();\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return m('div', {\r\n class: [\r\n 'retail-page',\r\n 'retail-signup',\r\n currentStep ? 'retail-signup--' + currentStep : ''\r\n ].join(' '),\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-signup')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller, 'retail-signup');\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailBasicSignup', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Recaptcha',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay', // TODO: Move out from NG, or use more generic one?\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/WaitForAuthSynced',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/PurposeModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/FileUploadModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/BasicAccountInfo',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodSelection',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodValue',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodConfirm',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameScanner',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UploadDocuments',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt'\r\n],\r\nfunction (Component, RecaptchaHelper, FrameworkOverlay, Dictionary, Utils, RetailApi, WaitForAuthSynced, UserModel, PurposeModel, FileUploadModel, Loader, ErrorOverlay, BasicAccountInfo, LimitPeriodSelection, LimitPeriodValue, LimitPeriodConfirm, PINCode, GameScanner, UploadDocuments, Receipt) {\r\n\r\n // Component:\r\n Component('retail-basic-signup', [Dictionary, WaitForAuthSynced], function (m, route, settings) {\r\n\r\n // Declare steps in signup flow\r\n var routeConfiguration = [\r\n { order: 1, route: '/', fields: ['cprNumber', 'firstName', 'lastName', 'street', 'houseNumber', 'zipCode', 'city', 'country', 'phone', 'email', 'acceptTermsAndConditions'], template: BasicAccountInfo },\r\n { order: 2, route: '/stepGameScanner', fields: ['acceptDataProcessing'], template: GameScanner },\r\n { order: 3, route: '/pincode', fields: ['pincode'], dictionaryKey: 'SetPINCode', template: PINCode, regularFlow: true },\r\n { order: 4, route: '/repeat-pincode', fields: ['pincode', 'pincodeConfirm'], dictionaryKey: 'ConfirmPINCode', template: PINCode, regularFlow: true },\r\n { order: 5, route: '/limit/period', fields: ['offlineWagerLimitPeriod'], dictionaryKey: 'LimitPeriodSelection', template: LimitPeriodSelection, regularFlow: true },\r\n { order: 6, route: '/limit/value', fields: ['offlineWagerLimit'], dictionaryKey: 'LimitPeriodValue', template: LimitPeriodValue, regularFlow: true },\r\n { order: 7, route: '/limit/confirm', fields: ['offlineWagerLimitPeriod', 'offlineWagerLimit'], dictionaryKey: 'LimitPeriodConfirm', template: LimitPeriodConfirm, regularFlow: true },\r\n { order: 8, route: '/stepUploadDocuments', fields: ['isActive'], template: UploadDocuments },\r\n { order: 9, route: '/stepReceipt', template: Receipt }\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-basic-signup=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n currentStep = currentStep.length ? currentStep[0] : routeConfiguration[0];\r\n\r\n var preSelectedPurposes = Utils.getQueryParam('purpose') ? Utils.getQueryParam('purpose').split(',') : [];\r\n\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(false);\r\n this.isSubmitting = m.prop(false);\r\n this.isRetailIpad = m.prop(Utils.isRetailIpad());\r\n this.buttonIsDisabled = m.prop(true);\r\n this.modalError = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.totalSteps = m.prop(3);\r\n this.progress = m.prop(0);\r\n this.model = m.prop(new UserModel({ nemIdNotUsed: true }));\r\n this.d = Dictionary.get.bind({ prefix: 'RetailBasicSignup/' });\r\n this.purposes = m.prop([]);\r\n this.uploadSettings = settings.uploadSettings;\r\n this.recaptchaEnabled = m.prop(settings.recaptchaEnabled || false);\r\n this.hasLoadedDocuments = m.prop(false);\r\n this.hasPreloadFiles = m.prop(false);\r\n this.noFilesSelected = m.prop(false);\r\n this.forceRegularSteps = m.prop(true);\r\n this.maskPincodeInput = m.prop(false);\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/Success/PageTitle'),\r\n abstract: this.d('Receipt/Success/PageDescription'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n timeout: 8000,\r\n buttonText: settings.receiptLink.Text\r\n });\r\n this.showAddress = m.prop(true);\r\n this.backAllowed = m.prop(false);\r\n this.hideBackButton = m.prop(false);\r\n this.noPaddingTop = m.prop(false);\r\n this.fieldInFocus = m.prop();\r\n this.elementIsInViewport = m.prop(false);\r\n this.recaptcha = m.prop({\r\n model: m.prop(null),\r\n hasErrors: m.prop(null)\r\n });\r\n this.globalWagerLimits = m.prop(settings.globalWagerLimits);\r\n\r\n // Collections to hold suggested addresses, zipcodes and cities\r\n this.zips = m.prop([]);\r\n this.cities = m.prop([]);\r\n this.addresses = m.prop([]);\r\n\r\n var getCities = function () {\r\n return RetailApi.getCities().then(function (response) {\r\n this.model().citiesList(response.data);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getCountries = function () {\r\n return RetailApi.getCountries().then(function (response) {\r\n this.model().availableCountries(response.data);\r\n this.model().setDefaultCountry();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPurposes = function () {\r\n return RetailApi.getUploadFilePurposes('RetailSignup').then(function (response) {\r\n this.purposes(response.data.map(function (purpose) {\r\n var purposeModel = new PurposeModel(purpose, true);\r\n var foundMatch = preSelectedPurposes.some(function (preSelected) {\r\n return preSelected.toLowerCase() === (purposeModel.identifier().toLowerCase());\r\n });\r\n if (foundMatch) {\r\n this.model().files().push(new FileUploadModel(purposeModel, this.uploadSettings, this.d, false));\r\n }\r\n return purposeModel;\r\n }.bind(this)));\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.hasFilesUploaded = function () {\r\n return this.model().files().filter(function (file) {\r\n return file.file() !== null;\r\n }).length > 0;\r\n }.bind(this);\r\n\r\n this.addFileRequirement = function (identifiers) {\r\n if (this.hasPreloadFiles() || this.purposes().length === 0) {\r\n return;\r\n }\r\n identifiers = Array.isArray(identifiers) ? identifiers : (typeof identifiers === 'string' ? [identifiers] : []);\r\n\r\n identifiers.forEach(function (identifier) {\r\n this.purposes().forEach(function (purpose) {\r\n if (purpose.identifier() === identifier) {\r\n this.model().files().push(new FileUploadModel(purpose, this.uploadSettings, this.d, false));\r\n }\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n this.hasPreloadFiles(true);\r\n }.bind(this);\r\n\r\n this.checkElementInViewport = function (elem, isInitialized) {\r\n if (!isInitialized) {\r\n var detectElementInViewport = function () {\r\n this.elementIsInViewport(Utils.elementInViewport(elem));\r\n }.bind(this);\r\n\r\n window.addEventListener('scroll', detectElementInViewport);\r\n\r\n detectElementInViewport();\r\n }\r\n }.bind(this);\r\n\r\n this.updateProgress = function (locationHash) {\r\n var hash = locationHash.replace('#retail-basic-signup=', '');\r\n var step;\r\n\r\n if (hash !== '') {\r\n step = this.routeConfiguration.filter(function (step) {\r\n return step.route.toLowerCase() === hash.toLowerCase();\r\n })[0];\r\n } else {\r\n step = this.routeConfiguration[0];\r\n }\r\n\r\n this.currentStep(step);\r\n\r\n if (!step.order) return;\r\n\r\n var newProgress = step.order / this.totalSteps() * 100;\r\n this.progress(newProgress);\r\n }.bind(this);\r\n\r\n this.setFieldFocus = function (ev) {\r\n if (typeof this.fieldInFocus !== 'function') {\r\n return;\r\n }\r\n\r\n // If function is called with event from onfocus handler, set field to have focus.\r\n // If called without event, then set first input field to have focus\r\n if (ev && ev.target) {\r\n this.fieldInFocus(ev.target.name);\r\n this.resetErrors(ev);\r\n }\r\n }.bind(this);\r\n\r\n this.validateField = function (ev, validateHandler) {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n\r\n if (hasErrors) {\r\n Utils.trackUserInputErrors('signup_error_no_nemid', this.model().errors);\r\n }\r\n\r\n if (fieldName === this.fieldInFocus()) {\r\n this.fieldInFocus(null);\r\n }\r\n this.buttonIsDisabled(hasErrors); // Disable button if fields has errors\r\n\r\n if (!hasErrors && typeof validateHandler === 'function') {\r\n validateHandler();\r\n }\r\n }.bind(this);\r\n\r\n this.mergeAndValidateField = (ev, validateHandler) => {\r\n if (this.currentStep().route === '/pincode') {\r\n this.mergeFieldsToSingleModelField('pincode', ['pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (this.currentStep().route === '/repeat-pincode') {\r\n this.mergeFieldsToSingleModelField('pincodeConfirm', ['pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n this.validateField(ev, validateHandler);\r\n };\r\n\r\n this.mergeFieldsToSingleModelField = (newFieldName, fieldNames = []) => {\r\n const fields = fieldNames.map((fieldName) => {\r\n return this.model().fields[fieldName]();\r\n });\r\n\r\n this.model().fields[newFieldName](fields.join(''));\r\n };\r\n\r\n this.resetErrors = function (ev) {\r\n var fieldName = ev.target.name;\r\n\r\n if (typeof this.model().errors[fieldName] === 'function') {\r\n this.model().errors[fieldName](null);\r\n }\r\n }.bind(this);\r\n\r\n this.validateRecaptcha = function () {\r\n if (!window.grecaptcha.getResponse().length) {\r\n Utils.ensightenEvent('signup_error_no_nemid', 'user_did_not_use_recaptcha');\r\n this.recaptcha().hasErrors('Not clicked');\r\n } else {\r\n this.recaptcha().hasErrors(null);\r\n }\r\n this.buttonIsDisabled(this.recaptcha().hasErrors());\r\n return this.recaptcha().hasErrors();\r\n }.bind(this);\r\n\r\n this.validateCprNumber = function (cprNumber) {\r\n return Utils.validateCprNumber(cprNumber);\r\n };\r\n\r\n this.resetRecaptcha = RecaptchaHelper.reCaptchaReady;\r\n\r\n this.addFile = function (file, index) {\r\n this.model().files()[index].file(file);\r\n }.bind(this);\r\n\r\n this.removeSelection = function (selection) {\r\n var removeIndex = this.model().files().indexOf(selection);\r\n this.model().files().splice(removeIndex, 1);\r\n }.bind(this);\r\n\r\n this.validateUpload = function () {\r\n this.model().files().forEach(function (file) {\r\n var hasErrors = file.file() && file.validate();\r\n this.buttonIsDisabled(hasErrors);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.isValidWithinGlobalLimits = () => {\r\n const type = Utils.capitalize(this.model().fields.offlineWagerLimitPeriod());\r\n const value = this.model().fields.offlineWagerLimit();\r\n\r\n if (!this.globalWagerLimits()) {\r\n return true;\r\n }\r\n\r\n const globalLimit = this.globalWagerLimits()[`Global${type}WagerLimit`];\r\n\r\n if (Number(value) <= globalLimit) {\r\n return true;\r\n }\r\n\r\n this.model().errors.offlineWagerLimit(this.d(`Errors/ValueAboveMaxLimit${type}`, { VALUE: Utils.formatCurrency(value), LIMIT: Utils.formatCurrency(globalLimit) }));\r\n return false;\r\n };\r\n\r\n this.submit = function () {\r\n var fields = this.currentStep().fields;\r\n\r\n if (this.model().validate(fields)) return;\r\n\r\n if (this.currentStep().route === '/limit/value') {\r\n if (!this.isValidWithinGlobalLimits()) {\r\n return;\r\n }\r\n }\r\n\r\n if (this.currentStep().route === '/limit/confirm') {\r\n fields = ['email', 'cprNumber', 'acceptTermsAndConditions', 'firstName', 'lastName',\r\n 'street', 'houseNumber', 'zipCode', 'city', 'country', 'phone', 'acceptDataProcessing',\r\n 'offlineWagerLimitPeriod', 'offlineWagerLimit', 'pincode', 'pincodeConfirm'\r\n ];\r\n var data = Utils.mapModelToApiData(fields, this.model().fields);\r\n this.isLoading(true);\r\n this.buttonIsDisabled(true);\r\n RetailApi.createProfile(data).then(function (response) {\r\n var hasErrors = this.model().setErrors(response.data);\r\n if (hasErrors) {\r\n Utils.trackUserInputErrors('signup_error_no_nemid', this.model().errors);\r\n\r\n this.model().fields.acceptDataProcessing(false);\r\n return this.routeToNextError();\r\n }\r\n\r\n Utils.clearValueInSession('savedData'); // Lets clean up all storage data no longer needed.\r\n this.model().update(response.data.profile); // Make sure our frontend UserModel is in sync with backend\r\n Utils.pushVirtualPage('/stepUploadDocuments', (window.location.pathname.replace(/-/g, '_') + '/stepUploadDocuments'), '/stepUploadDocuments');\r\n this.routeToNextStep('/stepUploadDocuments');\r\n this.buttonIsDisabled(false);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n }.bind(this));\r\n } else {\r\n this.routeToNextStep();\r\n }\r\n }.bind(this);\r\n\r\n this.storeSavedData = function () {\r\n var savedData = JSON.parse(JSON.stringify(this.model().fields));\r\n Utils.clearIndividualFields(savedData, ['cprNumber', 'acceptTermsAndConditions']); // Lets clear sensitive data.\r\n Utils.storeValueInSession('savedData', savedData);\r\n }.bind(this);\r\n\r\n this.verify = function () {\r\n if (this.recaptchaEnabled() && this.validateRecaptcha()) return;\r\n\r\n var fields = this.currentStep().fields;\r\n if (this.model().validate(fields)) return;\r\n var data = Utils.mapModelAndRecaptchaToApiData(fields, this.model().fields, this.recaptcha().model(), true);\r\n this.isLoading(true);\r\n\r\n RetailApi.validateUsernameAndEmail(data).then(function (ignoreResponse) {\r\n this.storeSavedData();\r\n this.routeToNextStep();\r\n }.bind(this), function (error) {\r\n var errors = error.response.errors;\r\n if (error.headers.status === 422) {\r\n Utils.mapValidationErrors(errors, this.model().errors);\r\n } else {\r\n this.showErrorModal(Utils.unwrapError(errors, error.headers));\r\n }\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n this.resetRecaptcha();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.routeToNextError = function () {\r\n for (var index in this.routeConfiguration) {\r\n var step = this.routeConfiguration[index];\r\n var requiredFields = step.fields || [];\r\n\r\n var errorFields = requiredFields.filter(function (field) {\r\n return this.model().errors[field]();\r\n }.bind(this));\r\n\r\n if (errorFields.length) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n break;\r\n } else {\r\n this.receiptContent({\r\n title: this.d('Receipt/CreationFailed/PageTitle'),\r\n abstract: this.d('Receipt/CreationFailed/PageDescription'),\r\n icon: 'exclemation-mark',\r\n callback: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location.href = Utils.getQueryParam('returnUrl');\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n buttonText: this.d('Receipt/CreationFailed/SubmitButton')\r\n });\r\n Utils.pushVirtualPage('/stepReceipt', (window.location.pathname.replace(/-/g, '_') + '/stepReceipt'), '/stepReceipt');\r\n route('/stepReceipt')();\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.routeToNextStep = function (routePath) {\r\n if (routePath) {\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n window.scrollTo(0, 0);\r\n return;\r\n }\r\n\r\n var currentStep = this.currentStep();\r\n var setRoute = this.routeConfiguration[currentStep.order];\r\n\r\n if (this.forceRegularSteps() && setRoute.regularFlow) {\r\n Utils.pushVirtualPage(setRoute.route, (window.location.pathname.replace(/-/g, '_') + setRoute.route), setRoute.route);\r\n route(setRoute.route)();\r\n return;\r\n }\r\n\r\n for (var index in this.routeConfiguration) {\r\n var step = this.routeConfiguration[index];\r\n var requiredFields = step.fields;\r\n\r\n // If route does not have missing fields and is part of the flow (defined by order), then load this\r\n if (!requiredFields && step.order) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n\r\n var missingFields = requiredFields.filter(function (field) {\r\n return !this.model().fields[field]();\r\n }.bind(this));\r\n\r\n if (missingFields.length) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n this.buttonIsDisabled(true);\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.upload = function () {\r\n var hasErrors = this.model().files().map(function (file) {\r\n return file.validate();\r\n }).some(function (error) {\r\n return error;\r\n });\r\n\r\n if (this.model().files().length === 0) {\r\n this.noFilesSelected(true);\r\n hasErrors = true;\r\n }\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n var data = Utils.mapFilesToApiData(this.model);\r\n this.isLoading(true);\r\n\r\n RetailApi.uploadDocuments(data).then().then(function (response) {\r\n var data = response.data;\r\n if (!data.OperationSuccess) {\r\n this.showErrorModal(data);\r\n return;\r\n }\r\n\r\n this.model().files([]); // Lets reset all uploaded files.\r\n\r\n Utils.pushVirtualPage('/stepReceipt', (window.location.pathname.replace(/-/g, '_') + '/stepReceipt'), '/stepReceipt');\r\n route('/stepReceipt')();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n }.bind(this));\r\n\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: this.d('ErrorModal/Title'),\r\n body: error.message,\r\n dismissButton: this.d('ErrorModal/DismissButton'),\r\n dismisable: true,\r\n }))).show();\r\n };\r\n\r\n\r\n this.selectAddressFromSelection = function (value) {\r\n var match = this.addresses().filter(function (entry) {\r\n return entry.value.indexOf(value) === 0;\r\n });\r\n\r\n if (match.length) {\r\n var model = match[0].model;\r\n this.model().fields.street(model.street);\r\n this.model().fields.houseNumber(model.houseNumber);\r\n this.model().fields.zipCode(model.zipCode);\r\n this.model().fields.city(model.city);\r\n model.level ? this.model().fields.level([model.level, model.door].join('. ')) : null;\r\n this.model().validate(['street', 'houseNumber', 'zipCode', 'city']);\r\n this.addresses([]);\r\n }\r\n }.bind(this);\r\n\r\n this.selectCityFromZip = function (zip) {\r\n var match = this.model().citiesList().filter(function (entry) {\r\n return entry.ZipCode.indexOf(zip) === 0;\r\n });\r\n if (match.length) {\r\n this.model().fields.zipCode(match[0].ZipCode);\r\n this.model().fields.city(match[0].City);\r\n this.model().validate(['city']);\r\n } else {\r\n this.model().fields.city(null);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupZip = function (ev) {\r\n this.setFieldFocus(ev);\r\n var val = ev.target.value;\r\n\r\n if (val.length === 4 || ev.key === 'Enter') {\r\n this.selectCityFromZip(val);\r\n this.fieldInFocus(null);\r\n }\r\n\r\n if (val.length) {\r\n var matches = this.model().citiesList().filter(function (entry) {\r\n return entry.ZipCode.indexOf(val) === 0;\r\n }).map(function (entry, index) {\r\n return {\r\n value: entry.ZipCode,\r\n highlighted: index === 0\r\n };\r\n });\r\n this.zips(matches);\r\n } else {\r\n this.zips([]);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupCity = function (ev) {\r\n this.setFieldFocus(ev);\r\n var val = ev.target.value;\r\n\r\n if (val.length) {\r\n var matches = this.model().citiesList().filter(function (entry) {\r\n return entry.City.toLowerCase().indexOf(val.toLowerCase()) === 0;\r\n }).map(function (entry, index) {\r\n return {\r\n value: entry.City,\r\n highlighted: index === 0\r\n };\r\n });\r\n this.cities(matches);\r\n } else {\r\n this.cities([]);\r\n }\r\n }.bind(this);\r\n\r\n this.lookupAddress = function (ev) {\r\n var val = ev.target.value;\r\n if (ev.key === 'Enter') {\r\n this.selectAddressFromSelection(val);\r\n this.addresses([]);\r\n return;\r\n }\r\n\r\n if (val.length) {\r\n RetailApi.getDawaAddress(val).then(function (response) {\r\n this.addresses(response);\r\n m.redraw();\r\n }.bind(this));\r\n } else {\r\n this.addresses([]);\r\n }\r\n }.bind(this);\r\n\r\n this.loadDocumentData = function () {\r\n this.hasLoadedDocuments(true);\r\n m.sync([getPurposes()]).then(function () {\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n m.sync([getCities(), getCountries()]).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n\r\n this.updateProgress(window.location.hash);\r\n\r\n window.addEventListener('popstate', function (ev) {\r\n this.updateProgress(ev.currentTarget.location.hash);\r\n if (this.currentStep().order === 1 && this.recaptchaEnabled()) {\r\n // Returned to initial page with recaptcha enabled, lets reset page content.\r\n location.reload();\r\n }\r\n }.bind(this), false);\r\n\r\n if (this.isRetailIpad()) {\r\n this.receiptContent({\r\n title: this.d('Receipt/NotAllowedRetailIpad/PageTitle'),\r\n abstract: this.d('Receipt/NotAllowedRetailIpad/PageDescription'),\r\n icon: 'exclemation-mark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n buttonText: this.d('Receipt/NotAllowedRetailIpad/SubmitButton')\r\n });\r\n Utils.pushVirtualPage('/stepUploadDocumentsRetail', (window.location.pathname.replace(/-/g, '_') + '/stepUploadDocumentsRetail'), '/stepuploaddocumentsretail');\r\n route('/stepReceipt')();\r\n } else {\r\n if (!this.model().fields.cprNumber() && this.currentStep().route !== '/') {\r\n // Since this flow is not session driven, we force a reset the flow, if we receive a page load not invoked from empty route \"/\"\r\n Utils.pushVirtualPage('/', (window.location.pathname.replace(/-/g, '_') + '/'), '/');\r\n route('/')();\r\n }\r\n }\r\n\r\n if (this.recaptchaEnabled()) {\r\n window.reCaptchaReady = RecaptchaHelper.reCaptchaReady;\r\n\r\n window.reCaptchaCallback = function () {\r\n var recaptcha = window.grecaptcha.getResponse();\r\n if (recaptcha.length > 0) {\r\n this.recaptcha().model(recaptcha);\r\n }\r\n this.validateRecaptcha().then(m.redraw, m.redraw);\r\n }.bind(this);\r\n }\r\n\r\n var savedData = Utils.getValueInSession('savedData');\r\n if (savedData) {\r\n this.model().update(savedData);\r\n }\r\n\r\n document.body.setAttribute('data-override-logout-return-url', settings.receiptLink?.Url || `/${window.location.pathname.split('/')[1]}`);\r\n\r\n Utils.setupLoginLinkEventListeners();\r\n },\r\n view: function (controller) {\r\n var currentStep = controller.currentStep().route.replace('/', '').toLowerCase();\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return m('div', {\r\n class: [\r\n 'retail-page',\r\n 'retail-signup',\r\n currentStep ? 'retail-signup--' + currentStep : ''\r\n ].join(' '),\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-page-signup')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller, 'retail-basic-signup');\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailFaroeseSignup', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Recaptcha',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay', // TODO: Move out from NG, or use more generic one?\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/WaitForAuthSynced',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/PurposeModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/FileUploadModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/FaroeseAccountInfo',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PNumber',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Name',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Address',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Phone',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodSelection',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodValue',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodConfirm',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameScanner',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UploadDocuments',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt'\r\n],\r\nfunction (Component, RecaptchaHelper, FrameworkOverlay, Dictionary, Utils, RetailApi, WaitForAuthSynced, UserModel, PurposeModel, FileUploadModel, Loader, ErrorOverlay, FaroeseAccountInfo, PNumber, Name, Address, Phone, LimitPeriodSelection, LimitPeriodValue, LimitPeriodConfirm, PINCode, GameScanner, UploadDocuments, Receipt) {\r\n\r\n // Component:\r\n Component('retail-faroese-signup', [Dictionary, WaitForAuthSynced], function (m, route, settings) {\r\n // Declare steps in signup flow\r\n var routeConfiguration = [\r\n { order: 1, route: '/', fields: ['email', 'username', 'password', 'repeatPassword'], template: FaroeseAccountInfo, regularFlow: true },\r\n { order: 2, route: '/stepPNumber', fields: ['cprNumber', 'acceptTermsAndConditions'], template: PNumber, regularFlow: true },\r\n { order: 3, route: '/stepName', fields: ['firstName', 'lastName'], template: Name, regularFlow: true },\r\n { order: 4, route: '/stepAddress', fields: ['street', 'houseNumber', 'zipCode', 'city', 'country'], template: Address, regularFlow: true },\r\n { order: 5, route: '/stepPhone', fields: ['phone'], template: Phone, regularFlow: true },\r\n { order: 6, route: '/stepGameScanner', fields: ['acceptDataProcessing'], template: GameScanner, regularFlow: true },\r\n { order: 7, route: '/pincode', fields: ['pin1', 'pin2', 'pin3', 'pin4', 'pincode'], dictionaryKey: 'SetPINCode', template: PINCode, regularFlow: true },\r\n { order: 8, route: '/repeat-pincode', fields: ['pincode', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm', 'pincodeConfirm'], dictionaryKey: 'ConfirmPINCode', template: PINCode, regularFlow: true },\r\n { order: 9, route: '/limit/period', fields: ['offlineWagerLimitPeriod'], dictionaryKey: 'LimitPeriodSelection', template: LimitPeriodSelection, regularFlow: true },\r\n { order: 10, route: '/limit/value', fields: ['offlineWagerLimit'], dictionaryKey: 'LimitPeriodValue', template: LimitPeriodValue, regularFlow: true },\r\n { order: 11, route: '/limit/confirm', fields: ['offlineWagerLimitPeriod', 'offlineWagerLimit'], dictionaryKey: 'LimitPeriodConfirm', template: LimitPeriodConfirm, regularFlow: true },\r\n { order: 12, route: '/stepUploadDocuments', fields: ['isActive', 'hasValidBankAccount'], template: UploadDocuments },\r\n { order: 13, route: '/stepReceipt', template: Receipt }\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-faroese-signup=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n currentStep = currentStep.length ? currentStep[0] : routeConfiguration[0];\r\n\r\n var preSelectedPurposes = Utils.getQueryParam('purpose') ? Utils.getQueryParam('purpose').split(',') : [];\r\n\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(false);\r\n this.isSubmitting = m.prop(false);\r\n this.isRetailIpad = m.prop(Utils.isRetailIpad());\r\n this.buttonIsDisabled = m.prop(true);\r\n this.modalError = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.totalSteps = m.prop(routeConfiguration.length);\r\n this.progress = m.prop(0);\r\n this.model = m.prop(new UserModel());\r\n this.d = Dictionary.get.bind({ prefix: 'RetailFaroeseSignup/' });\r\n this.purposes = m.prop([]);\r\n this.uploadSettings = settings.uploadSettings;\r\n this.recaptchaEnabled = m.prop(settings.recaptchaEnabled || false);\r\n this.hasLoadedDocuments = m.prop(false);\r\n this.hasPreloadFiles = m.prop(false);\r\n this.noFilesSelected = m.prop(false);\r\n this.forceRegularSteps = m.prop(true);\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/Success/PageTitle'),\r\n abstract: this.d('Receipt/Success/PageDescription'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n timeout: 8000,\r\n buttonText: settings.receiptLink.Text\r\n });\r\n this.showAddress = m.prop(true);\r\n this.backAllowed = m.prop(false);\r\n this.hideBackButton = m.prop(false);\r\n this.noPaddingTop = m.prop(false);\r\n this.maskPincodeInput = m.prop(false);\r\n this.showMarketingTermsInEmail = m.prop(true);\r\n this.fieldInFocus = m.prop();\r\n this.elementIsInViewport = m.prop(false);\r\n this.recaptcha = m.prop({\r\n model: m.prop(null),\r\n hasErrors: m.prop(null)\r\n });\r\n this.globalWagerLimits = m.prop(settings.globalWagerLimits);\r\n\r\n // Collections to hold suggested addresses, zipcodes and cities\r\n this.zips = m.prop([]);\r\n this.cities = m.prop([]);\r\n this.addresses = m.prop([]);\r\n\r\n var getCountries = function () {\r\n return RetailApi.getCountries().then(function (response) {\r\n this.model().availableCountries(response.data);\r\n this.model().setDefaultCountry('FO');\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPurposes = function () {\r\n return RetailApi.getUploadFilePurposes('RetailSignup').then(function (response) {\r\n this.purposes(response.data.map(function (purpose) {\r\n var purposeModel = new PurposeModel(purpose, true);\r\n var foundMatch = preSelectedPurposes.some(function (preSelected) {\r\n return preSelected.toLowerCase() === (purposeModel.identifier().toLowerCase());\r\n });\r\n if (foundMatch) {\r\n this.model().files().push(new FileUploadModel(purposeModel, this.uploadSettings, this.d, false));\r\n }\r\n return purposeModel;\r\n }.bind(this)));\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.hasFilesUploaded = function () {\r\n return this.model().files().filter(function (file) {\r\n return file.file() !== null;\r\n }).length > 0;\r\n }.bind(this);\r\n\r\n this.addFileRequirement = function (identifiers) {\r\n if (this.hasPreloadFiles() || this.purposes().length === 0) {\r\n return;\r\n }\r\n identifiers = Array.isArray(identifiers) ? identifiers : (typeof identifiers === 'string' ? [identifiers] : []);\r\n\r\n identifiers.forEach(function (identifier) {\r\n this.purposes().forEach(function (purpose) {\r\n if (purpose.identifier() === identifier) {\r\n this.model().files().push(new FileUploadModel(purpose, this.uploadSettings, this.d, false));\r\n }\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n this.hasPreloadFiles(true);\r\n }.bind(this);\r\n\r\n this.mergeAndValidateField = (ev, validateHandler) => {\r\n if (this.currentStep().route === '/pincode') {\r\n this.mergeFieldsToSingleModelField('pincode', ['pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (this.currentStep().route === '/repeat-pincode') {\r\n this.mergeFieldsToSingleModelField('pincodeConfirm', ['pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n this.validateField(ev, validateHandler);\r\n };\r\n\r\n this.mergeFieldsToSingleModelField = (newFieldName, fieldNames = []) => {\r\n const fields = fieldNames.map((fieldName) => {\r\n return this.model().fields[fieldName]();\r\n });\r\n\r\n this.model().fields[newFieldName](fields.join(''));\r\n };\r\n\r\n this.checkElementInViewport = function (elem, isInitialized) {\r\n if (!isInitialized) {\r\n var detectElementInViewport = function () {\r\n this.elementIsInViewport(Utils.elementInViewport(elem));\r\n }.bind(this);\r\n\r\n window.addEventListener('scroll', detectElementInViewport);\r\n\r\n detectElementInViewport();\r\n }\r\n }.bind(this);\r\n\r\n this.updateProgress = function (locationHash) {\r\n var hash = locationHash.replace('#retail-faroese-signup=', '');\r\n var step;\r\n\r\n if (hash !== '') {\r\n step = this.routeConfiguration.filter(function (step) {\r\n return step.route.toLowerCase() === hash.toLowerCase();\r\n })[0];\r\n } else {\r\n step = this.routeConfiguration[0];\r\n }\r\n\r\n this.currentStep(step);\r\n\r\n if (!step.order) return;\r\n\r\n var newProgress = step.order / this.totalSteps() * 100;\r\n this.progress(newProgress);\r\n }.bind(this);\r\n\r\n this.setFieldFocus = function (e) {\r\n if (typeof this.fieldInFocus !== 'function') {\r\n return;\r\n }\r\n\r\n // If function is called with event from onfocus handler, set field to have focus.\r\n // If called without event, then set first input field to have focus\r\n var fieldName = e && e.target ? e.target.name : null;\r\n\r\n if (fieldName) {\r\n this.fieldInFocus(fieldName);\r\n }\r\n }.bind(this);\r\n\r\n this.validateField = function (ev, validateHandler) {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n\r\n if (hasErrors) {\r\n Utils.trackUserInputErrors('signup_error_fo', this.model().errors);\r\n }\r\n\r\n if (fieldName === this.fieldInFocus()) {\r\n this.fieldInFocus(null);\r\n }\r\n this.buttonIsDisabled(hasErrors); // Disable button if fields has errors\r\n\r\n if (!hasErrors && typeof validateHandler === 'function') {\r\n validateHandler();\r\n }\r\n }.bind(this);\r\n\r\n this.resetErrors = function (ev) {\r\n var fieldName = ev.target.name;\r\n\r\n if (typeof this.model().errors[fieldName] === 'function') {\r\n this.model().errors[fieldName](null);\r\n }\r\n }.bind(this);\r\n\r\n this.validateRecaptcha = function () {\r\n if (!window.grecaptcha.getResponse().length) {\r\n Utils.ensightenEvent('signup_error_fo', 'user_did_not_use_recaptcha');\r\n this.recaptcha().hasErrors('Not clicked');\r\n } else {\r\n this.recaptcha().hasErrors(null);\r\n }\r\n this.buttonIsDisabled(this.recaptcha().hasErrors());\r\n m.redraw();\r\n return this.recaptcha().hasErrors();\r\n }.bind(this);\r\n\r\n this.validatePassword = function (event) {\r\n var fieldName = event && event.target ? event.target.name : '';\r\n\r\n this.model().validate(['password', 'repeatPassword']);\r\n var hasErrors = this.model().validate(['password', 'repeatPassword'], false);\r\n\r\n if (!hasErrors) {\r\n if (this.model().fields.password() !== this.model().fields.repeatPassword()) {\r\n this.model().errors.repeatPassword(this.d('FaroeseAccountInfo/Password/ErrorPasswordMismatch'));\r\n Utils.ensightenEvent('signup_error_fo', 'passwords_do_not_match');\r\n hasErrors = true;\r\n }\r\n }\r\n\r\n if (fieldName === this.fieldInFocus()) {\r\n this.fieldInFocus(null);\r\n }\r\n return hasErrors;\r\n }.bind(this);\r\n\r\n this.resetRecaptcha = RecaptchaHelper.reCaptchaReady;\r\n\r\n this.addFile = function (file, index) {\r\n this.model().files()[index].file(file);\r\n }.bind(this);\r\n\r\n this.removeSelection = function (selection) {\r\n var removeIndex = this.model().files().indexOf(selection);\r\n this.model().files().splice(removeIndex, 1);\r\n }.bind(this);\r\n\r\n this.validateUpload = function () {\r\n this.model().files().forEach(function (file) {\r\n var hasErrors = file.file() && file.validate();\r\n this.buttonIsDisabled(hasErrors);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.storeSavedData = function () {\r\n var savedData = JSON.parse(JSON.stringify(this.model().fields));\r\n Utils.clearIndividualFields(savedData, ['cprNumber', 'acceptTermsAndConditions', 'password', 'repeatPassword', 'pincode', 'pincodeConfirm', 'pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']); // Lets clear sensitive data.\r\n Utils.storeValueInSession('savedData', savedData);\r\n }.bind(this);\r\n\r\n this.isValidWithinGlobalLimits = () => {\r\n const type = Utils.capitalize(this.model().fields.offlineWagerLimitPeriod());\r\n const value = this.model().fields.offlineWagerLimit();\r\n\r\n if (!this.globalWagerLimits()) {\r\n return true;\r\n }\r\n\r\n const globalLimit = this.globalWagerLimits()[`Global${type}WagerLimit`];\r\n\r\n if (Number(value) <= globalLimit) {\r\n return true;\r\n }\r\n\r\n this.model().errors.offlineWagerLimit(this.d(`Errors/ValueAboveMaxLimit${type}`, { VALUE: Utils.formatCurrency(value), LIMIT: Utils.formatCurrency(globalLimit) }));\r\n return false;\r\n };\r\n\r\n this.submit = function () {\r\n var fields = this.currentStep().fields;\r\n\r\n if (this.model().validate(fields)) return;\r\n\r\n if (this.currentStep().route === '/limit/value') {\r\n if (!this.isValidWithinGlobalLimits()) {\r\n return;\r\n }\r\n }\r\n\r\n if (this.currentStep().route === '/repeat-pincode') {\r\n if (this.model().fields.pincode() !== this.model().fields.pincodeConfirm()) {\r\n this.model().errors.pincode('Pinkoden matcher ikke');\r\n\r\n ['pincode', 'pincodeConfirm', 'pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm'].forEach((fieldKey) => {\r\n this.model().fields[fieldKey](null);\r\n });\r\n\r\n return this.routeToNextError();\r\n }\r\n }\r\n\r\n if (this.currentStep().route === '/limit/confirm') {\r\n fields = ['email', 'username', 'password', 'repeatPassword', 'marketingTerms', 'cprNumber', 'acceptTermsAndConditions', 'firstName', 'lastName',\r\n 'street', 'houseNumber', 'zipCode', 'city', 'country', 'phone', 'acceptDataProcessing', 'offlineWagerLimitPeriod', 'offlineWagerLimit', 'pincode', 'pincodeConfirm'\r\n ];\r\n var data = Utils.mapModelToApiData(fields, this.model().fields);\r\n this.isLoading(true);\r\n this.buttonIsDisabled(true);\r\n\r\n RetailApi.createProfile(data).then(function (response) {\r\n var hasErrors = this.model().setErrors(response.data);\r\n if (hasErrors) {\r\n Utils.trackUserInputErrors('signup_error_fo', this.model().errors);\r\n\r\n ['pincode', 'pincodeConfirm', 'pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm'].forEach((fieldKey) => {\r\n this.model().fields[fieldKey](null);\r\n });\r\n\r\n return this.routeToNextError();\r\n }\r\n\r\n Utils.clearValueInSession('savedData'); // Lets clean up all storage data no longer needed.\r\n this.model().update(response.data.profile); // Make sure our frontend UserModel is in sync with backend\r\n this.model().fields.hasValidBankAccount(false);\r\n this.model().fields.isFromFaroe(true);\r\n Utils.pushVirtualPage('/stepUploadDocuments', (window.location.pathname.replace(/-/g, '_') + '/stepUploadDocuments'), '/stepUploadDocuments');\r\n this.routeToNextStep('/stepUploadDocuments');\r\n this.buttonIsDisabled(false);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n }.bind(this));\r\n } else {\r\n this.storeSavedData();\r\n this.routeToNextStep();\r\n }\r\n }.bind(this);\r\n\r\n this.verify = function () {\r\n if (this.recaptchaEnabled() && this.validateRecaptcha()) return;\r\n\r\n var fields = this.currentStep().fields;\r\n if (this.model().validate(fields) || this.validatePassword()) return;\r\n var data = Utils.mapModelAndRecaptchaToApiData(fields, this.model().fields, this.recaptcha().model());\r\n this.isLoading(true);\r\n RetailApi.validateUsernameAndEmail(data).then(function (ignoreResponse) {\r\n this.storeSavedData();\r\n this.routeToNextStep();\r\n }.bind(this), function (error) {\r\n var errors = error.response.errors;\r\n if (error.headers.status === 422) {\r\n Utils.mapValidationErrors(errors, this.model().errors);\r\n } else {\r\n this.showErrorModal(Utils.unwrapError(errors, error.headers));\r\n }\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n this.resetRecaptcha();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.routeToNextError = function () {\r\n let canRouteToError = false;\r\n for (var index in this.routeConfiguration) {\r\n var step = this.routeConfiguration[index];\r\n var requiredFields = step.fields || [];\r\n\r\n var errorFields = requiredFields.filter(function (field) {\r\n return this.model().errors[field]();\r\n }.bind(this));\r\n\r\n if (errorFields.length) {\r\n canRouteToError = true;\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n break;\r\n }\r\n }\r\n\r\n if (!canRouteToError) {\r\n this.receiptContent({\r\n title: this.d('Receipt/CreationFailed/PageTitle'),\r\n abstract: this.d('Receipt/CreationFailed/PageDescription'),\r\n icon: 'exclemation-mark',\r\n callback: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location.href = Utils.getQueryParam('returnUrl');\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n buttonText: this.d('Receipt/CreationFailed/SubmitButton')\r\n });\r\n Utils.pushVirtualPage('/stepReceipt', (window.location.pathname.replace(/-/g, '_') + '/stepReceipt'), '/stepReceipt');\r\n route('/stepReceipt')();\r\n }\r\n }.bind(this);\r\n\r\n this.routeToNextStep = function (routePath) {\r\n if (routePath) {\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n window.scrollTo(0, 0);\r\n return;\r\n }\r\n\r\n var currentStep = this.currentStep();\r\n var setRoute = this.routeConfiguration[currentStep.order];\r\n\r\n if (this.forceRegularSteps() && setRoute.regularFlow) {\r\n Utils.pushVirtualPage(setRoute.route, (window.location.pathname.replace(/-/g, '_') + setRoute.route), setRoute.route);\r\n route(setRoute.route)();\r\n return;\r\n }\r\n\r\n for (var index in this.routeConfiguration) {\r\n var step = this.routeConfiguration[index];\r\n var requiredFields = step.fields;\r\n\r\n // If route does not have missing fields and is part of the flow (defined by order), then load this\r\n if (!requiredFields && step.order) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n\r\n var missingFields = requiredFields.filter(function (field) {\r\n return !this.model().fields[field]();\r\n }.bind(this));\r\n\r\n if (missingFields.length) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n route(step.route)();\r\n this.buttonIsDisabled(true);\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.upload = function () {\r\n var hasErrors = this.model().files().map(function (file) {\r\n return file.validate();\r\n }).some(function (error) {\r\n return error;\r\n });\r\n\r\n if (this.model().files().length === 0) {\r\n this.noFilesSelected(true);\r\n hasErrors = true;\r\n }\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n var data = Utils.mapFilesToApiData(this.model);\r\n this.isLoading(true);\r\n\r\n RetailApi.uploadDocuments(data).then().then(function (response) {\r\n var data = response.data;\r\n if (!data.OperationSuccess) {\r\n this.showErrorModal(data);\r\n return;\r\n }\r\n\r\n this.model().files([]); // Lets reset all uploaded files.\r\n\r\n Utils.pushVirtualPage('/stepReceipt', (window.location.pathname.replace(/-/g, '_') + '/stepReceipt'), '/stepReceipt');\r\n route('/stepReceipt')();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n }.bind(this));\r\n\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: this.d('ErrorModal/Title'),\r\n body: error.message,\r\n dismissButton: this.d('ErrorModal/DismissButton'),\r\n dismisable: true,\r\n }))).show();\r\n };\r\n\r\n /*\r\n Placeholder functions selectAddressFromSelection, lookupZip, lookupCity, lookupAddress to maintain code functionality of reused page Address.js\r\n */\r\n this.selectAddressFromSelection = function () {\r\n return null;\r\n }.bind(this);\r\n\r\n this.lookupZip = function () {\r\n this.zips([]);\r\n }.bind(this);\r\n\r\n this.lookupCity = function () {\r\n this.cities([]);\r\n }.bind(this);\r\n\r\n this.lookupAddress = function () {\r\n this.addresses([]);\r\n }.bind(this);\r\n\r\n this.loadDocumentData = function () {\r\n this.hasLoadedDocuments(true);\r\n m.sync([getPurposes()]).then(function () {\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n m.sync([getCountries()]).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n\r\n this.updateProgress(window.location.hash);\r\n\r\n window.addEventListener('popstate', function (e) {\r\n this.updateProgress(e.currentTarget.location.hash);\r\n if (this.currentStep().order === 1 && this.recaptchaEnabled()) {\r\n // Returned to initial page with recaptcha enabled, lets reset page content.\r\n location.reload();\r\n }\r\n }.bind(this), false);\r\n\r\n if (this.isRetailIpad()) {\r\n this.receiptContent({\r\n title: this.d('Receipt/NotAllowedRetailIpad/PageTitle'),\r\n abstract: this.d('Receipt/NotAllowedRetailIpad/PageDescription'),\r\n icon: 'exclemation-mark'\r\n });\r\n Utils.pushVirtualPage('/receipt_retail_ipad_not_allowed_faroese', (window.location.pathname.replace(/-/g, '_') + '/receipt_retail_ipad_not_allowed_faroese'), '/receipt_retail_ipad_not_allowed_faroese');\r\n route('/stepReceipt')();\r\n } else {\r\n if (!this.model().fields.cprNumber() && this.currentStep().route !== '/') {\r\n // Since this flow is not session driven, we force a reset the flow, if we receive a page load not invoked from empty route \"/\"\r\n Utils.pushVirtualPage('/', (window.location.pathname.replace(/-/g, '_') + '/'), '/');\r\n route('/')();\r\n }\r\n }\r\n\r\n if (this.recaptchaEnabled()) {\r\n window.reCaptchaReady = RecaptchaHelper.reCaptchaReady;\r\n\r\n window.reCaptchaCallback = function () {\r\n var recaptcha = window.grecaptcha.getResponse();\r\n if (recaptcha.length > 0) {\r\n this.recaptcha().model(recaptcha);\r\n }\r\n this.validateRecaptcha().then(m.redraw, m.redraw);\r\n }.bind(this);\r\n }\r\n\r\n var savedData = Utils.getValueInSession('savedData');\r\n if (savedData) {\r\n this.model().update(savedData);\r\n }\r\n\r\n this.init = () => {\r\n document.body.setAttribute('data-override-logout-return-url', settings.receiptLink?.Url || window.location.pathname.split('/')[0]);\r\n\r\n Utils.setupLoginLinkEventListeners();\r\n\r\n if (window.dsApplicationConfig && ['SHAPE_RETAILACCOUNT_IPADNATIVE'].includes(window.dsApplicationConfig?.ApplicationId)) {\r\n this.maskPincodeInput(true);\r\n }\r\n };\r\n\r\n this.init();\r\n },\r\n view: function (controller) {\r\n var currentStep = controller.currentStep().route.replace('/', '').toLowerCase();\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return m('div', {\r\n class: [\r\n 'retail-page',\r\n 'retail-signup',\r\n currentStep ? 'retail-signup--' + currentStep : ''\r\n ].join(' '),\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-page-faeroe-signup')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller, 'retail-faroese-signup');\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailForgot', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay', // TODO: Move out from NG, or use more generic one?\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/ForgotPasswordModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ForgotPassword',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ForgotPincode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt'\r\n],\r\nfunction (Component, FrameworkOverlay, Dictionary, Utils, RetailApi, ForgotPasswordModel, Loader, ErrorOverlay, ForgotPassword, ForgotPincode, Receipt) {\r\n\r\n // Component:\r\n Component('retail-forgot', [Dictionary], function (m, route, settings) {\r\n\r\n // Declare steps in signup flow\r\n var routeConfiguration = [\r\n { order: 1, route: '/', fields: [], template: ForgotPassword },\r\n { order: 2, route: '/receipt', template: Receipt },\r\n { route: '/pincode', fields: [], template: ForgotPincode }\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-forgot=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n currentStep = currentStep.length ? currentStep[0] : routeConfiguration[0];\r\n\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(false);\r\n this.isSubmitting = m.prop(false);\r\n this.isApp = m.prop((Utils.getQueryParam('dsApplicationId') || window.dsApplicationConfig) || false);\r\n this.buttonIsDisabled = m.prop(true);\r\n this.modalError = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.model = m.prop(new ForgotPasswordModel());\r\n this.loginLink = m.prop(settings.loginLink.Url ? settings.loginLink.Url : null);\r\n this.indexOfQueryParam = m.prop(this.loginLink().indexOf('?') > -1 ? this.loginLink().indexOf('?') : this.loginLink().length);\r\n this.appLoginLink = m.prop(this.loginLink() ? this.loginLink().substr(0, this.indexOfQueryParam()) : null);\r\n this.d = Dictionary.get.bind({ prefix: 'RetailForgot/' });\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/Success/PageTitle'),\r\n abstract: this.d('Receipt/Success/PageDescription'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n window.location.href = settings.receiptLink.Url;\r\n },\r\n buttonText: this.d('Receipt/Success/SubmitButton'),\r\n });\r\n this.fieldInFocus = m.prop();\r\n this.token = m.prop(Utils.getQueryParam('token'));\r\n this.tokenIsValid = m.prop(null);\r\n\r\n if (this.token()) {\r\n this.isLoading(true);\r\n RetailApi.isPasswordTokenValid(this.token()).then(function () {\r\n Utils.extendFields(this.currentStep().fields, ['password', 'repeatPassword']);\r\n this.tokenIsValid(true);\r\n this.isLoading(false);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n this.isLoading(false);\r\n }.bind(this));\r\n }\r\n\r\n this.setFieldFocus = function (ev) {\r\n if (typeof this.fieldInFocus !== 'function') {\r\n return;\r\n }\r\n\r\n // If function is called with event from onfocus handler, set field to have focus.\r\n // If called without event, then set first input field to have focus\r\n if (ev && ev.target) {\r\n this.fieldInFocus(ev.target.name);\r\n this.resetErrors(ev);\r\n }\r\n }.bind(this);\r\n\r\n this.validateField = function (ev) {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n\r\n if (hasErrors) {\r\n Utils.trackUserInputErrors('forgot_error', this.model().errors);\r\n }\r\n\r\n if (fieldName === this.fieldInFocus()) {\r\n this.fieldInFocus(null);\r\n }\r\n this.buttonIsDisabled(hasErrors); // Disable button if fields has errors\r\n }.bind(this);\r\n\r\n this.resetErrors = function (ev) {\r\n var fieldName = ev.target.name;\r\n\r\n if (typeof this.model().errors[fieldName] === 'function') {\r\n this.model().errors[fieldName](null);\r\n }\r\n }.bind(this);\r\n\r\n this.submit = function () {\r\n var fields = this.currentStep().fields;\r\n\r\n if (this.model().validate(fields)) return;\r\n\r\n var data = Utils.mapPasswordToApiData(this.model().fields.password(), this.model().fields.repeatPassword(), this.token());\r\n this.isLoading(true);\r\n this.buttonIsDisabled(true);\r\n RetailApi.changePassword(data).then(function () {\r\n var routePath = '/receipt';\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n this.buttonIsDisabled(false);\r\n }.bind(this), function (error) {\r\n console.error(error);\r\n this.model().errors['password'](error.message);\r\n this.isLoading(false);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: this.d('Errors/InvalidToken'),\r\n body: error.message,\r\n dismissButton: this.d('Errors/DismissButton'),\r\n dismisable: true,\r\n }))).show();\r\n };\r\n\r\n },\r\n view: function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n var currentStep = controller.currentStep().route.replace('/', '').toLowerCase();\r\n\r\n return m('div', {\r\n class: [\r\n 'retail-page',\r\n 'retail-forgot',\r\n currentStep ? 'retail-forgot--' + currentStep : ''\r\n ].join(' '),\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-page-forgot')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller);\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailFrontpagePlaycard', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils'\r\n], function (Component, Api, Utils) {\r\n\r\n Component('retail-frontpage-playcard', function (m, route, settings) {\r\n\r\n const root = {\r\n controller: function () {\r\n this.settings = settings;\r\n const birthdayText = this.settings?.birthdayText ?? '';\r\n const user = m.prop(null);\r\n const playcard = m.prop(null);\r\n const isLoading = m.prop(true);\r\n const hasError = m.prop(true);\r\n const enlargeQr = m.prop(false);\r\n const birthday = m.prop(null);\r\n\r\n const formatBirthday = (date) => {\r\n let birthday = date.split(' ')[0];\r\n\r\n if (birthday) {\r\n return birthday.replaceAll('-', '.');\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const handleQrLabelClick = () => {\r\n enlargeQr(!enlargeQr());\r\n };\r\n\r\n const loadData = async () => {\r\n isLoading(true);\r\n let userData;\r\n let playcardData;\r\n\r\n try {\r\n [userData, playcardData] = await Promise.all([Api.getProfile(), Api.getVisualPlayCard()]);\r\n if (userData.status !== 'success') throw new Error('Failed to load user data');\r\n if (playcardData.status !== 'success') throw new Error('Failed to load playcard');\r\n\r\n user(userData.data.profile);\r\n playcard(playcardData.data);\r\n birthday(formatBirthday(user().dateOfBirth.value));\r\n hasError(false);\r\n } catch (e) {\r\n console.error(e);\r\n hasError(true);\r\n } finally {\r\n isLoading(false);\r\n }\r\n };\r\n\r\n loadData();\r\n\r\n document.body.setAttribute('data-override-logout-return-url', `/${window.location.pathname.split('/')[1]}`);\r\n\r\n return { user, playcard, isLoading, handleQrLabelClick, enlargeQr, hasError, birthdayText, birthday };\r\n },\r\n view: function ({ user, playcard, isLoading, handleQrLabelClick, enlargeQr, hasError, birthdayText, birthday }) {\r\n if (isLoading()) {\r\n return (\r\n
Henter Spil-id...
\r\n );\r\n }\r\n\r\n if (hasError()) {\r\n return (\r\n
Kunne ikke hente Spil-id
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
{user().firstName.value ?? ''} {user().lastName.value ?? ''}
\r\n
{birthdayText + birthday()}
\r\n
\r\n
{m.trust(playcard().svg.Content)}\r\n
{!enlargeQr() ? 'FORSTØR' : 'FORMINDSK'} QR
\r\n
\r\n
\r\n
Spil-id:
\r\n
{Utils.splitString(playcard().number)}
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n };\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailProfile', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/QuickLink',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/PurposeModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/FileUploadModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/PlaycardModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/LimitModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ProfileOverview',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Email',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Phone',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Username',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Password',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ViewPINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PayoutMethod',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/UploadDocuments',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/EmailPermissions',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/EmailWinningsPermissions',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/CloseAccount',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ConfirmAccountRestriction',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/RestrictAccount',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Limits',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ConfirmWagerLimits',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ConfirmCallback',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardIntro',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardPincode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardConfirm',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ReactivatePlaycard',\r\n],\r\nfunction (Component, Storage, Ensighten, QuickLink, FrameworkOverlay, LoginController, Dictionary, Utils, RetailApi, UserModel, PurposeModel, FileUploadModel, PlaycardModel, LimitModel, Loader, ErrorOverlay, ProfileOverview, Email, Phone, Username, Password, ViewPINCode, PINCode, PayoutMethod, UploadDocuments, EmailPermissions, EmailWinningsPermissions, Receipt, CloseAccount, ConfirmAccountRestriction, RestrictAccount, Limits, ConfirmWagerLimits, ConfirmCallback, OrderPlaycardIntro, OrderPlaycardPincode, OrderPlaycardConfirm, ReactivatePlaycard) {\r\n // Declare steps in signup flow\r\n var routeConfiguration = [\r\n { route: '/', template: ProfileOverview },\r\n { route: '/email', fields: ['email'], dictionaryKey: 'Receipt/Email', template: Email },\r\n { route: '/phone', fields: ['phone'], dictionaryKey: 'Receipt/Phone', template: Phone },\r\n { route: '/password', fields: ['password', 'repeatPassword'], dictionaryKey: 'Receipt/Password', template: Password },\r\n { route: '/pincode', template: ViewPINCode },\r\n { route: '/edit-pincode', fields: ['pincode'], dictionaryKey: 'SetPINCode', template: PINCode, },\r\n { route: '/repeat-pincode', fields: ['pincode', 'pincodeConfirm'], dictionaryKey: 'ConfirmPINCode', template: PINCode },\r\n { route: '/username', fields: ['username'], dictionaryKey: 'Receipt/Username', template: Username },\r\n { route: '/payoutMethod', template: PayoutMethod },\r\n { route: '/uploadDocuments', template: UploadDocuments },\r\n { route: '/emailPermissions', dictionaryKey: 'Receipt/EmailPermissions', template: EmailPermissions },\r\n { route: '/emailWinningsPermissions', dictionaryKey: 'Receipt/EmailWinningsPermissions', template: EmailWinningsPermissions },\r\n { route: '/receipt', template: Receipt },\r\n { route: '/close-account', template: CloseAccount },\r\n { route: '/restrict-account', template: RestrictAccount },\r\n { route: '/restrict-account/confirm', template: ConfirmAccountRestriction },\r\n { route: '/offline-limits', template: Limits, dictionaryKey: 'OfflineLimits' },\r\n { route: '/limits', template: Limits, dictionaryKey: 'WagerLimits' },\r\n { route: '/limits/confirm', template: ConfirmWagerLimits },\r\n { route: '/callback/confirm', template: ConfirmCallback },\r\n { route: '/manage', template: OrderPlaycardIntro },\r\n { route: '/order/pincode-option', template: OrderPlaycardPincode },\r\n { route: '/order/confirm', template: OrderPlaycardConfirm },\r\n { route: '/reorder', template: OrderPlaycardIntro },\r\n { route: '/reactivate', template: ReactivatePlaycard },\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-profile=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n if (!currentStep.length) {\r\n currentStep = routeConfiguration[0];\r\n } else {\r\n currentStep = currentStep[0];\r\n }\r\n\r\n var RofusLinks = new QuickLink('/Rofus');\r\n\r\n // Component:\r\n Component('retail-profile', [Dictionary, RofusLinks], function (m, route, settings) {\r\n\r\n var preSelectedPurposes = Utils.getQueryParam('purpose') ? Utils.getQueryParam('purpose').split(',') : [];\r\n\r\n var root = {\r\n controller: function () {\r\n this.d = Dictionary.get.bind({ prefix: 'RetailProfile/' });\r\n this.isLoading = m.prop(true);\r\n this.buttonIsDisabled = m.prop(true);\r\n this.isSubmitting = m.prop(false);\r\n this.uploadSettings = settings;\r\n this.hasLoadedDocuments = m.prop(false);\r\n this.hasPreloadFiles = m.prop(false);\r\n this.noFilesSelected = m.prop(false);\r\n this.noLimitsChanged = m.prop(false);\r\n this.noPeriodSelected = m.prop(false);\r\n this.modalQRCode = m.prop(null);\r\n this.playIdRenewed = m.prop(false);\r\n this.purposes = m.prop([]);\r\n this.model = m.prop(new UserModel());\r\n this.playcardModel = m.prop(new PlaycardModel());\r\n this.modalError = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.hideBackButton = m.prop((Utils.getQueryParam('dsApplicationId') || window.dsApplicationConfig) || false);\r\n this.noPaddingTop = m.prop((Utils.getQueryParam('dsApplicationId') || window.dsApplicationConfig) || false);\r\n this.rofusLink = RofusLinks.get;\r\n this.postfix = ' kr.';\r\n this.fieldInFocus = m.prop();\r\n this.backAllowed = m.prop(true);\r\n this.playcardRenewed = m.prop(false);\r\n this.createUsernameFlow = m.prop(false);\r\n this.maskPincodeInput = m.prop(false);\r\n this.homeLink = m.prop(settings.homeLink?.Url || null);\r\n this.mobilePayLink = m.prop(settings.mobilePayLink?.Url || null);\r\n this.mobilePayQRCode = m.prop(null);\r\n this.zoomQR = m.prop(false);\r\n this.hasOfflineExclusion = m.prop(false);\r\n this.reactivatePlaycardFlow = m.prop(false);\r\n this.route = route;\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/GenericTitle'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getQueryParam('returnUrl');\r\n if (returnUrl) {\r\n if (this.playcardRenewed()) {\r\n window.location.href = Utils.appendParameter('playIdRenewed', 'true', returnUrl);\r\n } else {\r\n window.location.href = returnUrl;\r\n }\r\n } else {\r\n this.createUsernameFlow(false);\r\n this.reactivatePlaycardFlow(false);\r\n route('/')();\r\n }\r\n }.bind(this),\r\n init: function () {\r\n Utils.pushVirtualPage('/', (window.location.pathname.replace(/-/g, '_') + '/'), '/');\r\n },\r\n timeout: 1000\r\n });\r\n this.retailEmailPermissionText = m.prop(settings.retailPermissionText || '');\r\n this.onlineEmailPermissionText = m.prop(settings.onlinePermissionText || '');\r\n this.calendarStartDate = m.prop(new Date());\r\n this.calendarStartDate().setDate(this.calendarStartDate().getDate() + 30);\r\n this.calendarEndDate = m.prop(new Date());\r\n this.calendarEndDate().setDate(this.calendarEndDate().getDate() + 364);\r\n\r\n this.goToRoute = function (routePath, persistValues) {\r\n var step = this.routeConfiguration.filter(function (step) {\r\n return step.route.toLowerCase() === routePath.toLowerCase();\r\n })[0];\r\n\r\n this.currentStep(step);\r\n\r\n if (!persistValues) {\r\n // Make sure that the model is reset (with the initial values) when going back to the edit view\r\n Object.keys(this.model().initialValues).forEach(function (fieldKey) {\r\n var originalValue = this.model().initialValues[fieldKey];\r\n this.model().fields[fieldKey](originalValue);\r\n this.model().errors[fieldKey](null);\r\n }.bind(this));\r\n }\r\n\r\n if (routePath === '/limits' || routePath === '/offline-limits') {\r\n this.model().userLimits().clearErrors();\r\n this.model().userLimits().limits().map(function (limit) {\r\n limit.reset();\r\n });\r\n }\r\n\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n window.scroll(0, 0);\r\n }.bind(this);\r\n\r\n this.restrictAccountSubmit = function (type) { // can be 'close' or undefined (undefined=restrict)\r\n\r\n if (type === 'close') {\r\n this.model().fields.restrictType('close');\r\n } else {\r\n if (this.model().fields.restrictType()) {\r\n this.noPeriodSelected(false);\r\n } else {\r\n this.noPeriodSelected(true);\r\n }\r\n }\r\n\r\n if (this.model().fields.restrictType() !== '24hour') {\r\n // Restrict or close\r\n Storage.set('restrictType', JSON.stringify(this.model().fields.restrictType()));\r\n Storage.set('restrictDate', JSON.stringify(this.model().fields.restrictDate().toString()));\r\n\r\n var variant = this.model().fields.isRetailAccount() ? 'Retail' : 'Default';\r\n\r\n if (this.model().fields.restrictType() === 'close') {\r\n variant += 'CloseAccount';\r\n } else if (this.model().fields.restrictType() === 'unlimited') {\r\n variant += 'LockAccount';\r\n } else {\r\n variant += 'RestrictAccount';\r\n }\r\n\r\n var returnUrl = window.location.href.split('#')[0] + '#retail-profile=/callback/confirm';\r\n var newUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/goto-identity-confirm';\r\n newUrl = Utils.appendParameter('variant', variant, newUrl);\r\n newUrl = Utils.appendParameter('returnUrl', encodeURIComponent(returnUrl), newUrl);\r\n newUrl = Utils.appendParameter('cancelUrl', encodeURIComponent(window.location.href), newUrl);\r\n window.location.href = newUrl;\r\n\r\n } else {\r\n // restrictType = '24hour', means only restrict\r\n this.route('/restrict-account/confirm')();\r\n }\r\n };\r\n\r\n this.goToConfirmLimit = function () {\r\n var isValid = this.validateLimit();\r\n var hasChanges = this.model().userLimits().hasChanges();\r\n this.noLimitsChanged(!hasChanges && isValid);\r\n if (isValid && hasChanges) {\r\n this.goToRoute('/limits/confirm');\r\n }\r\n }.bind(this);\r\n\r\n this.validateLimit = function () {\r\n this.model().userLimits().clearErrors(); // Lets cleanup old errors\r\n return this.model().userLimits().validate();\r\n }.bind(this);\r\n\r\n this.goToUploadDocumentation = function () {\r\n Utils.pushVirtualPage('/uploadDocuments', (window.location.pathname.replace(/-/g, '_') + '/uploadDocuments'), '/uploadDocuments');\r\n route('/uploadDocuments')();\r\n };\r\n\r\n this.backLinkCallback = function () {\r\n this.goToRoute('/');\r\n }.bind(this);\r\n\r\n this.updatePermissions = function (type) {\r\n var data = {};\r\n var fields = this.model().fields;\r\n\r\n if (type === 'winner') {\r\n data.EmailWinnerNotificationPermission = fields.emailWinningPermission();\r\n data.SmsWinnerNotificationPermission = fields.smsWinningPermission();\r\n } else if (type === 'marketing') {\r\n data.EmailPermission = fields.emailPermission();\r\n data.RetailPermission = fields.marketingTerms();\r\n }\r\n\r\n data.referenceId = 'RETAIL_PROFILE_PAGE';\r\n\r\n RetailApi.setNotificationPermissions(data).then(function (response) {\r\n if (response.status === 'success') {\r\n var receiptDictionaryKey = this.currentStep().dictionaryKey;\r\n this.receiptContent().title = this.d(receiptDictionaryKey + 'Title');\r\n this.model().update({\r\n emailWinningPermission: fields.emailWinningPermission(),\r\n smsWinningPermission: fields.smsWinningPermission(),\r\n emailPermission: fields.emailPermission(),\r\n marketingTerms: fields.marketingTerms()\r\n });\r\n\r\n if (this.model().initialValues.emailWinningPermission !== fields.emailWinningPermission()) {\r\n Utils.ensightenEvent('permission_' + fields.emailWinningPermission(), 'emailWinningPermission');\r\n }\r\n\r\n if (this.model().initialValues.smsWinningPermission !== fields.smsWinningPermission()) {\r\n Utils.ensightenEvent('permission_' + fields.smsWinningPermission(), 'smsWinningPermission');\r\n }\r\n\r\n if (this.model().initialValues.emailPermission !== fields.emailPermission()) {\r\n Utils.ensightenEvent('permission_' + fields.emailPermission(), 'emailPermission');\r\n }\r\n\r\n if (this.model().initialValues.marketingTerms !== fields.marketingTerms()) {\r\n Utils.ensightenEvent('permission_' + fields.marketingTerms(), 'marketingTerms');\r\n }\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n }\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n var confirm = null;\r\n\r\n if (error.statusCode === 401) {\r\n confirm = function () {\r\n window.location.href = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n };\r\n }\r\n\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: this.d('ErrorModal/Title'),\r\n body: error.message,\r\n confirm: confirm,\r\n dismisable: false,\r\n confirmButtonClass: settings.loginLink.CssClass || null,\r\n confirmButton: confirm ? settings.loginLink.Text : null\r\n }))).show();\r\n };\r\n\r\n this.verifyUsername = function () {\r\n if (!this.model().fields.username()) {\r\n Utils.pushVirtualPage('/username-missing', (window.location.pathname.replace(/-/g, '_') + '/username'), '/username-missing');\r\n route('/username')();\r\n }\r\n }.bind(this);\r\n\r\n this.createUsername = function () {\r\n var fields = this.currentStep().fields;\r\n Utils.extendFields(fields, ['password', 'repeatPassword']);\r\n this.createUsernameFlow(true);\r\n Utils.pushVirtualPage('/password', (window.location.pathname.replace(/-/g, '_') + '/password'), '/password');\r\n route('/password')();\r\n }.bind(this);\r\n\r\n this.confirmLimit = function () {\r\n var data = this.model().userLimits().mapToData();\r\n if (!this.validateLimit()) {\r\n return;\r\n }\r\n\r\n RetailApi.setWagerLimits(data).then(function (response) {\r\n Utils.trackLimitChanges('spilgraense', this.model().userLimits().limits());\r\n var limits = response.limits.map(function (limit) {\r\n return new LimitModel(limit);\r\n });\r\n\r\n this.model().userLimits().limits(limits);\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location = Utils.getQueryParam('returnUrl');\r\n } else {\r\n Utils.pushVirtualPage('/', (window.location.pathname.replace(/-/g, '_') + '/'), '/');\r\n route('/')();\r\n }\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.mergeFieldsToSingleModelField = (newFieldName, fieldNames = []) => {\r\n const fields = fieldNames.map((fieldName) => {\r\n return this.model().fields[fieldName]();\r\n });\r\n\r\n this.model().fields[newFieldName](fields.join(''));\r\n };\r\n\r\n this.submit = function () {\r\n var fields = this.currentStep().fields;\r\n var hasErrors = this.model().validate(fields);\r\n\r\n if (this.currentStep().route === '/password' && !this.model().fields.nemIdSignedIn()) {\r\n Utils.extendFields(fields, ['currentPassword']);\r\n } else if (this.currentStep().route === '/password' && this.createUsernameFlow()) {\r\n Utils.extendFields(fields, ['username']);\r\n }\r\n\r\n if (hasErrors) return;\r\n\r\n if (this.currentStep().route === '/edit-pincode') {\r\n if (this.model().fields.pincode().length !== 4) {\r\n return;\r\n }\r\n\r\n this.goToRoute('/repeat-pincode', true);\r\n return;\r\n }\r\n\r\n if (currentStep.optionalFields) {\r\n fields = currentStep.fields.concat(currentStep.optionalFields);\r\n }\r\n\r\n var data = Utils.mapModelToApiData(fields, this.model().fields, this.model().initialValues);\r\n this.isLoading(true);\r\n\r\n RetailApi.updateProfile(data).then(function (response) {\r\n if (!response.data.success) {\r\n this.model().setErrors(response.data);\r\n\r\n if (this.createUsernameFlow() && this.model().errors.username()) {\r\n Utils.pushVirtualPage('/username', (window.location.pathname.replace(/-/g, '_') + '/username'), '/username');\r\n route('/username')();\r\n }\r\n\r\n if (this.model().errors.pincode()) {\r\n ['pincode', 'pincodeConfirm', 'pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm'].forEach((fieldKey) => {\r\n this.model().fields[fieldKey](null);\r\n });\r\n this.goToRoute('/edit-pincode', true);\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.model().update(response.data.profile); // Make sure our frontend UserModel is in sync with backend\r\n\r\n if (this.playcardModel().orderWithNewPincode()) {\r\n this.goToRoute('/order/confirm');\r\n return;\r\n }\r\n\r\n if (this.createUsernameFlow()) {\r\n this.receiptContent().title = this.d('Receipt/UsernameTitle');\r\n } else if (this.reactivatePlaycardFlow()) {\r\n this.receiptContent().timeout = null;\r\n this.receiptContent().buttonText = this.d('Receipt/ReactivatePlaycardButtonText');\r\n } else if (this.currentStep().route === '/repeat-pincode') {\r\n this.receiptContent().title = this.d('Receipt/PINCodeTitle');\r\n this.receiptContent().buttonText = this.d('Receipt/PINCodeButtonText');\r\n this.receiptContent().timeout = null;\r\n } else {\r\n var receiptDictionaryKey = this.currentStep().dictionaryKey;\r\n this.receiptContent().title = this.d(receiptDictionaryKey + 'Title');\r\n }\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.setFieldFocus = function (e) {\r\n if (typeof this.fieldInFocus !== 'function') {\r\n return;\r\n }\r\n\r\n // If function is called with event from onfocus handler, set field to have focus.\r\n // If called without event, then set first input field to have focus\r\n var fieldName = e && e.target ? e.target.name : null;\r\n\r\n if (fieldName) {\r\n this.fieldInFocus(fieldName);\r\n }\r\n }.bind(this);\r\n\r\n this.validateField = function (ev, validateHandler) {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n if (typeof this.fieldInFocus === 'function') {\r\n this.fieldInFocus(null);\r\n }\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n this.buttonIsDisabled(hasErrors); // Disable button if fields has errors\r\n\r\n if (!hasErrors && typeof validateHandler === 'function') {\r\n validateHandler();\r\n }\r\n }.bind(this);\r\n\r\n this.mergeAndValidateField = (ev, validateHandler) => {\r\n if (this.currentStep().route === '/edit-pincode') {\r\n this.mergeFieldsToSingleModelField('pincode', ['pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (this.currentStep().route === '/repeat-pincode') {\r\n this.mergeFieldsToSingleModelField('pincodeConfirm', ['pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n this.validateField(ev, validateHandler);\r\n };\r\n\r\n var getPermissionsSettings = function () {\r\n return RetailApi.getNotificationPermissions().then(function (response) {\r\n this.model().update(response);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getOfflineLoginExclusion = () => {\r\n return RetailApi.getOfflineLoginExclusion().then((response) => {\r\n this.hasOfflineExclusion(response.data);\r\n });\r\n };\r\n\r\n var getMobileLinkQRCode = function () {\r\n return RetailApi.getMobileLinkQR().then(function (response) {\r\n this.mobilePayQRCode(response.data.svg.Content);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPlaycard = function () {\r\n return RetailApi.getPlaycard().then(function (response) {\r\n this.playcardModel().update(response.data);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getVisualPlayCard = function () {\r\n return RetailApi.getVisualPlayCard().then(function (response) {\r\n this.playcardModel().digitalPlaycardImage(response.data.svg.Content);\r\n this.playcardModel().digitalPlaycardNumber(response.data.number);\r\n m.redraw();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPurposes = function () {\r\n return RetailApi.getUploadFilePurposes('RetailProfile').then(function (response) {\r\n this.purposes(response.data.map(function (purpose) {\r\n var purposeModel = new PurposeModel(purpose, true);\r\n var foundMatch = preSelectedPurposes.some(function (preSelected) {\r\n return preSelected.toLowerCase() === (purposeModel.identifier().toLowerCase());\r\n });\r\n if (foundMatch) {\r\n this.model().files().push(new FileUploadModel(purposeModel, this.uploadSettings, this.d, false));\r\n }\r\n return purposeModel;\r\n }.bind(this)));\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var hasDocuments = function () {\r\n return RetailApi.hasDocuments().then(function (response) {\r\n this.model().hasDocuments(response.data.HasDocuments || false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPlayerLimits = function () {\r\n return RetailApi.getPlayerLimits().then(function (response) {\r\n var limits = response.limits.map(function (limit) {\r\n return new LimitModel(limit);\r\n });\r\n\r\n this.model().userLimits().sitecoreLimits([\r\n { type: 'Daily', value: settings.maxRetailDaily },\r\n { type: 'Weekly', value: settings.maxRetailWeekly },\r\n { type: 'Monthly', value: settings.maxRetailMonthly }\r\n ]);\r\n this.model().userLimits().limits(limits);\r\n this.model().userLimits().limitRequired(settings.LimitRequired);\r\n this.model().userLimits().limitMinimum(settings.LimitMinimum);\r\n m.redraw();\r\n }.bind(this), function (error) {\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n body: error\r\n }))).show();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.addFile = function (file, index) {\r\n this.model().files()[index].file(file);\r\n }.bind(this);\r\n\r\n this.removeSelection = function (selection) {\r\n var removeIndex = this.model().files().indexOf(selection);\r\n this.model().files().splice(removeIndex, 1);\r\n }.bind(this);\r\n\r\n this.validateUpload = function () {\r\n this.model().files().forEach(function (file) {\r\n var hasErrors = file.file() && file.validate();\r\n this.buttonIsDisabled(hasErrors);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.upload = function () {\r\n var hasErrors = this.model().files().map(function (file) {\r\n return file.validate();\r\n }).some(function (error) {\r\n return error;\r\n });\r\n\r\n if (this.model().files().length === 0) {\r\n this.noFilesSelected(true);\r\n hasErrors = true;\r\n }\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n var data = Utils.mapFilesToApiData(this.model);\r\n this.isLoading(true);\r\n\r\n RetailApi.uploadDocuments(data).then().then(function (response) {\r\n var data = response.data;\r\n if (!data.OperationSuccess) {\r\n this.showErrorModal(data);\r\n return;\r\n }\r\n\r\n this.model().files([]); // Lets reset all uploaded files.\r\n\r\n this.receiptContent({\r\n title: data.Headline,\r\n abstract: this.d('Receipt/UploadDocumentsAbstract'),\r\n icon: 'circle_checkmark',\r\n timeout: 3000,\r\n callback: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location.href = Utils.getQueryParam('returnUrl');\r\n } else {\r\n window.location.href = window.location.origin + window.location.pathname;\r\n }\r\n },\r\n });\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n this.buttonIsDisabled(true);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.confirmPlaycardOrder = () => {\r\n if (this.playcardModel().isPhysicalCard() && this.playcardModel().canReorder()) {\r\n this.reOrderPlaycard();\r\n } else if (this.playcardModel().isPhysicalCard()) {\r\n this.reactivatePlaycard();\r\n } else {\r\n this.orderPlaycard();\r\n }\r\n };\r\n\r\n this.orderPlaycard = function () {\r\n this.isSubmitting(true);\r\n RetailApi.orderPlaycard().then(function (response) {\r\n if (response.status === 'success') {\r\n Utils.ensightenEvent('card_order', 'success');\r\n this.playcardModel().playcardStatus('block');\r\n this.receiptContent().title = response.data.Abstract;\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n\r\n if (Utils.isRetailIpad()) {\r\n this.receiptContent({\r\n title: this.d('Receipt/RetailIpadOrderPlaycardTitle'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n window.location.href = returnUrl;\r\n },\r\n buttonText: this.d('Receipt/RetailIpadPlaycardButton'),\r\n timeout: 3000\r\n });\r\n }\r\n\r\n route('/receipt')();\r\n } else {\r\n Utils.ensightenEvent('card_order', 'error');\r\n this.showErrorModal();\r\n }\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n Utils.ensightenEvent('card_order', 'error_' + error.message);\r\n }.bind(this)).then(function () {\r\n this.isSubmitting(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.reactivatePlaycard = (renewPlaycardId = false) => {\r\n this.playcardRenewed(renewPlaycardId);\r\n this.reactivatePlaycardFlow(true);\r\n\r\n RetailApi.reactivatePlaycard().then(() => {\r\n if (this.playcardModel().isPhysicalCard()) {\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycardPhysicalCard');\r\n } else {\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycard');\r\n }\r\n this.hasOfflineExclusion(false);\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n }, (error) => {\r\n Utils.ensightenEvent('card_reactivate', 'error');\r\n this.showErrorModal(error);\r\n }).then(() => {\r\n this.isSubmitting(false);\r\n m.redraw();\r\n });\r\n };\r\n\r\n this.reactivatePlaycardWithNewPincode = () => {\r\n if (!this.hasOfflineExclusion()) {\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycardWithNewPincode');\r\n Utils.pushVirtualPage('/pincode', (window.location.pathname.replace(/-/g, '_') + '/pincode'), '/pincode');\r\n this.goToRoute('/pincode');\r\n m.redraw();\r\n } else {\r\n RetailApi.removePincodeExclusion().then(() => {\r\n this.hasOfflineExclusion(false);\r\n this.reactivatePlaycardFlow(true);\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycardWithNewPincode');\r\n Utils.pushVirtualPage('/pincode', (window.location.pathname.replace(/-/g, '_') + '/pincode'), '/pincode');\r\n this.goToRoute('/pincode');\r\n }, (error) => {\r\n Utils.ensightenEvent('could_not_remove_pincode_exclusion', 'error');\r\n this.showErrorModal(error);\r\n }).then(() => {\r\n m.redraw();\r\n });\r\n }\r\n };\r\n\r\n this.reOrderPlaycard = function () {\r\n this.isSubmitting(true);\r\n\r\n RetailApi.reOrderPlaycard().then(function (response) {\r\n if (response.status === 'success') {\r\n Utils.ensightenEvent('card_reorder', 'success');\r\n this.playcardModel().playcardStatus('block');\r\n this.receiptContent().title = response.data.Abstract;\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n } else {\r\n Utils.ensightenEvent('card_reorder', 'error');\r\n this.showErrorModal();\r\n }\r\n }.bind(this), function (error) {\r\n Utils.ensightenEvent('card_reorder', 'error_' + error.message);\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isSubmitting(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.togglePlaycardStatus = function () {\r\n RetailApi.togglePlaycardStatus().then(function (response) {\r\n if (response.status.toLowerCase() === 'ok') {\r\n this.playcardModel().playcardStatus(response.data ? 'unblock' : 'block');\r\n var title = response.data ? 'BlockedPlaycardTitle' : 'UnblockedPlaycardTitle';\r\n this.receiptContent().title = this.d('Receipt/' + title);\r\n Utils.ensightenEvent('card_' + response.data ? 'unblock' : 'block', 'success');\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n m.redraw();\r\n }\r\n }.bind(this), function (error) {\r\n Utils.ensightenEvent('card_block_unblock', 'error_' + error.message);\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.hasFilesUploaded = function () {\r\n return this.model().files().filter(function (file) {\r\n return file.file() !== null;\r\n }).length > 0;\r\n }.bind(this);\r\n\r\n this.addFileRequirement = function (identifiers) {\r\n if (this.hasPreloadFiles() || this.purposes().length === 0) {\r\n return;\r\n }\r\n identifiers = Array.isArray(identifiers) ? identifiers : (typeof identifiers === 'string' ? [identifiers] : []);\r\n\r\n identifiers.forEach(function (identifier) {\r\n this.purposes().forEach(function (purpose) {\r\n if (purpose.identifier() === identifier) {\r\n this.model().files().push(new FileUploadModel(purpose, this.uploadSettings, this.d, false));\r\n }\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n this.hasPreloadFiles(true);\r\n }.bind(this);\r\n\r\n this.loadDocumentData = function () {\r\n this.hasLoadedDocuments(true);\r\n m.sync([getPurposes(), hasDocuments()]).then(function () {\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.logout = function (disableCallback) {\r\n LoginController.logout({\r\n callback: function () {\r\n if (disableCallback) return;\r\n var redirect = Utils.getQueryParam('redirectUrl');\r\n window.location.href = redirect ? redirect : window.location.origin;\r\n },\r\n redirect: false\r\n });\r\n }.bind(this);\r\n\r\n this.closeAccount = function () {\r\n RetailApi.closeAccount().then(function (response) {\r\n if (response.status === 'success') {\r\n var appliedUntil = Utils.formatDateTime(new Date(response.data.AppliedUntil));\r\n var dictPath = Utils.getRestrictDictionaryReceiptKey(this.model().fields.restrictType(), this.model().fields.isRetailAccount());\r\n this.logout(true);\r\n this.receiptContent({\r\n title: this.d(dictPath + '/Title'),\r\n abstract: this.d(dictPath + '/Abstract', { TIME: appliedUntil }),\r\n buttonText: this.d('Receipt/ButtonText'),\r\n icon: 'circle_checkmark',\r\n timeout: null,\r\n callback: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location = Utils.getQueryParam('returnUrl');\r\n } else {\r\n window.location.href = this.homeLink() || window.location.origin;\r\n }\r\n }.bind(this)\r\n });\r\n\r\n var identityConfirmMethod = Utils.getParameter('identityConfirmMethod');\r\n Ensighten.pushGaEvent('selvudelukkelse', 'PAM', identityConfirmMethod + '_sikkert_spil');\r\n Ensighten.pushGaEvent('information_bekraeftet', 'PAM', 'luk_konto');\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n } else {\r\n this.showErrorModal(response.errors[0]);\r\n Utils.ensightenEvent('account_close', 'error_' + response.errors[0]);\r\n }\r\n }.bind(this), function (error) {\r\n Utils.ensightenEvent('account_close', 'error_' + error.message);\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n };\r\n\r\n this.lockAccount = function () {\r\n RetailApi.lockAccount().then(function (response) {\r\n if (response.status === 'success') {\r\n var appliedUntil = Utils.formatDateTime(new Date(response.data.AppliedUntil));\r\n var dictPath = this.model().fields.isRetailAccount() ? 'CloseAccount/Receipt' : 'CloseAccount/Receipt/OnlineAccount';\r\n this.logout(true);\r\n this.receiptContent({\r\n title: this.d(dictPath + '/Title'),\r\n abstract: this.d(dictPath + '/Abstract', { TIME: appliedUntil }),\r\n buttonText: this.d('Receipt/ButtonText'),\r\n icon: 'circle_checkmark',\r\n timeout: null,\r\n callback: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location = Utils.getQueryParam('returnUrl');\r\n } else {\r\n window.location.href = this.homeLink() || window.location.origin;\r\n }\r\n }.bind(this)\r\n });\r\n\r\n var identityConfirmMethod = Utils.getParameter('identityConfirmMethod');\r\n Ensighten.pushGaEvent('selvudelukkelse', 'PAM', identityConfirmMethod + '_sikkert_spil');\r\n Ensighten.pushGaEvent('information_bekraeftet', 'PAM', 'spaer_og_luk_konto');\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n } else {\r\n this.showErrorModal(response.errors[0]);\r\n Utils.ensightenEvent('account_lock', 'error_' + response.errors[0]);\r\n }\r\n }.bind(this), function (error) {\r\n Utils.ensightenEvent('account_lock', 'error_' + error.message);\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n };\r\n\r\n this.restrictAccount = function (date) {\r\n RetailApi.restrictAccount(date).then(function (response) {\r\n if (response.status === 'success') {\r\n var appliedUntil = Utils.formatDateTime(new Date(response.data.AppliedUntil));\r\n var dictPath = Utils.getRestrictDictionaryReceiptKey(this.model().fields.restrictType(), this.model().fields.isRetailAccount());\r\n this.logout(true);\r\n Utils.ensightenEvent('account_restrict', date ? '30-365 days' : '24 hours');\r\n this.receiptContent({\r\n title: this.d(dictPath + '/Title'),\r\n abstract: this.d(dictPath + '/Abstract', { TIME: appliedUntil }),\r\n buttonText: this.d('Receipt/ButtonText'),\r\n icon: 'circle_checkmark',\r\n timeout: null,\r\n callback: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location.href = Utils.getQueryParam('returnUrl');\r\n } else {\r\n window.location.href = this.homeLink() || window.location.origin;\r\n }\r\n }.bind(this)\r\n });\r\n\r\n var identityConfirmMethod = Utils.getParameter('identityConfirmMethod');\r\n Ensighten.pushGaEvent('selvudelukkelse', 'PAM', identityConfirmMethod + '_sikkert_spil');\r\n Ensighten.pushGaEvent('information_bekraeftet', 'PAM', 'spaer_konto');\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n } else {\r\n Utils.ensightenEvent('account_restrict', 'error_' + response.errors[0]);\r\n this.showErrorModal(response.errors[0]);\r\n }\r\n }.bind(this), function (error) {\r\n Utils.ensightenEvent('account_close', 'error_' + error.message);\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n };\r\n\r\n this.routeToPrevStep = () => {\r\n this.goToRoute('/');\r\n };\r\n\r\n this.confirmCallback = function () {\r\n var restrictType = JSON.parse(Storage.get('restrictType'));\r\n var restrictDate = JSON.parse(Storage.get('restrictDate'));\r\n\r\n if (restrictType) {\r\n this.model().fields.restrictType(restrictType);\r\n }\r\n if (restrictDate) {\r\n this.model().fields.restrictDate(new Date(restrictDate));\r\n }\r\n\r\n if (this.model().fields.restrictType() === 'close') { // '24hour', 'customDate', 'unlimited' or 'close'\r\n this.lockAccount();\r\n } else if (this.model().fields.restrictType() === 'unlimited') {\r\n this.closeAccount();\r\n } else {\r\n var date = this.model().fields.restrictDate();\r\n this.restrictAccount(date);\r\n }\r\n };\r\n\r\n RetailApi.getProfileWithBankInformation().then(function (response) {\r\n document.body.classList.add('is-logged-in');\r\n var model = response.data.profile || {};\r\n\r\n if (model.isPending.value) {\r\n Utils.pushVirtualPage('/uploadDocuments', (window.location.pathname.replace(/-/g, '_') + '/uploadDocuments'), '/uploadDocuments');\r\n route('/uploadDocuments')();\r\n this.isLoading(false);\r\n return;\r\n }\r\n this.model().update(model);\r\n\r\n // Only fetch additional information when we have a logged in user\r\n var requests = [getPlaycard(), getVisualPlayCard(), getPlayerLimits(), getPermissionsSettings(), getOfflineLoginExclusion()];\r\n if (settings.enableMobilePay) {\r\n requests.push(getMobileLinkQRCode());\r\n }\r\n\r\n m.sync(requests).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n\r\n if (window.dsApplicationConfig && ['SHAPE_RETAILACCOUNT_IPADNATIVE'].includes(window.dsApplicationConfig?.ApplicationId)) {\r\n this.maskPincodeInput(true);\r\n }\r\n\r\n if (this.currentStep().route === '/reactivate' && !this.hasOfflineExclusion()) {\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycardAlreadyActivateTitle');\r\n this.receiptContent().buttonText = this.d('Receipt/ButtonText');\r\n this.receiptContent().timeout = null;\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n }\r\n\r\n if (this.currentStep().route === '/callback/confirm') {\r\n this.confirmCallback();\r\n }\r\n }.bind(this));\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n\r\n document.body.setAttribute('data-override-logout-return-url', settings.homeLink?.Url || `/${window.location.pathname.split('/')[1]}`);\r\n\r\n Utils.setupLoginLinkEventListeners();\r\n },\r\n view: function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return m('div', {\r\n class: 'retail-page retail-profile',\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-page-profile')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller);\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailPlaycard', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/LimitModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/PlaycardModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PlaycardOverview',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardIntro',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardPincode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/OrderPlaycardConfirm',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ReactivatePlaycard',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Limits',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ConfirmWagerLimits',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/ViewPINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt'\r\n],\r\nfunction (Component, Event, LoginController, FrameworkOverlay, Dictionary, Utils, RetailApi, UserModel, LimitModel, PlaycardModel, Loader, Overlay, ErrorOverlay, PlaycardOverview, OrderPlaycardIntro, OrderPlaycardPincode, OrderPlaycardConfirm, ReactivatePlaycard, Limits, ConfirmWagerLimits, ViewPINCode, PINCode, Receipt) {\r\n\r\n // Declare steps in signup flow\r\n var routeConfiguration = [\r\n { route: '/', template: PlaycardOverview },\r\n { route: '/manage', template: OrderPlaycardIntro },\r\n { route: '/order/pincode-option', template: OrderPlaycardPincode },\r\n { route: '/order/confirm', template: OrderPlaycardConfirm },\r\n { route: '/reorder', template: OrderPlaycardIntro },\r\n { route: '/limits', template: Limits, dictionaryKey: 'WagerLimits' },\r\n { route: '/offline-limits', template: Limits, dictionaryKey: 'OfflineLimits' },\r\n { route: '/limits/confirm', template: ConfirmWagerLimits },\r\n { route: '/reactivate', template: ReactivatePlaycard },\r\n { route: '/pincode', template: ViewPINCode },\r\n { route: '/edit-pincode', fields: ['pincode'], dictionaryKey: 'SetPINCode', template: PINCode, },\r\n { route: '/repeat-pincode', fields: ['pincode', 'pincodeConfirm'], dictionaryKey: 'ConfirmPINCode', template: PINCode },\r\n { route: '/receipt', template: Receipt }\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-playcard=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n if (!currentStep.length) {\r\n currentStep = routeConfiguration[0];\r\n } else {\r\n currentStep = currentStep[0];\r\n }\r\n\r\n // Component:\r\n Component('retail-playcard', [Dictionary], function (m, route, settings) {\r\n\r\n var root = {\r\n controller: function () {\r\n this.d = Dictionary.get.bind({ prefix: settings.DictionaryRoot });\r\n this.isLoading = m.prop(true);\r\n this.buttonIsDisabled = m.prop(true);\r\n this.isSubmitting = m.prop(false);\r\n this.model = m.prop(new UserModel());\r\n this.playcardModel = m.prop(new PlaycardModel());\r\n this.modalError = m.prop(null);\r\n this.modalQRCode = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.fieldInFocus = m.prop();\r\n this.postfix = ' kr.';\r\n this.playcardRenewed = m.prop(false);\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/OrderPlaycardTitle'),\r\n icon: 'circle_checkmark',\r\n callback: () => {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n if (this.playcardRenewed()) {\r\n window.location.href = Utils.appendParameter('playIdRenewed', 'true', returnUrl);\r\n } else {\r\n window.location.href = returnUrl;\r\n }\r\n } else if (settings.receiptLink) {\r\n window.location.href = settings.receiptLink.Url;\r\n } else {\r\n route('/')();\r\n }\r\n },\r\n buttonText: this.d('Receipt/OrderPlaycardButton')\r\n });\r\n this.appLink = m.prop(document.body.classList.contains('ios-device') ? settings.appStoreLink : settings.googlePlayLink);\r\n this.hideBackButton = m.prop((Utils.getQueryParam('dsApplicationId') || window.dsApplicationConfig) || false);\r\n this.mobilePayLink = m.prop(settings.mobilePayLink.Url || null);\r\n this.mobilePayQRCode = m.prop(null);\r\n this.zoomQR = m.prop(false);\r\n this.noLimitsChanged = m.prop(false);\r\n this.showPlaycardFrontside = m.prop(!(Utils.getQueryParam('show') && (Utils.getQueryParam('show') === 'backside')));\r\n this.showPendingNotification = m.prop(true);\r\n this.mouseoverPlaycard = m.prop(false);\r\n this.subMenuLink = m.prop(null);\r\n this.logoutRedirectUrl = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n Utils.redirectOnLogout(this.logoutRedirectUrl);\r\n\r\n if (Utils.getQueryParam('isLoggedIn')) {\r\n Utils.ensightenEvent('login', 'success');\r\n }\r\n\r\n this.openMobilePay = function () {\r\n if ((Utils.isMobile() || Utils.isTabletDevice()) && this.mobilePayLink()) {\r\n window.location.href = this.mobilePayLink().replace('{PLAYCARDNUMBER}', this.playcardModel().digitalPlaycardNumber());\r\n } else {\r\n this.modalQRCode(new FrameworkOverlay(Overlay('retail-overlay-container', {\r\n title: this.d('PlaycardOverview/QRCodeTitle'),\r\n body: this.mobilePayQRCode()\r\n }))).show();\r\n }\r\n }.bind(this);\r\n\r\n this.goToRoute = function (routePath) {\r\n var step = this.routeConfiguration.filter(function (step) {\r\n return step.route.toLowerCase() === routePath.toLowerCase();\r\n })[0];\r\n\r\n this.currentStep(step);\r\n\r\n window.scroll(0, 0);\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n route(routePath)();\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n var confirm = null;\r\n\r\n if (error.statusCode === 401 && settings.loginLink.Url) {\r\n confirm = function () {\r\n window.location.href = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n };\r\n } else if (error.statusCode === 401) {\r\n LoginController.openLogin();\r\n }\r\n\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: error.message || this.d('ErrorModal/Title'),\r\n confirm: confirm,\r\n dismisable: false,\r\n confirmButtonClass: settings.loginLink.CssClass || null,\r\n confirmButton: confirm ? settings.loginLink.Text : null\r\n }))).show();\r\n };\r\n\r\n this.confirmPlaycardOrder = () => {\r\n if (this.playcardModel().isPhysicalCard() && this.playcardModel().canReorder()) {\r\n this.reOrderPlaycard();\r\n } else if (this.playcardModel().isPhysicalCard()) {\r\n this.reactivatePlaycard();\r\n } else {\r\n this.orderPlaycard();\r\n }\r\n };\r\n\r\n this.orderPlaycard = function () {\r\n this.isSubmitting(true);\r\n RetailApi.orderPlaycard().then(function (response) {\r\n if (response.status === 'success') {\r\n Utils.ensightenEvent('card_order', 'success');\r\n this.playcardModel().playcardStatus('block');\r\n this.receiptContent().title = response.data.Abstract;\r\n\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n\r\n if (Utils.isRetailIpad()) {\r\n this.receiptContent({\r\n title: this.d('Receipt/RetailIpadOrderPlaycardTitle'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n window.location.href = returnUrl;\r\n },\r\n buttonText: this.d('Receipt/RetailIpadPlaycardButton'),\r\n timeout: 3000\r\n });\r\n }\r\n\r\n route('/receipt')();\r\n } else {\r\n Utils.ensightenEvent('card_order', 'error');\r\n this.showErrorModal();\r\n }\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n Utils.ensightenEvent('card_order', 'error_' + error.message);\r\n }.bind(this)).then(function () {\r\n this.isSubmitting(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.reactivatePlaycard = (renewPlaycardId = false) => {\r\n this.playcardRenewed(renewPlaycardId);\r\n\r\n RetailApi.reactivatePlaycard().then(() => {\r\n if (this.playcardModel().isPhysicalCard()) {\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycardPhysicalCard');\r\n } else {\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycard');\r\n }\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n }, () => {\r\n Utils.ensightenEvent('card_reactivate', 'error');\r\n this.showErrorModal();\r\n }).then(() => {\r\n this.isSubmitting(false);\r\n m.redraw();\r\n });\r\n };\r\n\r\n this.reactivatePlaycardWithNewPincode = () => {\r\n RetailApi.removePincodeExclusion().then(() => {\r\n this.receiptContent().title = this.d('Receipt/ReactivatePlaycardWithPincode');\r\n Utils.pushVirtualPage('/pincode', (window.location.pathname.replace(/-/g, '_') + '/pincode'), '/pincode');\r\n this.goToRoute('/pincode');\r\n }, () => {\r\n Utils.ensightenEvent('card_reactivate', 'error');\r\n this.showErrorModal();\r\n }).then(() => {\r\n m.redraw();\r\n });\r\n };\r\n\r\n this.reOrderPlaycard = function () {\r\n this.isSubmitting(true);\r\n\r\n RetailApi.reOrderPlaycard().then(function (response) {\r\n if (response.status === 'success') {\r\n Utils.ensightenEvent('card_reorder', 'success');\r\n this.playcardModel().playcardStatus('block');\r\n this.receiptContent().title = response.data.Abstract;\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n } else {\r\n Utils.ensightenEvent('card_reorder', 'error');\r\n this.showErrorModal();\r\n }\r\n }.bind(this), function (error) {\r\n Utils.ensightenEvent('card_reorder', 'error_' + error.message);\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isSubmitting(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.togglePlaycardStatus = function () {\r\n RetailApi.togglePlaycardStatus().then(function (response) {\r\n if (response.status.toLowerCase() === 'ok') {\r\n this.playcardModel().playcardStatus(response.data ? 'unblock' : 'block');\r\n var title = response.data ? 'BlockedPlaycardTitle' : 'UnblockedPlaycardTitle';\r\n this.receiptContent().title = this.d('Receipt/' + title);\r\n Utils.ensightenEvent('card_' + response.data ? 'unblock' : 'block', 'success');\r\n Utils.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), '/receipt');\r\n route('/receipt')();\r\n m.redraw();\r\n }\r\n }.bind(this), function (error) {\r\n Utils.ensightenEvent('card_block_unblock', 'error_' + error.message);\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.goToConfirmLimit = function () {\r\n var isValid = this.validateLimit();\r\n var hasChanges = this.model().userLimits().hasChanges();\r\n this.noLimitsChanged(!hasChanges && isValid);\r\n if (isValid && hasChanges) {\r\n this.goToRoute('/limits/confirm');\r\n }\r\n }.bind(this);\r\n\r\n this.validateLimit = function () {\r\n this.model().userLimits().clearErrors(); // Lets cleanup old errors\r\n return this.model().userLimits().validate();\r\n }.bind(this);\r\n\r\n this.confirmLimit = function () {\r\n var data = this.model().userLimits().mapToData();\r\n if (!this.validateLimit()) {\r\n // We found some errors lets stop\r\n return;\r\n }\r\n\r\n RetailApi.setWagerLimits(data).then(function (response) {\r\n Utils.trackLimitChanges('spilgraense', this.model().userLimits().limits());\r\n\r\n var limits = response.data.SavedUserWagerLimits.limits.map(function (limit) {\r\n return new LimitModel(limit);\r\n });\r\n\r\n this.model().userLimits().limits(limits);\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location = Utils.getQueryParam('returnUrl');\r\n } else {\r\n Utils.pushVirtualPage('/', (window.location.pathname.replace(/-/g, '_') + '/'), '/');\r\n route('/')();\r\n }\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.findFirstErrorAndRouteToPage = (errors) => {\r\n if (errors.includes('pincode')) {\r\n ['pincode', 'pincodeConfirm', 'pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm'].forEach((fieldKey) => {\r\n this.model().fields[fieldKey](null);\r\n });\r\n }\r\n\r\n const routeObj = this.routeConfiguration.find((routeConfig) => routeConfig.fields?.some((fieldKey) => errors.includes(fieldKey)));\r\n this.goToRoute(routeObj.route);\r\n };\r\n\r\n this.submit = function () {\r\n var fields = this.currentStep().fields;\r\n var hasErrors = this.model().validate(fields);\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n if (this.currentStep().route === '/edit-pincode') {\r\n this.goToRoute('/repeat-pincode');\r\n return;\r\n }\r\n\r\n if (this.currentStep().optionalFields) {\r\n fields = this.currentStep().fields.concat(this.currentStep().optionalFields);\r\n }\r\n\r\n var data = Utils.mapModelToApiData(fields, this.model().fields, this.model().initialValues);\r\n this.isLoading(true);\r\n\r\n RetailApi.updateProfile(data).then(function (response) {\r\n var errors = this.model().setErrors(response.data, true);\r\n this.buttonIsDisabled(true);\r\n\r\n if (errors) {\r\n this.findFirstErrorAndRouteToPage(errors);\r\n } else {\r\n this.model().update(response.data.profile); // Make sure our frontend UserModel is in sync with backend\r\n this.goToRoute('/order/confirm');\r\n }\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.validateField = (ev, validateHandler) => {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n if (typeof this.fieldInFocus === 'function') {\r\n this.fieldInFocus(null);\r\n }\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n this.buttonIsDisabled(hasErrors); // Disable button if fields has errors\r\n\r\n if (!hasErrors && typeof validateHandler === 'function') {\r\n validateHandler();\r\n }\r\n };\r\n\r\n this.mergeAndValidateField = (ev, validateHandler) => {\r\n if (this.currentStep().route === '/edit-pincode') {\r\n this.mergeFieldsToSingleModelField('pincode', ['pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (this.currentStep().route === '/repeat-pincode') {\r\n this.mergeFieldsToSingleModelField('pincodeConfirm', ['pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n this.validateField(ev, validateHandler);\r\n };\r\n\r\n this.mergeFieldsToSingleModelField = (newFieldName, fieldNames = []) => {\r\n const fields = fieldNames.map((fieldName) => {\r\n return this.model().fields[fieldName]();\r\n });\r\n\r\n this.model().fields[newFieldName](fields.join(''));\r\n };\r\n\r\n var getMobileLinkQRCode = function () {\r\n return RetailApi.getMobileLinkQR().then(function (response) {\r\n this.mobilePayQRCode(response.data.svg.Content);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPlaycard = function () {\r\n return RetailApi.getPlaycard().then(function (response) {\r\n this.playcardModel().update(response.data);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getVisualPlayCard = function () {\r\n return RetailApi.getVisualPlayCard().then(function (response) {\r\n this.playcardModel().digitalPlaycardImage(response.data.svg.Content);\r\n this.playcardModel().digitalPlaycardNumber(response.data.number);\r\n m.redraw();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var getPlayerLimits = function () {\r\n return RetailApi.getPlayerLimits().then(function (response) {\r\n var limits = response.limits.map(function (limit) {\r\n return new LimitModel(limit);\r\n });\r\n\r\n this.model().userLimits().sitecoreLimits([\r\n { type: 'Daily', value: settings.maxRetailDaily },\r\n { type: 'Weekly', value: settings.maxRetailWeekly },\r\n { type: 'Monthly', value: settings.maxRetailMonthly }\r\n ]);\r\n this.model().userLimits().limits(limits);\r\n this.model().userLimits().limitRequired(true);\r\n this.model().userLimits().limitMinimum(settings.LimitMinimum);\r\n m.redraw();\r\n }.bind(this), function (error) {\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n body: error\r\n }))).show();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n RetailApi.getProfile().then(function (response) {\r\n var model = response.data.profile || {};\r\n this.model().update(model);\r\n document.body.classList.add('is-logged-in');\r\n\r\n Event.fire('retailCarousel:visiblity', {\r\n visible: route() === '/'\r\n });\r\n\r\n Event.fire('retailVideo:visiblity', {\r\n visible: route() === '/'\r\n });\r\n\r\n if (this.model().fields.isPending()) {\r\n this.isLoading(false);\r\n m.redraw();\r\n return;\r\n }\r\n\r\n // Only fetch additional information when we have a logged in user\r\n var requests = [getPlaycard(), getVisualPlayCard(), getPlayerLimits()];\r\n if (settings.enableMobilePay) {\r\n requests.push(getMobileLinkQRCode());\r\n }\r\n\r\n if (settings.links && settings.links.length) {\r\n this.subMenuLink(settings.links.map(function (item) {\r\n return {\r\n label: item.Link.Text,\r\n target: item.Link.Target,\r\n url: item.Link.Url\r\n };\r\n }));\r\n }\r\n\r\n m.sync(requests).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n\r\n\r\n window.addEventListener('popstate', function () {\r\n Event.fire('retailCarousel:visiblity', {\r\n visible: route() === '/'\r\n });\r\n Event.fire('retailVideo:visiblity', {\r\n visible: route() === '/'\r\n });\r\n }.bind(this), false);\r\n },\r\n view: function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n var routeClass = route().replace('/', '');\r\n\r\n return m('div', {\r\n class: [\r\n 'retail-page retail-playcard',\r\n 'retail-playcard--' + (routeClass ? routeClass : 'home')\r\n ].join(' '),\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-page-playcard')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller);\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryList', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Common/Framework/EventHandling/Scripts/CrossWindowEvents',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/RouteParam',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryList',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryOverview',\r\n], (m, CrossWindowEvents, RouteParam, Dictionary, RetailApi, UserModel, GameHistoryList) => {\r\n\r\n const GameHistoryListComponent = {\r\n controller: function (args) {\r\n this.d = Dictionary.get.bind({ prefix: 'RetailGameHistory/' });\r\n this.filterDictionary = Dictionary.get.bind({ prefix: 'PlayerGames/GamesList' });\r\n this.isLoading = m.prop(true);\r\n this.settings = args.settings;\r\n this.payoutSlideOpen = m.prop(null);\r\n this.showErrorModal = args.showErrorModal;\r\n this.isWebview = m.prop(window.dsApplicationConfig);\r\n this.userModel = m.prop(new UserModel());\r\n this.limit = m.prop(null);\r\n\r\n const activeRightMenuSelector = document.querySelector('.is-showing-right-menu');\r\n\r\n if (activeRightMenuSelector) {\r\n activeRightMenuSelector.classList.remove('is-showing-right-menu');\r\n document.querySelector('.mobile-user-info-inner-wrapper').classList.remove('overlay-active');\r\n document.querySelector('.page-area').classList.remove('modal-wrapper', 'overlay-active');\r\n }\r\n\r\n this.filterCallback = (key) => this.state[key];\r\n\r\n const page = RouteParam('page');\r\n const period = RouteParam('period');\r\n const offset = RouteParam('offset');\r\n const type = RouteParam('type');\r\n\r\n this.state = {\r\n page,\r\n period,\r\n offset,\r\n type,\r\n items: m.prop([]),\r\n hasNext: m.prop(false),\r\n hasPrev: m.prop(false),\r\n };\r\n\r\n this.uncollectedPrizes = m.prop(null);\r\n\r\n this.viewBetslipDetails = (item) => m.route(`/${page()}/${period()}/${offset()}/${type()}/${item.id}`);\r\n\r\n const getUncollectedPrizes = () => RetailApi.getUncollectedPrizes()\r\n .then((response) => {\r\n this.uncollectedPrizes(response.data);\r\n });\r\n\r\n const getUser = () => RetailApi.getProfile()\r\n .then((response) => {\r\n const model = response.data.profile || {};\r\n this.userModel().update(model);\r\n document.body.classList.add('is-logged-in');\r\n });\r\n\r\n const getMostRestrictiveLimit = () => RetailApi.getMostRestrictiveLimit()\r\n .then((response) => {\r\n this.limit(response.data);\r\n });\r\n\r\n const getGameHistory = () => RetailApi.getGameHistory({\r\n page: this.state.page(),\r\n period: this.state.period(),\r\n offset: this.state.offset(),\r\n vertical: this.state.type()\r\n })\r\n .then((response) => {\r\n document.body.classList.add('is-logged-in');\r\n const playerGames = response.data.PlayerGames || [];\r\n this.state.hasNext(response.data.HasNext);\r\n this.state.hasPrev(response.data.HasPrevious);\r\n\r\n const formattedGames = playerGames.map((playerGame) => {\r\n return {\r\n id: playerGame.Id,\r\n hasPayout: playerGame.WinStatus === 'PAID' || playerGame.WinStatus === 'PENDING',\r\n winStatus: playerGame.WinStatus,\r\n type: playerGame.Type,\r\n createdAt: playerGame.CreatedAt,\r\n channel: playerGame.Channel,\r\n wager: playerGame.Wager,\r\n win: playerGame.Win,\r\n canBePaidOut: playerGame.CanBePaidOut\r\n };\r\n });\r\n\r\n this.state.items(formattedGames);\r\n }, (error) => {\r\n this.showErrorModal(error);\r\n });\r\n\r\n m.sync([\r\n getGameHistory(),\r\n getUncollectedPrizes(),\r\n getUser(),\r\n getMostRestrictiveLimit(),\r\n ]).then(() => {\r\n this.isLoading(false);\r\n m.redraw();\r\n });\r\n\r\n CrossWindowEvents.fire('ds.event.balanceUpdated', {});\r\n },\r\n view: function (controller) {\r\n return GameHistoryList(controller);\r\n }\r\n };\r\n\r\n return GameHistoryListComponent;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryDetails', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryDetails'\r\n], function (m, Render, Utils, Dictionary, RetailApi, GameHistoryDetails) {\r\n\r\n var GameHistoryDetailsComponent = {\r\n controller: function (args) {\r\n this.isLoading = m.prop(true);\r\n this.gameId = m.route.param('gameId');\r\n this.d = Dictionary.get.bind({ prefix: 'RetailGameHistory/' });\r\n this.game = m.prop({});\r\n this.render = Render();\r\n this.settings = args.settings;\r\n this.height = m.prop(null);\r\n this.width = m.prop(null);\r\n this.showErrorModal = args.showErrorModal;\r\n this.isWebview = m.prop(window.dsApplicationConfig);\r\n\r\n var controller = this;\r\n\r\n // Handle resize event from iframe\r\n var resizeMessageHandler = function (message) {\r\n try {\r\n var json = JSON.parse(message.data);\r\n if (json && json.event === 'resizeGameCoupon') {\r\n this.height(json.height);\r\n this.width(json.width);\r\n m.redraw();\r\n }\r\n } catch (e) {}\r\n }.bind(this);\r\n\r\n this.redirectBack = function (e) {\r\n e.preventDefault();\r\n window.history.back();\r\n };\r\n\r\n this.printReceipt = function () {\r\n document.getElementsByClassName('game-receipt__iframe')[0].contentWindow.print();\r\n };\r\n\r\n this.resizeIframe = function () {\r\n var body = this.contentWindow.document.body;\r\n var scrollHeight = body.scrollHeight;\r\n\r\n var setWidthAndHeight = function () {\r\n var totalVerticalMargin = parseInt(getComputedStyle(body).getPropertyValue('margin-top'), 10) + parseInt(getComputedStyle(body).getPropertyValue('margin-bottom'), 10);\r\n var totalHorizontalMargin = parseInt(getComputedStyle(body).getPropertyValue('margin-left'), 10) + parseInt(getComputedStyle(body).getPropertyValue('margin-right'), 10);\r\n\r\n // Iframe has 2:1 sizing per default, try to accommodate by setting height first and then checking width after\r\n controller.height(body.scrollHeight + totalVerticalMargin);\r\n m.redraw(true);\r\n controller.width(body.scrollWidth + totalHorizontalMargin);\r\n m.redraw();\r\n };\r\n\r\n setWidthAndHeight();\r\n\r\n // some iframe content does not send message handler, but they do send an iframe onload event.\r\n // unfortunately, the onload event is sent before the content of the iframe is fully loaded,\r\n // so we make a little check for a few seconds to see if content have changed. if so, we resize.\r\n // due to some rounding issues, we only redraw if content is more than 10px higher than before.\r\n var timesCheckedForChangeInIframe = 0;\r\n var checkForContentChangeInIframe = setInterval(function () {\r\n if (scrollHeight < body.scrollHeight - 10) {\r\n scrollHeight = body.scrollHeight;\r\n setWidthAndHeight();\r\n }\r\n\r\n if (timesCheckedForChangeInIframe++ > 10) {\r\n clearInterval(checkForContentChangeInIframe);\r\n }\r\n }.bind(this), 500);\r\n };\r\n\r\n this.onunload = function () {\r\n window.removeEventListener('message', resizeMessageHandler);\r\n };\r\n\r\n RetailApi.getGameDetails(this.gameId).then(function (response) {\r\n document.body.classList.add('is-logged-in');\r\n var playerGame = response.data;\r\n\r\n Utils.pushVirtualPage('/details/' + this.gameId, (window.location.pathname.replace(/-/g, '_') + '/details/' + this.gameId), '/details/' + this.gameId);\r\n\r\n this.game({\r\n id: playerGame.Id,\r\n isActive: playerGame.WagerStatus === 'STARTED',\r\n couponUrl: playerGame.CouponUrl || null,\r\n hasValidCouponUrl: (playerGame.CouponUrl && playerGame.CouponUrl.slice(0, 1) !== '?')\r\n });\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n\r\n window.addEventListener('message', resizeMessageHandler);\r\n },\r\n view: function (controller) {\r\n return GameHistoryDetails(controller);\r\n }\r\n };\r\n\r\n return GameHistoryDetailsComponent;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryOverview', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryOverview',\r\n], (m, Dictionary, RetailApi, GameHistoryOverview) => {\r\n\r\n const GameHistoryOverviewComponent = {\r\n controller: function (args) {\r\n this.d = Dictionary.get.bind({ prefix: 'RetailGameHistory/' });\r\n this.isLoading = m.prop(true);\r\n this.settings = args.settings;\r\n this.isWebview = m.prop(window.dsApplicationConfig);\r\n this.totalAmount = m.prop();\r\n this.currentAmount = m.prop();\r\n this.limitType = m.prop();\r\n\r\n const activeRightMenuSelector = document.querySelector('.is-showing-right-menu');\r\n\r\n if (activeRightMenuSelector) {\r\n activeRightMenuSelector.classList.remove('is-showing-right-menu');\r\n document.querySelector('.mobile-user-info-inner-wrapper').classList.remove('overlay-active');\r\n document.querySelector('.page-area').classList.remove('modal-wrapper', 'overlay-active');\r\n }\r\n\r\n const init = () => {\r\n RetailApi.getMostRestrictiveLimit().then((response) => {\r\n const limit = response.data;\r\n const totalAmount = Math.min(limit.Value, limit.Max);\r\n const currentAmount = totalAmount - limit.RemainingValue;\r\n this.totalAmount(totalAmount);\r\n this.currentAmount(currentAmount);\r\n this.limitType(limit.Type);\r\n this.isLoading(false);\r\n m.redraw();\r\n });\r\n };\r\n\r\n init();\r\n },\r\n view: function (controller) {\r\n return GameHistoryOverview(controller);\r\n }\r\n };\r\n\r\n return GameHistoryOverviewComponent;\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryPrize', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryPrize'\r\n], function (m, Utils, Dictionary, RetailApi, GameHistoryPrize) {\r\n\r\n var GameHistoryPrizeComponent = {\r\n controller: function (args) {\r\n this.isLoading = m.prop(true);\r\n this.gameId = m.route.param('gameId');\r\n this.d = Dictionary.get.bind({ prefix: 'RetailGameHistory/' });\r\n this.game = m.prop({});\r\n this.settings = args.settings;\r\n this.dealerText = m.prop(this.settings.dealerText || '');\r\n this.customerServiceText = m.prop(this.settings.customerServiceText || '');\r\n this.showErrorModal = args.showErrorModal;\r\n this.isWebview = m.prop(window.dsApplicationConfig);\r\n this.hideBackButton = m.prop(false);\r\n\r\n this.redirectBack = function (e) {\r\n e.preventDefault();\r\n window.history.back();\r\n };\r\n\r\n RetailApi.getGameDetails(this.gameId).then(function (response) {\r\n document.body.classList.add('is-logged-in');\r\n var playerGame = response.data;\r\n\r\n this.game({\r\n id: playerGame.Id,\r\n hasPayout: playerGame.WinStatus === 'PAID' || playerGame.WinStatus === 'PENDING',\r\n winStatus: playerGame.WinStatus,\r\n type: playerGame.Type,\r\n createdAt: playerGame.CreatedAt,\r\n channel: playerGame.Channel,\r\n wager: playerGame.Wager,\r\n win: parseInt(playerGame.Win, 10)\r\n });\r\n\r\n Utils.pushVirtualPage('/prize/' + this.gameId, (window.location.pathname.replace(/-/g, '_') + '/prize/' + this.gameId), '/prize/' + this.gameId);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n },\r\n view: function (controller) {\r\n return GameHistoryPrize(controller);\r\n }\r\n };\r\n\r\n return GameHistoryPrizeComponent;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryPayout', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/GameHistoryPayout'\r\n], function (m, Utils, Dictionary, RetailApi, GameHistoryPrize) {\r\n\r\n var GameHistoryPrizeComponent = {\r\n controller: function (args) {\r\n this.isLoading = m.prop(true);\r\n this.gameId = m.route.param('gameId');\r\n this.d = Dictionary.get.bind({ prefix: 'RetailGameHistory/' });\r\n this.game = m.prop({});\r\n this.settings = args.settings;\r\n this.payoutText = m.prop(this.settings.payoutText || '');\r\n this.customerServiceText = m.prop(this.settings.customerServiceText || '');\r\n this.hasBankAccount = m.prop(false);\r\n this.showErrorModal = args.showErrorModal;\r\n this.hideBackButton = m.prop(false);\r\n this.showReceipt = m.prop(false);\r\n this.returnUrl = m.prop(args.returnUrl);\r\n\r\n this.redirectBack = function (e) {\r\n e.preventDefault();\r\n window.history.back();\r\n };\r\n\r\n this.receiptContent = m.prop({\r\n title: this.d('Payout/Receipt/Title'),\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n var returnUrl = Utils.getReturnUrl();\r\n if (returnUrl) {\r\n window.location.href = returnUrl;\r\n } else {\r\n window.location.href = this.returnUrl();\r\n }\r\n }.bind(this),\r\n buttonText: this.d('Payout/Receipt/Button'),\r\n timeout: 8000,\r\n init: function () {\r\n Utils.ensightenEvent('spilhistorik_udbetaling', 'success');\r\n }\r\n });\r\n\r\n this.executePayout = function () {\r\n this.isLoading(true);\r\n RetailApi.executePayout(this.game().externalId).then(function (response) {\r\n if (response.status === 'success') {\r\n this.showReceipt(true);\r\n } else {\r\n this.showErrorModal();\r\n }\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n RetailApi.getGameDetails(this.gameId).then(function (response) {\r\n document.body.classList.add('is-logged-in');\r\n var playerGame = response.data;\r\n\r\n this.game({\r\n id: playerGame.Id,\r\n hasPayout: playerGame.WinStatus === 'PAID' || playerGame.WinStatus === 'PENDING',\r\n winStatus: playerGame.WinStatus,\r\n type: playerGame.Type,\r\n createdAt: playerGame.CreatedAt,\r\n channel: playerGame.Channel,\r\n wager: playerGame.Wager,\r\n win: parseInt(playerGame.Win, 10),\r\n externalId: playerGame.ExternalId\r\n });\r\n\r\n Utils.pushVirtualPage('/payout/' + this.gameId, (window.location.pathname.replace(/-/g, '_') + '/payout/' + this.gameId), '/payout/' + this.gameId);\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n },\r\n view: function (controller) {\r\n return GameHistoryPrize(controller);\r\n }\r\n };\r\n\r\n return GameHistoryPrizeComponent;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistory', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryList',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryDetails',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryOverview',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryPrize',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailGameHistoryPayout'\r\n], (Component, FrameworkOverlay, Utils, Dictionary, ErrorOverlay, RetailGameHistoryList, RetailGameHistoryDetails, RetailGameHistoryOverview, RetailGameHistoryPrize, RetailGameHistoryPayout) => {\r\n\r\n Component('retail-game-history', [Dictionary], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n this.settings = settings;\r\n this.modalError = m.prop(null);\r\n const defaultRoute = `/${this.settings.page}/${this.settings.period.toLowerCase()}/${this.settings.offset}/${this.settings.vertical.toLowerCase()}`;\r\n\r\n document.body.setAttribute('data-override-logout-return-url', `/${window.location.pathname.split('/')[1]}`);\r\n Utils.setupLoginLinkEventListeners();\r\n\r\n this.showErrorModal = (error) => {\r\n let confirm = null;\r\n\r\n if (error.statusCode === 401) {\r\n confirm = () => {\r\n window.location.href = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n };\r\n }\r\n\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: error.message || this.d('ErrorModal/Title'),\r\n confirm: confirm,\r\n dismisable: true,\r\n dismissButton: null, // Hide button, but allow modal icon close\r\n confirmButtonClass: settings.loginLink.CssClass || null,\r\n confirmButton: confirm ? settings.loginLink.Text : null,\r\n }))).show();\r\n };\r\n\r\n m.route.mode = 'hash';\r\n\r\n m.route(element, defaultRoute, {\r\n\r\n '/:page/:period/:offset/:type': m.component(RetailGameHistoryList, {\r\n settings: this.settings,\r\n showErrorModal: this.showErrorModal\r\n }),\r\n\r\n '/overblik/': m.component(RetailGameHistoryOverview, {\r\n settings: this.settings,\r\n showErrorModal: this.showErrorModal\r\n }),\r\n\r\n '/:page/:period/:offset/:type/:gameId': m.component(RetailGameHistoryDetails, {\r\n settings: this.settings,\r\n showErrorModal: this.showErrorModal\r\n }),\r\n\r\n '/prize/:gameId': m.component(RetailGameHistoryPrize, {\r\n settings: this.settings,\r\n showErrorModal: this.showErrorModal\r\n }),\r\n\r\n '/payout/:gameId': m.component(RetailGameHistoryPayout, {\r\n settings: this.settings,\r\n showErrorModal: this.showErrorModal,\r\n returnUrl: `${window.location.pathname}#${defaultRoute}`\r\n }),\r\n\r\n });\r\n\r\n });\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailLandingPage', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n], function (Component, Dictionary, Button) {\r\n\r\n Component('retail-landing-page', [Dictionary], function (m, route, settings) {\r\n\r\n var root = {\r\n controller: function () {\r\n this.settings = settings;\r\n this.route = route;\r\n this.d = Dictionary.get.bind({ prefix: 'RetailLandingPage/' });\r\n\r\n this.loadAnimation = function (target) {\r\n document.querySelector('.' + target).classList.add(target + '--loaded');\r\n };\r\n\r\n this.resizeSplash = function () {\r\n var splashHeight = document.querySelector('.retail-landing-page__back-image');\r\n var container = document.querySelector('.retail-landing-page__splash');\r\n if (splashHeight && container) {\r\n container.style.height = splashHeight.height + 30 + 'px';\r\n }\r\n };\r\n\r\n // Hide brand-nav\r\n var brandNav = document.querySelector('.brand-nav');\r\n if (brandNav) {\r\n document.body.classList.add('RetailAccountHiddenMenu');\r\n }\r\n\r\n },\r\n view: function (controller) {\r\n var settings = controller.settings;\r\n\r\n controller.resizeSplash();\r\n\r\n return m('div', {\r\n class: 'retail-page__content has-two-columns retail-landing-page',\r\n 'data-uitest-id': 'retail-landing-page'\r\n },\r\n m('.retail-landing-page__outer-wrapper',\r\n m('.retail-landing-page__inner-wrapper',\r\n m('div', {\r\n class: 'retail-page__row has-rows-2'\r\n }, [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n m('.retail-landing-page__splash', [\r\n m('.retail-landing-page__splash-header', controller.d('SplashTitle')),\r\n m('img', {\r\n class: 'retail-landing-page__front-image',\r\n src: settings.splashFrontImage.source,\r\n alt: settings.splashFrontImage.alternateText,\r\n onload: function () {\r\n controller.loadAnimation('retail-landing-page__front-image');\r\n controller.loadAnimation('retail-landing-page__splash-header');\r\n }\r\n }),\r\n m('img', {\r\n class: 'retail-landing-page__back-image',\r\n src: settings.splashBackImage.source,\r\n alt: settings.splashBackImage.alternateText,\r\n onload: function () {\r\n controller.loadAnimation('retail-landing-page__back-image');\r\n }\r\n }),\r\n ]),\r\n m('div', { class: 'retail-landing-page__app-links' }, [\r\n m('a', {\r\n href: settings.appStoreLink.Url\r\n }, m('img', {\r\n class: 'retail-landing-page__app-logo',\r\n src: settings.appStoreImage.source,\r\n alt: settings.appStoreImage.alternateText,\r\n })\r\n ),\r\n m('a', {\r\n href: settings.googlePlayLink.Url\r\n }, m('img', {\r\n class: 'retail-landing-page__app-logo',\r\n src: settings.googlePlayImage.source,\r\n alt: settings.googlePlayImage.alternateText\r\n })\r\n )\r\n ])\r\n ]),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, [\r\n m('h1', { class: 'retail-landing-page__header' }, controller.d('PageTitle')),\r\n m('p', { class: 'retail-landing-page__abstract' }, m.trust(controller.d('PageText1'))),\r\n m('p', { class: 'retail-landing-page__abstract' }, m.trust(controller.d('PageText2'))),\r\n m('p', { class: 'retail-landing-page__abstract' }, m.trust(controller.d('PageText3'))),\r\n Button({\r\n class: 'retail-landing-page__cta-button',\r\n buttonText: settings.callToActionLink.Text,\r\n onclick: function () {\r\n window.location.href = settings.callToActionLink.Url;\r\n }\r\n }),\r\n m('p', { class: 'retail-landing-page__read-more' }, m.trust(controller.d('PageText4'))),\r\n m('p', controller.d('PoweredBy')),\r\n m('.retail-landing-page__brand-links', [\r\n settings.links.map(function (link) {\r\n return m('a', { href: link.locationUrl }, m('img', {\r\n class: 'retail-landing-page__brand-link',\r\n style: 'background-color: ' + link.backgroundColor,\r\n src: link.image.source,\r\n alt: link.image.alternateText,\r\n }));\r\n })\r\n ])\r\n ])\r\n ])\r\n )\r\n )\r\n );\r\n }\r\n };\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailCarousel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Carousel',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/StepHeader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Button',\r\n], function (Component, Event, Carousel, LoginCache, StepHeader, Button) {\r\n\r\n Component('retail-carousel', function (m, route, settings) {\r\n\r\n var root = {\r\n controller: function () {\r\n this.settings = settings;\r\n this.carousel = m.prop([]);\r\n this.route = route;\r\n this.isVisible = m.prop(false);\r\n\r\n var currentUser = LoginCache.getUserObj();\r\n var carouselItems = this.settings.carousel.filter(function (carouselItem) {\r\n // Filter out if user has set wager limits, and slide should only be shown to users with no limits\r\n if (carouselItem.noWagerLimits && currentUser && currentUser.customerInfo && currentUser.customerInfo.hasLimits) {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n this.carousel(carouselItems);\r\n\r\n this.initCarousel = function ($element, isInitialized) {\r\n if (isInitialized) return;\r\n\r\n var settings = {\r\n withDots: false,\r\n withArrows: true\r\n };\r\n\r\n new Carousel($element, settings);\r\n }.bind(this);\r\n\r\n Event.subscribe('retailCarousel:visiblity', function (data) {\r\n this.isVisible(data.visible);\r\n }.bind(this));\r\n },\r\n view: function (controller) {\r\n if (!controller.carousel().length) {\r\n return;\r\n }\r\n\r\n if (!controller.isVisible()) {\r\n return;\r\n }\r\n\r\n return m('div', {\r\n class: 'retail-page__content has-two-columns retail-carousel',\r\n config: controller.initCarousel\r\n },\r\n m('.retail-carousel__outer-wrapper',\r\n m('.retail-carousel__inner-wrapper',\r\n controller.carousel().map(function (carouselItem) {\r\n return m('div', {\r\n class: 'retail-page__row has-rows-2 retail-carousel__item'\r\n }, [\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--1'\r\n }, [\r\n StepHeader({\r\n title: carouselItem.title,\r\n abstract: carouselItem.description\r\n }),\r\n carouselItem.ctaButton.Url ?\r\n Button({\r\n class: 'retail-button--white retail-carousel__cta-button',\r\n buttonText: carouselItem.ctaButton.Title,\r\n onclick: function () {\r\n window.location.href = carouselItem.ctaButton.Url;\r\n }\r\n }) : null,\r\n ]),\r\n m('div', {\r\n class: 'retail-page__column retail-page__column--2'\r\n }, carouselItem.image ? m('img', {\r\n class: 'retail-carousel__image',\r\n src: carouselItem.image.Source,\r\n alt: carouselItem.image.AlternateText\r\n }) : null\r\n )\r\n ]);\r\n })\r\n )\r\n )\r\n );\r\n }\r\n };\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n });\r\n\r\n});","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/Components/RetailUpdateAccount', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Api',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Models/UserModel',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Intro',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodSelection',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodValue',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/LimitPeriodConfirm',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/PINCode',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Pages/Receipt'\r\n],\r\nfunction (Component, LoginCache, FrameworkOverlay, Dictionary, Utils, RetailApi, UserModel, Loader, ErrorOverlay, Intro, LimitPeriodSelection, LimitPeriodValue, LimitPeriodConfirm, PINCode, Receipt) {\r\n\r\n // Declare steps\r\n var routeConfiguration = [\r\n { route: '/', template: Intro },\r\n { order: 2, route: '/pincode', fields: ['pincode'], skipSubmit: true, hideBackButton: true, dictionaryKey: 'SetPINCode', template: PINCode },\r\n { order: 3, route: '/repeat-pincode', fields: ['pincode', 'pincodeConfirm'], optionalFields: ['adviseEloquaOfAccountUpdate'], dictionaryKey: 'ConfirmPINCode', template: PINCode },\r\n { order: 4, route: '/limit/period', fields: ['offlineWagerLimitPeriod'], hideBackButton: true, skipSubmit: true, dictionaryKey: 'LimitPeriodSelection', template: LimitPeriodSelection },\r\n { order: 5, route: '/limit/value', fields: ['offlineWagerLimitPeriod', 'offlineWagerLimit'], skipSubmit: true, dictionaryKey: 'LimitPeriodValue', template: LimitPeriodValue },\r\n { order: 6, route: '/limit/confirm', fields: ['offlineWagerLimitPeriod', 'offlineWagerLimit'], optionalFields: ['adviseEloquaOfAccountUpdate'], dictionaryKey: 'LimitPeriodConfirm', template: LimitPeriodConfirm },\r\n { order: 7, route: '/stepReceipt', template: Receipt },\r\n ];\r\n\r\n // Get the current step from route on page load\r\n var currentStep = routeConfiguration.filter(function (step) {\r\n var locationHash = window.location.hash.toLowerCase();\r\n var hash = locationHash.replace('#retail-update-account=', '');\r\n return hash === step.route.toLowerCase();\r\n });\r\n\r\n // It empty get the current step from the routeConfiguration array (setting [0] in the controller)\r\n if (!currentStep.length) {\r\n currentStep = routeConfiguration[0];\r\n } else {\r\n currentStep = currentStep[0];\r\n }\r\n\r\n // Component:\r\n Component('retail-update-account', [Dictionary], function (m, route, settings) {\r\n\r\n var root = {\r\n controller: function () {\r\n this.d = Dictionary.get.bind({ prefix: 'RetailUpdateAccount/' });\r\n this.isLoading = m.prop(true);\r\n this.buttonIsDisabled = m.prop(false);\r\n this.isSubmitting = m.prop(false);\r\n this.model = m.prop(new UserModel());\r\n this.modalError = m.prop(null);\r\n this.routeConfiguration = routeConfiguration;\r\n this.currentStep = m.prop(currentStep);\r\n this.receiptLink = m.prop(settings.receiptLink);\r\n this.receiptContent = m.prop({\r\n title: this.d('Receipt/AlreadyUpdatedTitle'),\r\n buttonText: settings.receiptLink.Text,\r\n icon: 'circle_checkmark',\r\n callback: function () {\r\n if (Utils.getQueryParam('returnUrl')) {\r\n window.location.href = Utils.getQueryParam('returnUrl');\r\n } else {\r\n window.location.href = settings.receiptLink.Url;\r\n }\r\n },\r\n timeout: 30000,\r\n partialTemplate: null\r\n });\r\n this.fieldInFocus = m.prop();\r\n this.backAllowed = m.prop(false);\r\n this.showRetailMarketingTermsInEmail = m.prop(false);\r\n this.showEmailPermissionTermsInEmail = m.prop(false);\r\n this.showAppPermissionTerms = m.prop(false);\r\n this.noLimitPeriodSelected = m.prop(null);\r\n this.userNeedsInteraction = m.prop(true);\r\n this.hideBackButton = m.prop(false);\r\n this.maskPincodeInput = m.prop(false);\r\n this.globalWagerLimits = m.prop(null);\r\n this.logoutRedirectUrl = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n Utils.redirectOnLogout(this.logoutRedirectUrl);\r\n\r\n var getProfile = function () {\r\n return RetailApi.getProfileWithBankInformation().then(function (response) {\r\n var model = response.data.profile || {};\r\n this.model().update(model);\r\n\r\n if (this.model().fields.pincode() && this.model().fields.offlineWagerLimit()) {\r\n this.userNeedsInteraction(false);\r\n this.routeToNextStep();\r\n } else {\r\n let dictionaryReceiptKey = '';\r\n\r\n if (this.model().fields.isRetailAccount()) {\r\n if (this.model().fields.offlineWagerLimit()) {\r\n dictionaryReceiptKey = 'Variant1/';\r\n } else {\r\n dictionaryReceiptKey = 'Variant2/';\r\n }\r\n } else {\r\n if (this.model().fields.offlineWagerLimit() && this.model().fields.hasOldOfflineWagerLimit()) {\r\n dictionaryReceiptKey = 'Variant4/';\r\n } else if (this.model().fields.offlineWagerLimit()) {\r\n dictionaryReceiptKey = 'Variant3/';\r\n } else {\r\n dictionaryReceiptKey = 'Variant2/';\r\n }\r\n }\r\n\r\n this.receiptContent().title = this.d(`Receipt/${dictionaryReceiptKey}Title`);\r\n this.receiptContent().buttonText = this.d(`Receipt/${dictionaryReceiptKey}CTA`);\r\n\r\n if (['Variant3/', 'Variant4/'].includes(dictionaryReceiptKey)) {\r\n this.receiptContent().partialTemplate = m('.info-message.info-message--grey', m('h3', this.d(`Receipt/${dictionaryReceiptKey}NoticeTitle`)), m('div', m.trust(this.d(`Receipt/${dictionaryReceiptKey}NoticeDescription`))));\r\n }\r\n }\r\n\r\n const skipFirsStepForVendor = ['SHAPE_RETAILACCOUNT_MOBILENATIVE', 'SHAPE_RETAILACCOUNT_IPADNATIVE', 'SHAPE_ODDSET_MOBILENATIVE', 'SHAPE_DANTOTO_MOBILENATIVE'];\r\n if (window.dsApplicationConfig && skipFirsStepForVendor.includes(window.dsApplicationConfig?.ApplicationId)) {\r\n this.routeToNextStep();\r\n }\r\n\r\n if (window.dsApplicationConfig && ['SHAPE_RETAILACCOUNT_IPADNATIVE'].includes(window.dsApplicationConfig?.ApplicationId)) {\r\n this.maskPincodeInput(true);\r\n }\r\n\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.goToRoute = function (routePath) {\r\n var step = this.routeConfiguration.filter(function (step) {\r\n return step.route.toLowerCase() === routePath.toLowerCase();\r\n })[0];\r\n\r\n this.currentStep(step);\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n window.scrollTo(0, 0);\r\n route(routePath)();\r\n }.bind(this);\r\n\r\n this.showErrorModal = (error) => {\r\n var confirm = null;\r\n\r\n if (error.statusCode === 401) {\r\n confirm = function () {\r\n window.location.href = Utils.appendParameter('loginSuccessUrl', encodeURIComponent(window.location.href), settings.loginLink.Url);\r\n };\r\n }\r\n\r\n this.modalError(new FrameworkOverlay(ErrorOverlay({\r\n title: this.d('ErrorModal/Title'),\r\n body: error.message,\r\n confirm: confirm,\r\n dismisable: false,\r\n confirmButtonClass: settings.loginLink.CssClass || null,\r\n confirmButton: confirm ? settings.loginLink.Text : null\r\n }))).show();\r\n };\r\n\r\n this.validateField = (ev, validateHandler) => {\r\n if (ev.key === 'Tab' && !ev.target.value.length) return;\r\n\r\n var fieldName = ev.target.name;\r\n this.model().validate([fieldName]);\r\n\r\n var hasErrors = this.model().validate(this.currentStep().fields, false);\r\n\r\n if (!hasErrors && typeof validateHandler === 'function') {\r\n validateHandler();\r\n }\r\n };\r\n\r\n this.mergeAndValidateField = (ev, validateHandler) => {\r\n if (this.currentStep().route === '/pincode') {\r\n this.mergeFieldsToSingleModelField('pincode', ['pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (this.currentStep().route === '/repeat-pincode') {\r\n this.mergeFieldsToSingleModelField('pincodeConfirm', ['pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n this.validateField(ev, validateHandler);\r\n };\r\n\r\n this.mergeFieldsToSingleModelField = (newFieldName, fieldNames = []) => {\r\n const fields = fieldNames.map((fieldName) => {\r\n return this.model().fields[fieldName]();\r\n });\r\n\r\n this.model().fields[newFieldName](fields.join(''));\r\n };\r\n\r\n this.findFirstErrorAndRouteToPage = (errors) => {\r\n if (errors.includes('pincode') || errors.includes('pincodeConfirm')) {\r\n this.resetFields(['pincode', 'pincodeConfirm', 'pin1', 'pin2', 'pin3', 'pin4', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n if (errors.includes('offlineWagerLimitPeriod')) {\r\n this.resetFields(['offlineWagerLimitPeriodDaily', 'offlineWagerLimitPeriodWeekly', 'offlineWagerLimitPeriodMonthly', 'offlineWagerLimitPeriod']);\r\n }\r\n\r\n if (errors.includes('offlineWagerLimit')) {\r\n this.resetFields(['offlineWagerLimit']);\r\n }\r\n\r\n const step = this.routeConfiguration.find((routeConfig) => routeConfig.fields?.some((fieldKey) => errors.includes(fieldKey)));\r\n this.currentStep(step);\r\n this.hideBackButton(this.currentStep().hideBackButton || false);\r\n this.goToRoute(step.route);\r\n };\r\n\r\n this.isValidWithinGlobalLimits = () => {\r\n const type = Utils.capitalize(this.model().fields.offlineWagerLimitPeriod());\r\n const value = this.model().fields.offlineWagerLimit();\r\n\r\n if (!this.globalWagerLimits()) {\r\n return true;\r\n }\r\n\r\n const globalLimit = this.globalWagerLimits().find((limit) => {\r\n return limit.Type.toLowerCase() === type.toLowerCase() && (limit.IsGlobal || limit.IsOperator);\r\n });\r\n\r\n if (!globalLimit) {\r\n return true;\r\n }\r\n\r\n if (Number(value) <= Utils.convertCentsToKroner(globalLimit.Value)) {\r\n return true;\r\n }\r\n\r\n this.model().errors.offlineWagerLimit(this.d(`Errors/ValueAboveMaxLimit${type}`, { VALUE: Utils.formatCurrency(value), LIMIT: Utils.convertCentsToKronerAndFormat(globalLimit.Value) }));\r\n return false;\r\n };\r\n\r\n this.submit = function () {\r\n var fields = this.currentStep().fields;\r\n var hasErrors = this.model().validate(fields);\r\n\r\n if (hasErrors) {\r\n return;\r\n }\r\n\r\n if (this.currentStep().route === '/pincode') {\r\n this.resetFields(['pincodeConfirm', 'pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n this.routeToNextStep(null, true);\r\n return;\r\n }\r\n\r\n if (this.currentStep().route === '/limit/value') {\r\n if (!this.isValidWithinGlobalLimits()) {\r\n return;\r\n }\r\n\r\n this.goToRoute('/limit/confirm');\r\n return;\r\n }\r\n\r\n if (this.currentStep().skipSubmit) {\r\n this.routeToNextStep();\r\n return;\r\n }\r\n\r\n if (this.model().fields.pincode() && this.model().fields.offlineWagerLimit()) {\r\n this.model().fields.adviseEloquaOfAccountUpdate(true);\r\n }\r\n\r\n if (this.currentStep().optionalFields) {\r\n fields = this.currentStep().fields.concat(this.currentStep().optionalFields);\r\n }\r\n\r\n var data = Utils.mapModelToApiData(fields, this.model().fields, this.model().initialValues);\r\n this.isLoading(true);\r\n\r\n RetailApi.updateProfile(data).then(function (response) {\r\n var errors = this.model().setErrors(response.data, true);\r\n this.buttonIsDisabled(true);\r\n\r\n if (errors) {\r\n this.findFirstErrorAndRouteToPage(errors);\r\n } else {\r\n this.model().update(response.data.profile); // Make sure our frontend UserModel is in sync with backend\r\n this.routeToNextStep();\r\n }\r\n }.bind(this), function (error) {\r\n this.showErrorModal(error);\r\n }.bind(this)).then(function () {\r\n this.isLoading(false);\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.resetFields = (fields) => {\r\n fields.forEach((fieldKey) => {\r\n this.model().fields[fieldKey](null);\r\n });\r\n };\r\n\r\n this.routeToPrevStep = function () {\r\n var currentStep = this.currentStep();\r\n this.resetFields(currentStep.fields);\r\n\r\n var newStep = this.routeConfiguration[currentStep.order - 2];\r\n this.currentStep(newStep);\r\n\r\n if (!newStep) {\r\n return;\r\n }\r\n\r\n if (newStep.route === '/pincode') {\r\n this.resetFields(['pin1', 'pin2', 'pin3', 'pin4']);\r\n }\r\n\r\n if (currentStep.route === '/repeat-pincode') {\r\n this.resetFields(['pin1Confirm', 'pin2Confirm', 'pin3Confirm', 'pin4Confirm']);\r\n }\r\n\r\n if (currentStep.route === '/limit/value') {\r\n this.resetFields(['offlineWagerLimitPeriodDaily', 'offlineWagerLimitPeriodWeekly', 'offlineWagerLimitPeriodMonthly', 'offlineWagerLimitPeriod']);\r\n }\r\n\r\n this.hideBackButton(this.currentStep().hideBackButton || false);\r\n\r\n Utils.pushVirtualPage(newStep.route, (window.location.pathname.replace(/-/g, '_') + newStep.route), newStep.route);\r\n route(newStep.route)();\r\n window.scrollTo(0, 0);\r\n }.bind(this);\r\n\r\n this.routeToNextStep = function (routePath, setAutoFocus) {\r\n if (routePath) {\r\n Utils.pushVirtualPage(routePath, (window.location.pathname.replace(/-/g, '_') + routePath), routePath);\r\n this.goToRoute(routePath);\r\n return;\r\n }\r\n\r\n for (var index in this.routeConfiguration) {\r\n var step = this.routeConfiguration[index];\r\n var requiredFields = step.fields;\r\n\r\n // If route does not have missing fields and is part of the flow (defined by order), then load this\r\n if (!requiredFields && step.order) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n this.currentStep(step);\r\n this.hideBackButton(this.currentStep().hideBackButton || false);\r\n\r\n route(step.route)();\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n\r\n if (!requiredFields) {\r\n continue;\r\n }\r\n\r\n var missingFields = requiredFields.filter(function (field) {\r\n return !this.model().fields[field]();\r\n }.bind(this));\r\n\r\n if (missingFields.length) {\r\n Utils.pushVirtualPage(step.route, (window.location.pathname.replace(/-/g, '_') + step.route), step.route);\r\n this.currentStep(step);\r\n this.hideBackButton(this.currentStep().hideBackButton || false);\r\n\r\n route(step.route)();\r\n window.scrollTo(0, 0);\r\n break;\r\n }\r\n }\r\n\r\n if (setAutoFocus) {\r\n if (step.route === '/pincode') {\r\n document.querySelector('[name=\"pin1\"]')?.focus();\r\n }\r\n\r\n if (step.route === '/repeat-pincode') {\r\n document.querySelector('[name=\"pin1Confirm\"]')?.focus();\r\n }\r\n }\r\n\r\n if (step.route === '/stepReceipt') {\r\n const playerId = LoginCache.getPlayerId();\r\n\r\n if (playerId && this.userNeedsInteraction()) {\r\n Utils.pushGaEvent('sikkert_spil', 'spil_id_updated', '', playerId);\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.setFieldFocus = function (e) {\r\n if (typeof this.fieldInFocus !== 'function') {\r\n return;\r\n }\r\n\r\n // If function is called with event from onfocus handler, set field to have focus.\r\n // If called without event, then set first input field to have focus\r\n var fieldName = e && e.target ? e.target.name : null;\r\n\r\n if (fieldName) {\r\n this.fieldInFocus(fieldName);\r\n }\r\n }.bind(this);\r\n\r\n var getDepositLimits = () => {\r\n return RetailApi.getUserDepositLimits().then((response) => {\r\n this.globalWagerLimits(response.limits);\r\n });\r\n };\r\n\r\n m.sync([getProfile(), getDepositLimits()]);\r\n\r\n document.body.setAttribute('data-override-logout-return-url', settings.homeLink?.Url || `/${window.location.pathname.split('/')[1]}`);\r\n\r\n Utils.ensightenEvent('login', 'success_used_prompt_for_update');\r\n },\r\n view: function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return m('div', {\r\n class: 'retail-page retail-update-account',\r\n 'data-uitest-id': Utils.replaceSlashWithHyphens(route(), 'retail-page-update-account')\r\n }, routeConfiguration.reduce(function (template, step) {\r\n if (route() === step.route) {\r\n template = step.template(controller);\r\n }\r\n\r\n return template;\r\n }, null));\r\n }\r\n };\r\n\r\n\r\n // Routes\r\n route('/', root);\r\n\r\n for (var index in routeConfiguration) {\r\n var step = routeConfiguration[index];\r\n\r\n route(step.route, root);\r\n }\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/RetailAccount/Scripts/RetailPromo', [\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Helpers/Utils'\r\n], function (LoginCache, Utils) {\r\n\r\n var $retailPromo = document.getElementById('retail-promo');\r\n\r\n if (!$retailPromo) {\r\n return;\r\n }\r\n\r\n var $retailPlaycardContainer = document.querySelector('.js-playcard-container');\r\n var $retailPlaycard = document.querySelector('.js-playcard');\r\n var $retailTartarSection = document.getElementById('tartar-section');\r\n var $retailWhySection = document.getElementById('why-section');\r\n var $retailDownloadSection = document.getElementById('download-section');\r\n var $retailDownloadSectiontitle1 = document.getElementById('download-section__title-1');\r\n var $retailDownloadSectiontitle2 = document.getElementById('download-section__title-2');\r\n var $retailScrollTextButton = document.getElementById('scroll-text-button');\r\n var hasScrolled = false;\r\n var scrollPos = 0;\r\n var startPos = 250;\r\n var downloadPercent = 110;\r\n var scrollDirection;\r\n var line1 = document.getElementById('line-1');\r\n var line2 = document.getElementById('line-2');\r\n var line3 = document.getElementById('line-3');\r\n var line4 = document.getElementById('line-4');\r\n var line5 = document.getElementById('line-5');\r\n var tartarImage = document.getElementById('tartar-svg__image');\r\n var tartarRect = document.getElementById('tartar-svg__rect');\r\n var tartarLogo = document.getElementById('tartar-svg__logo');\r\n\r\n if (LoginCache.isLoggedIn()) {\r\n document.body.classList.add('is-logged-in');\r\n }\r\n\r\n $retailScrollTextButton.addEventListener('click', function () {\r\n var scrollOnClick = scrollPos + window.innerHeight;\r\n if ('scrollBehavior' in document.documentElement.style) {\r\n window.scrollTo({\r\n top: scrollOnClick,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n } else {\r\n window.scrollTo(0, scrollOnClick);\r\n }\r\n });\r\n\r\n // Force user to start from top\r\n if ('scrollRestoration' in window.history) {\r\n window.history.scrollRestoration = 'manual';\r\n }\r\n\r\n window.onload = function () {\r\n if (startPos) {\r\n setTimeout(function () {\r\n if ('scrollBehavior' in document.documentElement.style) {\r\n window.scrollTo({\r\n top: startPos,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n } else {\r\n window.scrollTo(0, startPos);\r\n document.querySelector('.js-info-statement__item').style.opacity = 1;\r\n }\r\n\r\n document.body.classList.add('has-loaded');\r\n }, 1000);\r\n }\r\n };\r\n\r\n var $opacityTargets = document.querySelectorAll('.js-info-statement__item');\r\n $opacityTargets = [].slice.call($opacityTargets); // IE11 fix\r\n\r\n var opacityScroll = function (entries) {\r\n if (!hasScrolled) return;\r\n\r\n entries.forEach(function (entry) {\r\n entry.target.style.opacity = entry.intersectionRatio;\r\n });\r\n };\r\n\r\n /* eslint-disable */\r\n var opacityObserver = new IntersectionObserver(opacityScroll, {\r\n threshold: [0, 0.05, 0.1, 0.15, 0.2, 0.5, 0.7, 0.8, 0.85, 0.9, 0.95, 1]\r\n });\r\n /* eslint-enable */\r\n\r\n $opacityTargets.forEach(function (target) {\r\n opacityObserver.observe(target);\r\n });\r\n\r\n\r\n var line1Length = line1.getTotalLength === 'function' ? line1.getTotalLength() : 1300;\r\n var line2Length = line2.getTotalLength === 'function' ? line2.getTotalLength() : 1300;\r\n var line3Length = line3.getTotalLength === 'function' ? line3.getTotalLength() : 1300;\r\n var line4Length = line4.getTotalLength === 'function' ? line4.getTotalLength() : 1300;\r\n var line5Length = line5.getTotalLength === 'function' ? line5.getTotalLength() : 1300;\r\n\r\n // Start drawing\r\n line1.style.strokeDasharray = line1Length;\r\n line1.style.strokeDashoffset = line1Length;\r\n line2.style.strokeDasharray = line2Length;\r\n line2.style.strokeDashoffset = line2Length;\r\n line3.style.strokeDasharray = line3Length;\r\n line3.style.strokeDashoffset = line3Length;\r\n line4.style.strokeDasharray = line4Length;\r\n line4.style.strokeDashoffset = line4Length;\r\n line5.style.strokeDasharray = line5Length;\r\n line5.style.strokeDashoffset = line5Length;\r\n\r\n document.addEventListener('scroll', function () {\r\n hasScrolled = true;\r\n // eslint-disable-next-line compat/compat\r\n var scrollY = typeof window.scrollY !== 'undefined' ? window.scrollY : window.pageYOffset;\r\n scrollDirection = scrollY > scrollPos ? 'down' : 'up';\r\n scrollPos = scrollY;\r\n\r\n var rotatePos = scrollPos / 10;\r\n\r\n if (window.innerWidth <= 640 && scrollPos > 0) {\r\n $retailPlaycardContainer.style.opacity = 0.5;\r\n } else {\r\n $retailPlaycardContainer.style.opacity = 1;\r\n }\r\n\r\n if (scrollPos >= ($retailTartarSection.offsetTop - window.innerHeight)) {\r\n document.body.classList.remove('tartar-section-active');\r\n $retailPlaycardContainer.classList.remove('is-fixed');\r\n } else {\r\n $retailPlaycardContainer.classList.add('is-fixed');\r\n $retailPlaycard.style.transform = 'rotateY(-' + rotatePos + 'deg)';\r\n }\r\n\r\n if (rotatePos >= 90 && rotatePos <= 270) {\r\n $retailPlaycard.classList.add('is-backside');\r\n } else {\r\n $retailPlaycard.classList.remove('is-backside');\r\n }\r\n\r\n if (scrollPos >= ($retailWhySection.offsetTop - window.innerHeight) && scrollPos < ($retailWhySection.offsetTop + $retailWhySection.clientHeight)) {\r\n document.body.classList.add('why-section-active');\r\n document.body.classList.remove('has-logo');\r\n } else {\r\n document.body.classList.remove('why-section-active');\r\n }\r\n\r\n if (scrollPos >= ($retailDownloadSection.offsetTop - window.innerHeight)) {\r\n document.body.classList.add('download-section-active');\r\n downloadPercent = downloadPercent > 0 && scrollDirection === 'down' ? (($retailDownloadSection.offsetTop - (window.innerHeight / 2)) - scrollPos) : 0;\r\n\r\n $retailDownloadSectiontitle1.style.transform = 'translateX(' + (-downloadPercent) + '%)';\r\n $retailDownloadSectiontitle2.style.transform = 'translateX(' + downloadPercent + '%)';\r\n } else {\r\n document.body.classList.remove('download-section-active');\r\n }\r\n\r\n if (scrollPos >= $retailTartarSection.offsetTop && scrollPos < ($retailTartarSection.offsetTop + $retailTartarSection.clientHeight)) {\r\n document.body.classList.add('tartar-section-active');\r\n }\r\n\r\n if (scrollPos >= ($retailTartarSection.offsetTop - window.innerHeight) && scrollPos < ($retailTartarSection.offsetTop + $retailTartarSection.clientHeight)) {\r\n var scrollPercent = (scrollPos - ($retailTartarSection.offsetTop - window.innerHeight)) / ($retailTartarSection.clientHeight * 0.2);\r\n\r\n var draw1 = line1Length * scrollPercent;\r\n var draw2 = line2Length * scrollPercent;\r\n var draw3 = line3Length * scrollPercent;\r\n var draw4 = line4Length * scrollPercent;\r\n var draw5 = line5Length * scrollPercent;\r\n\r\n if (scrollPercent >= 0 && scrollPercent <= 1) {\r\n document.body.classList.remove('has-logo');\r\n line1.style.opacity = 1;\r\n line2.style.opacity = 1;\r\n line3.style.opacity = 1;\r\n line4.style.opacity = 1;\r\n line5.style.opacity = 1;\r\n tartarRect.style.height = 0;\r\n line1.style.strokeDashoffset = line1Length - draw1;\r\n line2.style.strokeDashoffset = line2Length - draw2;\r\n line3.style.strokeDashoffset = line3Length - draw3;\r\n line4.style.strokeDashoffset = line4Length - draw4;\r\n line5.style.strokeDashoffset = line5Length - draw5;\r\n } else if (scrollPercent > 1 && scrollPercent <= 2) {\r\n if (scrollPercent >= 1.5) {\r\n line1.style.opacity = 0;\r\n line2.style.opacity = 0;\r\n line3.style.opacity = 0;\r\n line4.style.opacity = 0;\r\n line5.style.opacity = 0;\r\n }\r\n tartarRect.style.height = 0;\r\n tartarImage.style.opacity = scrollDirection === 'down' ? scrollPercent - 1 : 1;\r\n } else if (scrollPercent > 2) {\r\n var height = (scrollPercent - 2) * 100;\r\n var offset = (100 - height) / 2;\r\n tartarRect.style.height = height + '%';\r\n tartarRect.style.transform = 'rotate(-35deg) translate(-50%, ' + offset + '%)';\r\n tartarRect.setAttribute('height', height + '%');\r\n tartarRect.setAttribute('transform', 'matrix(0.819152, -0.573576, 0.573576, 0.819152, -880.108, 67.3979)');\r\n tartarLogo.setAttribute('transform', 'matrix(1, 0, 0, 1, ' + (window.innerWidth * 0.3) + ', ' + (window.innerHeight * 0.3) + ')');\r\n\r\n if (scrollPercent >= 2.5) {\r\n document.body.classList.add('has-logo');\r\n var logoOpacity = (scrollPercent - 2.5);\r\n tartarLogo.style.opacity = logoOpacity;\r\n } else {\r\n document.body.classList.remove('has-logo');\r\n tartarLogo.style.opacity = 0;\r\n }\r\n\r\n if (height >= 170) {\r\n var moveUpValue = 200 - height;\r\n tartarLogo.style.transform = 'translate(30%, ' + moveUpValue + '%)';\r\n\r\n if (moveUpValue <= -50) { // -50 = logo height + 10%\r\n document.body.classList.remove('tartar-section-active');\r\n }\r\n }\r\n }\r\n } else {\r\n document.body.classList.remove('tartar-section-active');\r\n }\r\n });\r\n\r\n Utils.setupLoginLinkEventListeners('/sikkertspil/opret');\r\n});\r\n"]}