{"version":3,"sources":["Cleanup.js","Model.js","QuickLink.js","Button.js","Svg.js","Dictionary.js","Overlay.js","OverlayContainer.js","ModalDialog.js","Request.js","Texts.js","Alerts.js","validate.js","NavigationHeader.js","CustomValidators.js","PlayerRegisterDocumentsApi.js","AccountCustomValidators.js","Dropdown.js","Utils.js","TableUtils.js","ReceiptPage.js","Reepay.js","Recaptcha.js","ValidationModel.js","CommonCustomValidators.js","Animator.js","NotificationsApi.js","Pikaday.js","Calendar.js","PlayerGamesApi.js","LoadDots.js","TableListFooter.js","TableListHeader.js","TableList.js","Card.js","Mapping.js","RouteParam.js","PlayerTransactionsBalanceApi.js","PlayerTransactionsApi.js","Box.js","ReceiptData.js","Receipt.js","CustomInput.js","CustomCheckbox.js","CustomUpload.js","StepGuide.js","RegisterModel.js","CustomRadio.js","InfoRibbon.js","MyPageData.js","MyPageModel.js","ChangePasswordApi.js","RouteSlide.js","Toggles.js","Notifications.js","PlayerGamesDetails.js","PlayerGames.js","DataSettings.js","PlayerTransactionsBalance.js","PlayerTransactionsDetails.js","PlayerTransactions.js","PayoutModel.js","VisualLimitWithCounter.js","PaymentOption.js","RealityCheckOverlay.js","PaymentStep3.js","PaymentStep2.js","PaymentStep1.js","PaymentModel.js","PaymentApi.js","CardCCVModal.js","CardExpirationModal.js","CardNumberModal.js","UpgradeAccountModal.js","LimitsMissingModal.js","TransactionDeclinedModal.js","BonusCodeImmediateDepositReceipt.js","BonusCodeFlow.js","Payment.js","FileUploadItem.js","Limit.js","Upload.js","PostLogin.js","Step3.js","Step2.js","Step1.js","PlayerProfileRestrictAccountData.js","ConfirmRestriction.js","PlayerProfileCloseAccountApi.js","SelectLimitsModel.js","AmountLimitsModel.js","PlayerProfileAmountLimitsApi.js","PlayerProfileAcknowledgementApi.js","MyPageAccount.js","MyPageCards.js","MyPageAlias.js","MyPagePhone.js","MyPageEmail.js","MyPagePassword.js","MyPageOverview.js","AmountLimitInput.js","ConfirmPage.js","AmountLimit.js","SelectLimitStep0.js","SelectLimitStep1.js","Confirm.js","ChangePasswordModel.js","PlayCardApi.js","NotificationsConsents.js","NotificationsView.js","Payout.js","UploadView.js","RegisterView.js","PlayerProfileRestrictOrCloseAccount.js","PlayerProfileRestrictAccount.js","PlayerProfileCloseAccount.js","PlayerProfileAmountLimits.js","PlayerProfileSelectLimit.js","Acknowledgement.js","MyPageView.js","ChangePasswordView.js","PermissionStep.js","Permission.js","PlayCard.js","FaqInit.js","AppComplianceBar.js","AppComplianceBarCasino.js","PlayerStatTransactionsApi.js","BoxHeader.js","TransactionsSummary.js","PersonalMessage.js","SimplePersonalMessage.js","BalanceSummary.js","WagerDays.js"],"names":["defineDs","keys","Object","localStorage","now","Date","getTime","i","length","key","substring","item","JSON","parse","getItem","timestamp","RegExp","id","test","location","search","console","warn","removeItem","e","m","Cleanup","modelName","constructor","generateId","replace","c","r","Math","random","toString","cache","construct","content","state","save","record","this","prop","init","prototype","data","stringify","toJSON","setItem","update","updatedRecord","forEach","get","query","type","cached","val","json","bulk","push","filter","match","first","second","delete","new","ApiRequest","path","quickLink","loaded","ready","deferred","url","DS","Config","CONTEXTPREFIX","toLowerCase","method","localCacheTTL","noCache","unwrapSuccess","response","then","resolve","replacements","prefix","base","segments","split","segment","Array","floor","k","toUpperCase","promise","Utils","controller","options","extend","eventId","uiTestId","classes","default","disabled","loading","text","href","onclick","onkeydown","view","args","classList","config","elem","setAttribute","class","size","color","preventDefault","svgName","props","_objectSpread","modifiers","map","modifier","xmlns","Dictionary","activeOverlays","template","$container","$wrapper","document","getElementById","add","$overlayElement","clear","startComputation","removeOverlay","parentNode","removeChild","lowerOverlay","index","endComputation","bind","splice","redraw","className","handleClose","render","$component","component","mount","show","$overlay","createElement","body","appendChild","indexOf","slice","otherOverlay","action","self","$gameOverlay","querySelector","concat","join","remove","getAttribute","addEventListener","confirm","dismiss","_this$$wrapper","Button","Svg","buttons","button","callback","close","ModalDialogObj","shouldBeComponent","closable","stackButtons","readMore","subText","renderKey","ctrlOrHandleClose","registerElementOrVnode","obj","iosPositionFix","registerElement","window","scroll","top","behavior","ignoredError","element","width","height","isArray","title","ModalDialog","Overlay","LoginController","Ensighten","errorMapping","Title","Detail","Id","showErrorModal","ensigtenErrorId","errorId","ErrorCode","pushGaEvent","d","dialogcontent","modalIcon","errorTitle","trust","Message","ID","formatErrorResponse","message","errors","newKey","deserialize","value","returnVal","status","unwrapError","headers","sitecoreEnv","error","openLogin","preventModal","dPath","noTitle","noSubtitle","noText","noCtaLabel","dictionaryOptions","subtitle","ctaLabel","Texts","cssModifier","texts","exports","module","define","validate","attributes","constraints","v","attr","validator","results","runValidations","isPromise","Error","processValidationResults","call","arguments","source","version","major","minor","patch","metadata","format","isEmpty","Promise","EMPTY_STRING_REGEXP","validatorName","validators","validatorOptions","isDomElement","isJqueryElement","collectFormValues","getDeepObjectValue","result","name","attribute","globalOptions","pruneEmptyErrors","expandMultipleErrors","convertErrorMessages","formatters","undefined","async","WrapErrors","wrapErrors","cleanAttributes","reject","waitForResults","err","single","fullMessages","reduce","memo","apply","isNumber","isNaN","isFunction","isInteger","isBoolean","isObject","isDate","isDefined","p","o","isString","jquery","querySelectorAll","HTMLElement","nodeType","nodeName","str","vals","FORMAT_REGEXP","m0","m1","m2","String","prettify","parseFloat","round","toFixed","s","stringifyValue","isHash","contains","unique","array","el","forEachKeyInKeypath","object","keypath","escape","form","j","input","inputs","option","values","sanitizeFormValue","checked","multiple","selected","selectedIndex","trim","nullify","capitalize","ret","msg","errorInfo","groupErrorsByAttribute","list","flattenErrorsToArray","whitelist","whitelistCreator","last","cleanRecursive","w","ow","buildObjectWhitelist","exposeModule","root","amd","presence","allowEmpty","is","maximum","minimum","tokenizer","wrongLength","count","tooShort","tooLong","notValid","numericality","checks","greaterThan","greaterThanOrEqualTo","equalTo","lessThan","lessThanOrEqualTo","divisibleBy","strict","pattern","onlyInteger","noStrings","notInteger","odd","notOdd","even","notEven","datetime","earliest","NaN","latest","dateOnly","tooEarly","date","tooLate","flags","exec","inclusion","within","exclusion","email","PATTERN","equality","otherValue","comparator","v1","v2","schemes","allowLocal","regex","tld","detailed","flat","grouped","constraint","sort","urlOrCallback","mithrilRoute","linkText","cookie","CONTEXT","origin","history","back","route","Request","isDanishCpr","cpr","isBelowGlobalLimit","parseInt","limit","isAboveGlobalLimit","isCprCountryMatch","country","isCountryCprMatch","isUsernameValidForRegistration","Username","ValidateUsername","isUsernameAndEmailValidForRegistration","username","Email","ValidateEmail","Recaptcha","recaptcha","recaptchaEnabled","callbackOnRecaptchaError","isPasswordSameAsUserName","ignoreValue","ignoreTarget","password","isPasswordValid","Password","isValidCpr","CprNumber","ValidateCprNumber","ValidateAge","MustBeDanish","isValidDanishCpr","hasDocuments","uploadDocument","serialize","timeout","isCurrentPasswordCorrect","OutsideClick","Render","model","valid","validState","errorList","subdrop","defaultItem","placeholder","toggled","subDropToggled","subDropMaxHeight","scrollTop","nodes","dropdown","$element","rendered","context","onchange","focus","curValue","stopPropagation","setTimeout","blur","ctrl","isMobile","matchMedia","matches","allItems","items","selectedValue","setValue","hidden","left","right","depend","withAttr","label","for","centered","innerHeight","nextSibling","childNodes","number","node","getBoundingClientRect","offsetTop","style","maxHeight","QuickLink","LoginSSO","defaultReceiptRedirect","repopulateUrlWithAssertionIdAndLoginId","relay","assertionId","loginId","finalUrl","initialQueryCharacter","currentJossoAssertionId","getParameter","currentLoginId","encodeURIComponent","isAppUrl","some","getDefaultRedirectUrl","Url","queryString","charAt","params","keyVal","assignMethod","assign","formatCurrency","amount","Number","convertCentsToKroner","appendParameter","queryKey","queryValue","pathname","existingParams","calculateAge","dateString","today","day","month","year","timeNow","century","getFullYear","birthDate","age","getMonth","getDate","checkEncodeURI","chunks","chunkSize","resultArray","chunkIndex","convertCentsToKronerAndFormat","convertKronerToCents","deleteParameter","newUrlQuery","fileExtension","filename","lastIndexOf","formatCurrencyWithoutDecimals","formatDate","toLocaleDateString","toLocaleTimeString","formatDateOnly","formatDateShort","getHours","getMinutes","formatInputValue","inputValue","parts","getPercentageOfSize","totalSize","getPreviousDatesFromToday","descending","dates","calculatedDate","setDate","dateWithoutTime","reverse","getRedirectUrlWithDsApplicationIdAndReturnUrl","dsApplicationId","dsApplicationConfig","ApplicationId","returnUrl","hash","substr","getValidAppRedirectUrl","decodedUrl","decodeURIComponent","populatedUrl","hasObjectProperty","getValue","hasOwnProperty","isApp","isTopFrame","populateUrlWithAssertionIdAndLoginId","replaceDynamicText","replacementKeys","replaceParameterValue","scrollToError","routeSlide","elemOffsetY","isFixed","routeSlideStyle","getComputedStyle","getPropertyValue","scrollTopPos","scrollTo","sortCardsList","cardsList","a","b","isPrimaryCard","cardExpirationDate","expired","sumAllTransactionPeriods","previousValue","currentPeriod","uniqueParams","querySplit","paramsSplit","param","urlContainsLoginInformation","every","lowerFirstChar","updateOffset","timeDiff","currentDate","setHours","selectedDate","offset","ceil","toggleCalendar","calendarToggled","selectFilter","activeFilter","setSelectedDate","dateOffset","getSelectedDate","fetchPrevious","page","fetchNext","setFilterValues","keyValue","twoYearsAgo","pastDate","setFullYear","isBeyondLimit","period","NavigationHeader","description","descriptionTemplate","subTemplate","bodyText","bodyHtml","callback2","icon","waitTime","Infinity","previousLocation","waitText","redirectButtonText","redirectButtonText2","buttonsDisabled","buttonLoading","buttonLoading2","redirectCallback","navigationBackBar","noCountdown","showAccountHeader","dictionary","pageSettings","buttonClass","viewBox","cx","cy","RofusLink","target","TreatmentLink","load","Reepay","include","checkout","token","retries","WindowCheckout","isApplePayAvailable","_window$Reepay","isGooglePayAvailable","isInit","reCaptchaInit","log","recaptchaScriptTag","onload","src","RECAPTCHA_URL","reCaptchaReady","grecaptcha","sitekey","RECAPTCHA_SITEKEY","fieldKeys","forceValidate","fields","field","fieldRules","fieldrules","chain","fieldName","forcefullyValidated","fieldValidatorRules","relatedFieldKeys","fieldValidator","fieldToCheck","fieldErrors","Source","Pointer","clearErrors","f","toPlainObject","plain","getAllErrors","fieldKey","isModelValid","modelState","fieldState","getStepState","groupState","fieldStates","models","extendFields","onAlreadyRegistered","isPhoneNumberValid","isEmailValidForRegistration","ValidationType","isEmailValidForAuthenticatedUser","animating","noop","incoming","outgoing","alwaysAnimate","dontClone","x","y","z","parent","next","animationConfig","attrs","bindConfigTo","output","onunload","teardown","parentElement","insertion","cloneNode","reference","insertBefore","GetLabel","getConsent","getSettings","background","setConsent","payload","payloadItem","Accepted","updateSettings","settings","updateTermsConsentSettings","acknowledgeRecentlyUpgraded","hasMoment","hasEventListeners","sto","addEvent","capture","attachEvent","removeEvent","removeEventListener","detachEvent","hasClass","cn","addClass","removeClass","isWeekend","getDay","isLeapYear","getDaysInMonth","setToStartOfDay","compareDates","to","from","overwrite","hasProp","fireEvent","eventName","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","abs","defaults","bound","ariaLabel","position","reposition","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","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","renderRow","days","isRowSelected","renderTitle","instance","refYear","randId","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","renderTable","renderHead","Pikaday","_onMouseDown","_v","event","srcElement","prevMonth","hide","_c","returnValue","_onChange","gotoMonth","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_onInputChange","firedBy","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","trigger","defDate","gotoDate","disableWeekends","disableDayFn","nom","setMinDate","setMaxDate","fallback","_d","toDateString","getMoment","setMoment","preventOnSelect","draw","min","max","newCalendar","calendars","firstVisibleDate","lastVisibleDate","visibleDate","setMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","innerHTML","adjustPosition","viewportWidth","viewportHeight","clientRect","leftAligned","bottomAligned","offsetWidth","offsetHeight","innerWidth","documentElement","clientWidth","clientHeight","pageYOffset","pageXOffset","bottom","offsetLeft","offsetParent","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","onejan","isWeekSelected","dayNumber","monthNumber","yearNumber","dayConfig","unshift","destroy","selector","hideLabel","picker","textInput","triggerElem","dateValue","targetDate","calendarLocalization","saveDate","isInitialized","baseUrl","PlayerGamesApi","filtersToUrl","getPlayerGames","gameType","channelId","getGameDetails","gameId","getPendingPayout","payout","winId","accountType","circle","Circle1","Circle2","Circle3","cWrapHeight","cWrapWidth","TableUtils","hasNext","infoDots","filterDictionary","dot","ShowInFooter","Color","hexColor","Name","Calendar","hasPrevious","filters","isActive","hiddenOnMobile","header","offsetEnabled","labels","group","tableHasButton","align","emptyText","hasPayoutExclusion","orderMapping","renderCell","ignoredButton","order","bold","largerOnMobile","hiddenOnEmpty","childContent","subTextMobile","subTextItalic","showArrow","middle","cssClass","headerType","card","rootCtrl","paymentApp","onClick","hasOnClick","allowPrimarySelection","checkForSubscription","newCardLabel","expiredLabel","showCardIcons","canDelete","cardDisplayName","cardName","addNew","cardId","isAssociatedWithSubscription","isApplePay","maskPartialPan","cardNumberObfuscated","cardNumber","expirationDate","setPrimaryCard","dialogDeleteCard","dropdowns","dropdownArray","valueKey","textKey","mapStatusColor","dots","tableHeaderRender","playerChannels","Channels","Filters","playerPeriods","Periods","playerVerticals","Verticals","formattedChannels","periods","verticals","channels","paramKey","string","getData","releasePokerWinnings","mapping","dictionaryPlaceholders","GameName","typeDisplayName","Deposit","Withdrawal","Wager","Win","Reservation","BankDeposit","AbandonedWithdrawal","RejectedWithdrawal","mapTypeDisplayName","transaction","setting","Type","TypeId","Status","typeText","matchingSubType","SubTypes","subtype","SubType","SubTypeId","placeholderName","replacePlaceholderInDictionary","playerTransactionsPeriods","playerTransactionsTypes","TransactionTypes","types","formatAmountWithPrefix","PlayerTransactionsApi","getPlayerTransactions","getTransactionDetails","transactionId","cancelPendingPayout","getCancelPayoutExclusion","footer","boxItem","visible","link","toggle","children","marking","markingType","baseTemplate","arrow","subtext","boxFooter","belowMinimumAmount","MinAmount","aboveMaximumAmount","MaxAmount","contentProp","filledContent","currentContent","formattedKey","ReceiptPage","clearInterval","interval","loadingProps","button2","setInterval","actualTime","CustomInput","helptext","onblur","onkeyup","forceNumeric","floatLabel","postfix","inlinepostfix","iconCallback","setfocus","setcaret","rightpad","spellcheck","maxlength","func","wait","immediate","debouncedFunction","callNow","clearTimeout","hasfocus","updateFocus","hasFocus","oninput","patternMatchedValue","shouldTransformLabel","autocomplete","currentFocus","getCurrentFocus","listItems","addActive","removeActive","closeAllLists","getElementsByClassName","autocompleteItems","haserror","getElementsByTagName","inputText","smaller","permanent","onfocus","click","setSelectionRange","ignoreIndex","onmouseover","RecaptchaHelper","reCaptchaCallback","inited","checkboxAttr","initialized","changeState","minimumCardAmount","currentCard","cards","minimumAmount","minimumBonusCodeDepositAmount","bonusCodeMinimumDeposit","maxAmount","minimumDepositAmount","isAboveDailyGlobalLimit","isAboveWeeklyGlobalLimit","isAboveMonthlyGlobalLimit","onchangeCallback","currentElement","appendFiles","fileArray","files","newValue","disabledSelect","disabledUpload","hideSelect","hideSave","uploadButtonLabel","saveButtonLabel","accept","triggerFileSelection","uploadState","currentStep","totalSteps","routes","setClass","elementClass","steps","stepViews","Model","customValidators","CommonCustomValidators","ValidationModel","_content$maxLimits","_content$maxLimits2","_content$maxLimits3","_content$maxLimits4","_content$maxLimits5","_content$maxLimits6","_content$maxLimits7","_content$maxLimits8","_content$maxLimits9","uploadDocumentSettings","isSubscriptionFlow","paymentLink","upgradeLink","dsloginLink","ConfirmWithLoginLink","stepRoutes","OrderNemIdLink","ForgotNemIdCodeLink","jossosessionId","countries","cities","securityQuestions","uploadFilePurposes","allowNoLimitsSet","minLimitAmount","ignoreMinDepositLimitValidation","maxLimits","daily","MaxDaily18To19","weekly","MaxWeekly18To19","monthly","MaxMonthly18To19","MaxDaily20To24","MaxWeekly20To24","MaxMonthly20To24","MaxDaily","MaxWeekly","MaxMonthly","rxname","phoneCountryCode","PhoneCountryCode","Country","Phonenumber","city","ZipCode","City","question","MappingNumber","Question","UserAlreadyRegistered","UsernameAndEmail","PasswordRepeat","FirstName","LastName","Road","HouseNumber","PostNumber","AcceptNewsLetter","AccecptGameScan","AcceptConditions","AmountPeriod","Amount","CustomerAgeGroup","SecurityAnswer","SecurityQuestion","UploadFilePurpose","SelectedPurposes","getResponse","reset","amountPeriod","customerAgeGroup","maxLimit","AMOUNT","numberFormat","PERIOD","isCprAlreadyExist","loginResponse","customerInfo","userName","prevLoginTime","radioAttr","find","buttonsElements","limits","current","MAX_SAFE_INTEGER","isOperator","isDailyValidRelatively","isWeeklyValidRelatively","isMonthlyValidRelatively","isLimitEmpty","isEqualToFuture","future","isAlreadyDeleting","isDeleting","canBeUnset","futureDate","maxWeekly","maxDaily","week","maxMonthly","canMonthlyBeUnset","initial","storedValue","isReverting","canWeeklyBeUnset","canDailyBeUnset","hasIcon","controls","setData","associatedData","LoginCache","AccountCustomValidators","currentUser","TryGetPropertyValue","propertyName1","ifundefined","names","shift","getUserObj","IsNemID","FullName","UserName","Alias","PasswordCurrent","CardsValue","CardsList","Account","loggedInWithNemId","isPasswordTokenValid","changePassword","passwordRepeat","NewPassword","NewPasswordRepeat","Token","Animator","transitionCallback","currentLevel","prepareTransition","overflowX","paddingTop","calculateOffset","minHeight","overflowY","endTransition","slideIn","transition","transform","zIndex","removeProperty","slideOut","overflow","level","_ref","consent","toggleFn","randomIdPostFix","_ref2","_consent$mainConsents","_consent$mainConsents2","_consent$subConsents","allMainConsentsSelected","mainConsents","mainConsent","subConsents","subConsentsTitle","subConsent","NotificationsApi","LoadDots","initialData","submitLoading","recentlyUpgraded","ignoreResponse","permissionEmail","EmailPermission","permissionRetail","RetailPermission","winSMS","SmsWinnerNotificationPermission","winEmail","EmailWinnerNotificationPermission","submit","referenceId","trackChanges","pushHashAsVirtualPage","toggleEmail","oldData","newData","viewModel","Channel","GameId","GameDisplayName","WagerStatus","CanRebuy","CouponUrl","HasValidCouponUrl","Text","Link","SubscriptionId","Fees","CreatedAt","redirectBack","printReceipt","contentWindow","print","resizeIframe","scrollHeight","setWidthAndHeight","totalVerticalMargin","totalHorizontalMargin","scrollWidth","timesCheckedForChangeInIframe","checkForContentChangeInIframe","resizeMessageHandler","GAME","includes","frameborder","allowfullscreen","CrossWindowEvents","RouteParam","Mapping","TableList","TableListHeader","TableListFooter","Dropdown","filtersAplied","payoutModel","winAmount","activeRightMenuSelector","filterCallback","channel","game","bank","ActiveColor","InactiveColor","quickFilter","quickFilterArray","Label","FilterKey","headerOptions","loadingProp","redirectUrl","fire","receiptData","Headline","Abstract","ButtonText","payoutDialog","cannotRebuyDialog","gameName","getButton","playerGame","CanBePaidOut","ExternalId","lastPurchaseDate","changeProperty","cutoverDate","urlParams","startUrl","betIdParam","IsPlayTogetherGame","setSelection","selection","tableHeader","playerGames","PlayerGames","formattedGames","formattedDate","drawDate","channelType","WinStatus","payoutAvailable","gameColumnSubText","gameVariant","GameVariant","wins","Wins","physicalPrizes","win","physicalPrizeTexts","physicalPrize","Description","Value","WagerSetOrder","multipleDraws","DAY","DAYSTOTAL","eurojackpotGameChangeDate","DrawDate","DRAW","DRAWTOTAL","WEEK","WEEKTOTAL","DATE","ShowDetail","loadQuickSelection","HasPrevious","HasNext","dependencies","deps","dependency","depDeferred","res","sync","balanceApi","pageModel","pageDictionary","infoModalContent","TotalBalance","valueStr","balance","updateTopMenuBalance","showPokerWinningsDialog","showBonusDialog","showBingoBonusDialog","OperationSuccess","ErrorMessage","PrimaryBalance","Bonus","BINGO_BONUS_ENABLE","BingoBonus","ReservedAmount","Box","Currency","Src","RejectedAt","Balance","TransactionId","StatusDisplayName","CanBeCancelled","PaymentMethodType","PaymentMethodAccountNumber","PaymentMethodBankName","PaymentMethodCardNumberObfuscated","PaymentMethodCardType","PaymentMethodExpirationDate","paymentMethodDisplayName","ACCOUNT","hasCancelPayoutExclusion","columnLabels","createCancelModal","receiptButtonText","getCancelPayoutExclusions","exclusions","playerTransactions","PlayerTransactions","formattedTransactions","playerTransaction","TransactionStatuses","amountFormatted","balanceFormatted","transactionType","AccountDisplayName","BankAccountType","PendingPayout","PendingPayoutAmount","PendingPayoutExist","currentInputValue","dictionaryString","transactionsCount","limitExceeded","maxPaymentCount","formatValue","minimumLimitValue","maxPaymentCountFinalWarning","maxPaymentCountWarning","progression","opacity","infoRibbon","userHasSetLimit","REMAINING","LIMIT","activeOption","iconWidth","iconName","cardType","trackCSR","trackAccountHistory","depositDisabled","depositCountResult","depositResult","responsibleGamingLink","accountHistoryLink","onStepRendered","ignoredElement","getTransactionStatus","bonusCode","code","savedCard","restart","receiptCallback","orderId","fee","total","cardtype","currentSelection","formatExpirationDate","makePayment","gotoReceipt","OverlayContainer","RealityCheckOverlay","VisualLimitWithCounter","PaymentOption","mobilePay","applePay","googlePay","storedCards","newCardFlow","missingAmount","getMinimumDepositAmount","isQuickDeposit","showAllPaymentOptions","primaryChoices","_ref3","_asyncToGenerator","choice","sanitizedCardName","_x","usePaymentOption","isDropdownChoiceCard","dropdownChoices","partialPan","trackInfoAboutStoredCards","eventAction","hasStoredCards","eventLabel","curSel","minAmount","canInput","barredFromPayment","isUserAuthenticated","renderCtaButton","ctaText","createPayment","needsLimit","limitsMissingModal","displayNotification","gotoConfirm","userCannotMakePayments","visualizeLimit","userInfo","inputChoices","selectedInputChoice","resetSelectedInputChoice","isLoggedInWithNemID","mustVerifyPassword","required","isDLIContext","initiateBonusCodeFlow","manageStoredCards","activeStoredCards","preferedCard","GlobalUtils","bonusCodeValid","amountPeriodValue","resetBonusCode","hasSetLimit","maxNumberOfCreditCards","cardTypes","saveCard","externalId","isFromFaroe","mustVerifyNemID","checkResponsibleGaming","showInfoMessage","getNumberFromAmount","isSavedCard","getCardTypesMapped","provider","getStoredCardsMapped","expiredText","getCardsMapped","inputValueCents","getFloatFromAmount","validateCard","cardBarred","getAmountLimits","getAmountLimitPeriods","getDeposit","depositId","verifyBonusCode","Code","MinimumDepositAmount","RequiredDepositAmount","claimBonusCode","formatCardNumber","pageBox","firstName","FIRSTNAME","errorCodeMapping","errorCode","dictionaryPath","Receipt","ReceiptData","PaymentApi","IsValid","invalidBonusCode","errorTexts","getErrorCodeOptions","spawnBonusCodeErrorModal","overlay","start","success","createBonusCodeImmediateModal","reepayUrl","CARD_PAYMENT","BS_PAYMENT","paymentType","paymentDetails","PaymentData","AuthorizationToken","makeAuthorizationToken","contextType","acceptUrl","cancelUrl","ledger","preauth","drawingPeriod","authorize","getCurrentPaymentDetails","getPaymentMethod","paymentMethodId","CustomUpload","purpose","file","purposes","identifier","purposeSelected","hasError","selectFiles","filesSelected","allowClose","removePurpose","alt","svg","clearFiles","selectPurpose","VisibleInDropdown","Identifier","Purpose","StepGuide","rootctrl","stepMax","stepFields","tryContinue","_window$dataLayer","_self$model$fields$Am","dataLayer","brand","checkEnter","selectLimit","ageGroup","stylePeriod","formatAmountPeriodLabel","tooltip","FileUploadItem","Api","InfoRibbon","allowed","isRegisterFlow","previews","uploadProgress","uploadCheck","hasPending","selectedPurposes","dropdownVisible","requires","paramsLoaded","headline","proofRequest","shouldSelectBeDisabled","getFiles","MaxNumberOfFiles","shouldUploadBeDisabled","anyFilesAboveLimit","MaxFileSize","hasTooManyFiles","extendFile","URL","createObjectURL","validatePurpose","displayErrors","allFiles","FAILEDFILE","MAXFILESIZE","fileType","MAXFILES","USERFILES","getDescription","getPurposeByIdentifier","matchingPurpose","uploadFilePurpose","closeable","fileUploadPurpose","selectedPurpose","Header","loadPending","HasDocuments","saveFiles","foundInvalidPurpose","FormData","l","append","_window$dataLayer$","eventSyntax","category","extractParams","requiresParams","require","populatePurposes","MandatoryIfPresent","PRETTYPREFIX","IsUploadEnabled","NoUploadText","NoUploadLink","NoUploadButtonText","Storage","SitecoreAuth","loginMethod","dsPrettyPrefix","lockedParams","isExistingPlayer","storedUserName","set","_window$dataLayer$2","_window$dataLayer$3","requiredParams","pushVirtualPage","_window$dataLayer$4","_window$dataLayer$6","_window$dataLayer$5","isRetailAccount","USERNAME","_window$dataLayer$7","DSLOGINPREFIX","pushGaEventOnPageRedirect","forward","createAccount","checkDanishCpr","signupSuccessUrl","sdkVersion","callbackUrl","Locked","EncryptedData","ExistingFaeroe","existingFaeroe","_window$dataLayer$8","CustomCheckbox","dawaApiBase","dawaBaseUrl","dawa","road","splitAddress","address","roadEntry","tekst","adresse","vejnavn","husnr","postnr","postnrnavn","splitDawaZipAndCity","ptext","getDawaRoad","roads","formatCpr","formattedCpr","_window$dataLayer2","getPhoneCountryCode","newsletterFragment","elements","newsletterContent","currentCountryCode","_window$dataLayer$9","gotoLogin","showLimitWarning","SavedMaxWeekly","SavedMaxMonthly","SavedMaxDaily","_date","confirmChecksum","restrictAccount","todayDate","formattedTodayDate","headersObj","timezoneOffset","getTimezoneOffset","RestrictAccountEndDate","UtcMinutesOffset","closeAccount","confirmDictionary","cancel","cancelCallback","confirmCallback","lockAccount","newDaily","newWeekly","newMonthly","hasLimits","isGlobal","isOperatorButLoweredByUser","othersActive","plannedValue","isNew","isPending","isEdit","periodMappings","userHasDefinedMax","maxFunc","isOperatorButUserHasLoweredTheAmount","setLimits","setWagerLimits","setAmountLimits","acknowledge","messageIds","Messages","blockPayout","blockPayoutDisabledByDS","userObj","exclusionCooldown","blockPayoutExclusionTimer","withdrawalExclusions","AppliedUntil","Reason","getHoursBetweenDates","toggleExclusion","ExclusionId","catch","showModal","getExclusionEndtimeString","weekday","subheader","dato","Params","MyPageData","Card","Payment","Alerts","addCard","deleteCard","servererror","slideClass","shouldReturnToSubscriptionFlow","detect","shouldReturnToSubscriptionFlowType","createSubscriptionFlowLink","createSubscriptionFlowLabel","mySubscriptionsUrl","alert","requestAddNew","dialogAddNewCard","paymentUrl","showDialog","cardid","IsPrimaryCard","backToOverview","backToCreateSubscriptionFlow","handleNavigationHeader","getNavigationHeaderLabel","primaryCards","additionalCards","nocards","initialProps","allowSetAlias","hasReturnUrl","isSaved","userHasAlias","isPromptShowing","changePasswordPromptText","changePasswordRequiredPopup","lastName","setTrackingInfo","sessionStorage","trackingType","changePasswordPrompt","prompt","IsWrongCurrentPassword","links","errorMessage","statusMessage","stepCurrent","stepLabels","notifyLabel","stored","separate","limitElement","VALUE","AmountLimitInput","deleteLimit","onKeyUp","which","itemLabel","periodLabel","currentLabel","createLabel","plannedAt","idPrefix","helpStatusLabel","showDeleteLimit","limitIsDeletable","limitIsNotUpdating","limitIsNotSetByOperator","newLimit","planned","addNewLabel","changeLabel","operatorLabel","addLabel","othersIsNew","optionalLabel","PlannedAt","PlannedValue","valueLabel","valuePostfix","dictionaryText","replaceState","onpopstate","reload","points","fill","stroke","select","selectedLimit","proceed","previous","ConfirmPage","defaultCallback","getPlayCard","getVisualPlayCard","orderPlayCard","Component","Toggles","consents","latestChanges","isLoggedIn","isWebViewInLottoApp","webViewShowIdentifiers","_ref5","_ref4","changes","updatedState","_consent$subConsents2","change","_consents","_consent$mainConsents3","_consent$subConsents3","_x2","retryLatestChange","_ref6","_ref8","identifiers","formatConsentText","textActions","_action$type","replaceAll","highlight","addToggleToConsents","_ref9","errorHandling","fn","hasTitleIcon","titleIcon","subTitle","Notifications","RouteSlide","ignoredRoute","ignoredSettings","ignoredProperty","mode","PlayerGamesDetails","DefaultPage","DefaultPeriod","Key","DefaultOffset","DefaultVertical","DefaultChannel","vikinglottoPriceChangeDate","VikinglottoPriceChangeDate","EurojackpotGameChangeDate","defaultRoute","PlayerTransactionsBalance","PlayerTransactionsDetails","DefaultTransactionType","StatusColors","t","NumberUtils","DataSettings","PayoutModel","dependencyData","Payout","confirmCallbackRoute","dialog","cancelPendingPayoutDialog","cancelPayoutBlocked","cancelPayoutBlockedByDs","executePayout","pendingPayoutRibbon","getAmountValueFromString","_amount$match","savedModel","exclucion","hour","minute","showConfirmationDialog","pendingPayoutAmount","totalPayout","decimals","requestToExecutePayout","_data$customerInfo","PAYOUT_CONFIRM_ENABLED","secureLoginValid","newUrl","forceUpdate","identityConfirmMethod","isAccountNumber","displayAccountName","bankAccountType","account","requiresMitIDConfirmation","_LoginCache$getUserOb","isATestingAccount","subscribe","pendingPayoutAmountDecimals","maxAmountDecimals","payoutButtonText","DSUtils","PaymentHelper","PaymentUtils","PaymentModel","Step1","Step2","Step3","CardNumberModal","CardExpirationModal","CardCCVModal","UpgradeAccountModal","LimitsMissingModal","TransactionDeclinedModal","BonusCodeFlow","BonusCodeImmediateDepositReceipt","isWebview","QuickLinks","redirectLinks","routeMap","paymentDone","allowStoredCards","syncApiCalls","hasShownRibbon","alwaysShowVisualLimit","payment","transactionStatuses","amountLimitsExceeded","transactionsCountExceeded","limitPeriod","denyAccess","go","_response$SavedUserDe","_response$SavedUserDe2","SavedUserDepositLimits","limitFound","PlayerDefinedDepositLimitFound","_this$model$limit$Typ","barredFromPayments","RemainingValue","receiptInfo","cardSaved","paymentInfo","calls","upgradeAccountModal","webviewDisabled","cardTypesDropdown","availableCards","cardNumberModal","cardExpirationModal","cardCCVModal","upgradeAccountUrl","selectLimitUrl","getBonusCode","lookForBonus","transactionStatus","RestartDepositFlow","restartFlow","noCurrentQueryParams","queryParameters","receiptFallback","currentBrandUrl","showInfoRibbon","_this$currentSelectio","info","showingRibbon","remaining","mostRestrictiveLimit","showExclamationMarkIcon","paymentMethodTracking","_this$model$fields$ac","purchaseComplete","prefillAmount","formattedAmount","setAmount","payType","timer","oldBalance","newBalance","fetchLimitCount","amountSpent","limitCount","remainingCount","transferUrl","conditionsUrl","bottomText","IsLoggedIn","CallToActionUrl","paymentMethod","startsWith","paymentData","EnsightenTrackingLabel","SuccessHeader","SuccessDescription","CallToActionLabel","CallToActionEnabled","PendingHeader","PendingDescription","IncompleteHeader","IncompleteDescription","RegisterModel","Upload","DsUtils","PostLogin","Limit","generalErrorDictionary","DawaBaseUrl","showLoggedInDialog","referrer","PaymentLink","UpgradeLink","UploadDocumentSetting","RecaptchaEnabled","AllowNoLimitsSet","IgnoreMinDepositLimitValidation","MaxLimits","showLoginDialog","URLSearchParams","lockedDate","Restrict","LockedDate","restrictAccountLink","RestrictAccountLink","closeAccountLink","CloseAccountLink","Data","ConfirmRestriction","ReceiptComponent","restrictDateFromStorage","restrictStateFromStorage","daySelected","calendarSelected","unlimitedSelected","calendarStartDate","calenderEndDate","_ref10","RedirectReciptLink","logout","redirect","_ref11","restrictionCallbackRoute","calendarUnfolded","needsConfirmationWithLogin","storedDate","restrictForDay","restrictByCalendar","restrictUnlimited","storeDate","_currentUser$customer","calendarDate","isNemId","displayConfirm","PamUtils","AmountLimitsModel","AmountLimit","ConfirmComponent","confirmData","dependencyType","DependencyDataIdentifier","saved","AmountLimits","DictionaryRoot","confirmationHeadline","receiptHeadline","receiptDefaultDelete","responsibleGaming","ResponsibleGaming","responsibleGamingShown","playerDefinedDepositLimits","funnelTracking","funnelFlow","showGeneralValidationError","SelectUrl","getLimit","limitIdentifier","sitecoreMaxLimit","pamMaxLimit","Max","MAX_VALUE","valueIsMax","IsOperator","IsGlobal","IgnoreMininumLimitValidation","MinimumAmount","currentLimits","isDirty","tracking","changed","savedMaxMonthly","newMaxMonthly","TrackAmountLimitChanges","savedMaxWeekly","newMaxWeekly","savedMaxDaily","newMaxDaily","oldValue","nameValue","parseSettingsForOverlay","formValueData","dailyText","weeklyText","monthlyText","listenForDirtyFormFields","_targetElement$closes","targetElement","formValuesChanged","closest","clearGeneralValidationError","buttonContainer","RedirectUrl","ReturnUrl","activeLabel","deleteHeadline","BUTTON","isDesktop","SelectLimitsModel","Step0","Step4","PlayerDefinedLimitFound","goToConfirm","validation","trackingMessage","ProceedUrl","accepted","messages","Acknowledgement","acceptMessage","currentState","allAccepted","BodyText","MyPageModel","MyPageOverview","MyPagePassword","MyPageEmail","MyPagePhone","MyPageAlias","MyPageCards","MyPageAccount","PaymentPageUrl","CreateSubscriptionFlowLink","CreateSubscriptionFlowLabel","MySubscriptionsLinkURL","mySubscriptionsTitle","MySubscriptionsLinkTitle","MaxNumberOfCreditCards","ChangePasswordRequiredPopup","BlockPayoutExclusionTimer","getAccountData","getActiveSubscriptions","subscriptions","fundingMethodIds","subscription","templateState","fundingPaymentMethod","fundingPaymentMethodId","requests","ChangePasswordApi","ChangePasswordModel","isValid","ResetTokenIsValid","validateFields","submitPermissionLoading","noPermissionLoading","currentTarget","setAccept","TermsConsent","submitPermissionButtonText","noPermissionButtonText","receiptTitle","receiptDescription","PlayCardApi","accountNumber","AccountNumber","CardNumber","ExpirationDate","showOrderPlayCardButton","PaymentAccount","ShowOrderPlayCardButton","faqQuestions","opened","pamPage","startTime","appComplianceBar","styles","TimeUtils","loginAtTime","waitSecondsForLoginAtTime","timeStampEl","hiddenBalanceEl","hasHiddenBalance","setTimeAndBalance","_userObj$customerInfo","loginAt","getLoginAtTime","innerText","timeSinceOrCurrentTime","setAvailableBalance","pad","dateStr","givenDate","getCurrentDateTime","hours","minutes","seconds","getSeconds","formatTime","diff","_LoginCache$getUserOb2","availableBalance","balanceEl","Intl","NumberFormat","currency","getPlayerWagerDays","getPlayerTransactionStats","optionalLink","Target","variant","isLoading","onFocus","buttonText","iconClass","elemType","Loader","BoxHeader","PlayerStatTransactionsApi","headerOptionalLink","headerSubText","footerText","paymentLabel","payoutLabel","headerLink","paymentAmount","payoutAmount","calculateVisualSize","initialize","depositAmount","withdrawalAmount","postMessage","minWidth","PAMUtils","ctaTitle","secondCtaTitle","image","ctaLink","secondCtaLink","notificationType","AlternateText","_footerLinks$0$Link","_footerLinks$","_footerLinks$1$Link","_footerLinks$2","amountLimitType","amountLimitLink","amountLimitEditTitle","footerLinks","availableBalanceLabel","reservedBalanceLabel","amountLimitLinkToUsersWithNoLimits","showBalance","showAmountLimits","payoutLink","amountLimits","userHasNoLimits","calculatePercentage","percentage","_controller$userInfo","restrictedBalance","numberOfDays","latestAvailableDay","calendarDays","wagerDayCount","prepareDates","prependEmptyCells","appendEmptyCells","calendarDateArray","calendarCells","mapWagerDatesToCalendarDates","wagerDates","paddedDate","paddedMonth","dateFormatSimilarToApi","wagerDate","weeks","COUNT"],"mappings":"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","file":"region-player-account-management.js","sourcesContent":["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/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('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('DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/Button', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils'\r\n], function (m, Svg, Utils) {\r\n\r\n const Button = (props) => {\r\n const { config, type, variant, isLoading, isDisabled, className, onFocus, onClick, buttonText, icon, href, iconClass = '', uiTestId = 'pam-button' } = props;\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 if (!Utils.isTopFrame()) {\r\n attributes.target = '_top';\r\n }\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 'pam-button',\r\n isDisabled ? 'is-disabled' : null,\r\n isLoading ? 'is-loading' : null,\r\n variant ? `pam-button--${variant}` : null,\r\n className ? className : null\r\n ].join(' '),\r\n onfocus: function () {\r\n if (typeof onFocus === 'function') {\r\n onFocus();\r\n }\r\n },\r\n onclick: function (e) {\r\n if (href) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n if (typeof onClick === 'function') {\r\n onClick();\r\n }\r\n },\r\n 'aria-label': buttonText,\r\n 'data-uitest-id': uiTestId,\r\n }), [\r\n icon ? Svg(icon, {\r\n class: ['pam-button__icon', iconClass].join(' '),\r\n href: '/Components/DanskeSpil/Domain/PlayerAccountManagement/Graphics/SpriteSheets/MyProfile.svg'\r\n }) : null,\r\n m('span', {\r\n 'data-text': buttonText,\r\n class: 'pam-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/Svg', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n 'use strict';\r\n /*\r\n Example Usage: Svg('arrow_big_down', { class: 'hi', height: 18, width: 18 });\r\n */\r\n return function svgTemplate(svgName, options) {\r\n\r\n var props = {\r\n class: 'sprite-symbol' + (options && options.modifiers ? options.modifiers.map(function (modifier) { return ' sprite-symbol--' + modifier; }) : ''),\r\n xmlns: 'http://www.w3.org/2000/svg',\r\n ...options\r\n };\r\n\r\n return m('svg', props, [\r\n m('use', {\r\n href: (props && props.href ? (props.href.substring(props.href.length - 1) === '#' ? props.href : (props.href + '#')) : '/Components/DanskeSpil/Framework/PlayerAccountManagement/Graphics/SpriteSheets/PamUiKit.svg#') + svgName\r\n })\r\n ]);\r\n };\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Dictionary'\r\n], function (Dictionary) {\r\n var dict = new Dictionary('/PlayerAccountManagement');\r\n return dict;\r\n});\r\n","defineDs('Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n var activeOverlays = [];\r\n\r\n // Context:\r\n var Overlay = function (template) {\r\n\r\n // Variables:\r\n this.template = template;\r\n this.$container = m.prop();\r\n this.$wrapper = m.prop(document.getElementById('wrapper'));\r\n this.$wrapper().classList.add('modal-wrapper');\r\n\r\n var $overlayElement = m.prop();\r\n\r\n this.$overlayElement = $overlayElement;\r\n\r\n // Functions:\r\n this.clear = function () {\r\n var $container = this.$container();\r\n var $wrapper = this.$wrapper();\r\n var deferred = m.deferred();\r\n m.startComputation();\r\n\r\n var removeOverlay = function () {\r\n if ($container && $container.parentNode) {\r\n $container.parentNode.removeChild($container);\r\n if (activeOverlays.length > 0) {\r\n var lowerOverlay = activeOverlays[this.index - 1];\r\n if (lowerOverlay && lowerOverlay.template) {\r\n lowerOverlay.template.class('');\r\n }\r\n }\r\n }\r\n m.endComputation();\r\n deferred.resolve();\r\n }.bind(this);\r\n\r\n // Remove overlay from collection\r\n activeOverlays.splice(this.index, 1);\r\n\r\n removeOverlay();\r\n m.redraw(true);\r\n\r\n if (activeOverlays.length === 0) {\r\n $wrapper.className = $wrapper.className.replace('overlay-active', '');\r\n }\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n var handleClose = function () {\r\n return this.clear();\r\n }.bind(this);\r\n\r\n this.handleClose = handleClose;\r\n\r\n this.render = function () {\r\n var $component = m.component({\r\n controller: template.controller ? template.controller : function () {\r\n this.handleClose = handleClose;\r\n this.$overlayElement = $overlayElement;\r\n },\r\n view: template.view ? template.view : function () {\r\n return template.render(this.handleClose, this.$overlayElement);\r\n }.bind(this)\r\n }, { handleClose: this.handleClose });\r\n\r\n m.mount(this.$container(), $component);\r\n\r\n }.bind(this);\r\n\r\n this.show = function (e) {\r\n if (e) e.preventDefault();\r\n\r\n var $overlay = document.createElement('div');\r\n this.$container($overlay);\r\n document.body.appendChild(this.$container());\r\n this.render();\r\n\r\n activeOverlays.push(this);\r\n this.index = activeOverlays.length - 1;\r\n\r\n this.$wrapper().classList.add('overlay-active');\r\n /*\r\n This takes all overlays, if there is more than 1,\r\n then take all other overlays in array and add\r\n specific class to it, if the current is the one on top\r\n */\r\n if (activeOverlays.indexOf(this) === activeOverlays[activeOverlays.length - 1].index && activeOverlays.length > 1) {\r\n var otherOverlays = activeOverlays.slice(0, activeOverlays.length - 1);\r\n otherOverlays.forEach(function (otherOverlay) {\r\n otherOverlay.template.class('is--behind-other-modal');\r\n });\r\n m.redraw(true);\r\n }\r\n }.bind(this);\r\n\r\n return this;\r\n };\r\n\r\n // Public functions:\r\n return Overlay;\r\n });\r\n","defineDs('Shared/Framework/Mithril/Scripts/Templates/OverlayContainer',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var OverlayContainer = function (template) {\r\n\r\n // Variables:\r\n this.$container = m.prop();\r\n this.$wrapper = m.prop(document.getElementById('wrapper'));\r\n\r\n // Functions:\r\n this.clear = function (action) {\r\n var self = this;\r\n\r\n return function () {\r\n var $container = self.$container();\r\n var $gameOverlay = document.querySelector('.'.concat(template.class().split(' ').join('.')));\r\n var $wrapper = self.$wrapper();\r\n\r\n $gameOverlay?.classList.add('remove-overlay');\r\n\r\n $wrapper?.classList.remove('overlay-active');\r\n $wrapper?.classList.add('remove-overlay');\r\n\r\n if ($gameOverlay && !$gameOverlay.getAttribute('data-binded')) {\r\n // Bind the event only once\r\n $gameOverlay.setAttribute('data-binded', 'true');\r\n $gameOverlay.addEventListener('animationend', function () {\r\n if ($container && $container.parentNode) {\r\n $container.parentNode.removeChild($container);\r\n }\r\n\r\n $wrapper?.classList.remove('remove-overlay');\r\n\r\n if (typeof action === 'function') {\r\n action();\r\n }\r\n\r\n m.redraw();\r\n });\r\n\r\n\r\n }\r\n };\r\n }.bind(this);\r\n\r\n this.render = function (confirm, dismiss) {\r\n var $overlay = document.createElement('div');\r\n var render = template.render(this.clear(confirm, 'confirm'), this.clear(dismiss, 'dismiss'));\r\n\r\n m.render($overlay, render);\r\n\r\n this.$container($overlay);\r\n }.bind(this);\r\n\r\n this.show = function (confirm, dismiss) {\r\n this.render(confirm, dismiss);\r\n\r\n this.$wrapper()?.classList.add('overlay-active');\r\n\r\n document.body.appendChild(this.$container());\r\n }.bind(this);\r\n\r\n };\r\n\r\n // Public functions:\r\n return OverlayContainer;\r\n\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/Framework/PlayerAccountManagement/Scripts/Helpers/Request', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, ApiRequest, ModalDialog, Overlay, Dictionary, LoginController, Svg, Ensighten) {\r\n\r\n\r\n var errorMapping = {\r\n Title: 'errorTitle',\r\n Detail: 'Message',\r\n Id: 'errorId'\r\n };\r\n\r\n var Request = function (args) {\r\n\r\n var options = {};\r\n Object.keys(args).forEach(function (key) {\r\n options[key] = args[key];\r\n });\r\n\r\n var showErrorModal = function (response, closable) {\r\n var ensigtenErrorId = response.errorId ? response.errorId.substring(0, 9) : response.ErrorCode;\r\n Ensighten.pushGaEvent('errorMessage', ensigtenErrorId);\r\n\r\n var d = Dictionary.get.bind({ prefix: 'GeneralErrorHandler/' });\r\n Dictionary.ready.then(function () {\r\n var dialogcontent = [\r\n response && response.modalIcon ? Svg(response.modalIcon) : null,\r\n m('h1', (response && response.errorTitle) || d('Headline')),\r\n m('p', m.trust((response && response.Message) || d('BodyText'))),\r\n response && response.errorId ? m('p', d('DetailedErrorText', { ID: response.errorId })) : null\r\n ];\r\n\r\n new Overlay(ModalDialog(dialogcontent, {\r\n closable: closable,\r\n buttons: [\r\n {\r\n text: d('ButtonText'), callback: function (close) {\r\n\r\n close();\r\n }\r\n },\r\n ]\r\n })).show();\r\n });\r\n };\r\n\r\n var formatErrorResponse = function (response) {\r\n var message = {\r\n modalIcon: 'round_big_alert'\r\n };\r\n\r\n if (response.errors && response.errors[0]) {\r\n Object.keys(response.errors[0]).forEach(function (key) {\r\n var newKey = errorMapping[key];\r\n if (newKey) {\r\n message[newKey] = response.errors[0][key];\r\n }\r\n });\r\n }\r\n\r\n return message;\r\n };\r\n\r\n options.deserialize = function (value) {\r\n var returnVal;\r\n try {\r\n returnVal = JSON.parse(value);\r\n } catch (e) {\r\n returnVal = value;\r\n }\r\n return args.deserialize ? args.deserialize(returnVal) : returnVal;\r\n };\r\n\r\n options.unwrapSuccess = function (response) {\r\n if (response.status !== 'success') {\r\n response.modalIcon = 'round_big_alert';\r\n showErrorModal(response);\r\n }\r\n return args.unwrapSuccess ? args.unwrapSuccess(response.data) : response.data;\r\n };\r\n\r\n options.unwrapError = function (response, headers) {\r\n if (window.sitecoreEnv) {\r\n return;\r\n }\r\n\r\n if (typeof args.unwrapError === 'function') {\r\n return args.unwrapError(response.errors, headers);\r\n }\r\n\r\n var error;\r\n\r\n switch (headers.status) {\r\n case 401:\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: window.location.origin\r\n });\r\n break;\r\n case 403:\r\n error = formatErrorResponse(response);\r\n\r\n return showErrorModal(error, false);\r\n case 422:\r\n // Used for inline validation responses\r\n if (args.preventModal) {\r\n return response;\r\n }\r\n\r\n error = formatErrorResponse(response);\r\n\r\n return showErrorModal(error);\r\n default:\r\n error = formatErrorResponse(response);\r\n\r\n return showErrorModal(error);\r\n }\r\n };\r\n\r\n return ApiRequest(options);\r\n\r\n };\r\n\r\n return Request;\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Texts',\r\n function () {\r\n\r\n var getTexts = function (d, dPath, noTitle, noSubtitle, noText, noCtaLabel) {\r\n // if dPath is an object, it should already be formatted with correct output\r\n if (typeof dPath === 'object' && !Array.isArray(dPath)) {\r\n return dPath;\r\n }\r\n\r\n dPath = dPath || '';\r\n var dictionaryOptions = {};\r\n\r\n // if dPath is an array, then we need to get the option keys\r\n if (Array.isArray(dPath)) {\r\n dictionaryOptions = dPath[1];\r\n dPath = dPath[0];\r\n }\r\n\r\n var title = noTitle ? null : d(dPath + 'Title', dictionaryOptions);\r\n var subtitle = noSubtitle ? null : d(dPath + 'Subtitle', dictionaryOptions);\r\n var text = noText ? null : d(dPath + 'Text', dictionaryOptions);\r\n var ctaLabel = noCtaLabel ? null : d(dPath + 'CtaLabel');\r\n\r\n // if dictionary does not exist, return empty string\r\n if (typeof title === 'object') title = null;\r\n if (typeof subtitle === 'object') subtitle = null;\r\n if (typeof text === 'object') text = null;\r\n if (typeof ctaLabel === 'object') ctaLabel = null;\r\n\r\n return {\r\n title: title,\r\n subtitle: subtitle,\r\n text: text,\r\n ctaLabel: ctaLabel\r\n };\r\n };\r\n\r\n return getTexts;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Alerts',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Texts'\r\n ],\r\n function (m, Texts) {\r\n\r\n var init = function (type) {\r\n var cssModifier = '';\r\n\r\n if (type === 'danger') {\r\n cssModifier = '.alert--danger';\r\n } else if (type === 'warning') {\r\n cssModifier = '.alert--warning';\r\n }\r\n\r\n return function (dPath) {\r\n var texts = Texts(this.d, dPath, false, true, false, true);\r\n\r\n return m('.alert' + cssModifier, [\r\n texts.title ? m('h3.content-size-less-bottom', m.trust(texts.title)) : null,\r\n texts.text ? m('p.content-size-less-bottom', m.trust(texts.text)) : null,\r\n ]);\r\n };\r\n };\r\n\r\n // Public functions:\r\n return init;\r\n });\r\n","/* eslint-disable */\r\n /*!\r\n\t* validate.js 0.11.1\r\n\t*\r\n\t* (c) 2013-2016 Nicklas Ansman, 2013 Wrapp\r\n\t* Validate.js may be freely distributed under the MIT license.\r\n\t* For all details and documentation:\r\n\t* http://validatejs.org/\r\n\t*/\r\n\r\n defineDs('Common/Framework/ScriptLibraries/Scripts/validate', [\r\n ], function () {\r\n\r\n (function (exports, module, define) {\r\n \t\"use strict\";\r\n\r\n \t// The main function that calls the validators specified by the constraints.\r\n \t// The options are the following:\r\n \t// - format (string) - An option that controls how the returned value is formatted\r\n \t// * flat - Returns a flat array of just the error messages\r\n \t// * grouped - Returns the messages grouped by attribute (default)\r\n \t// * detailed - Returns an array of the raw validation data\r\n \t// - fullMessages (boolean) - If `true` (default) the attribute name is prepended to the error.\r\n \t//\r\n \t// Please note that the options are also passed to each validator.\r\n \tvar validate = function (attributes, constraints, options) {\r\n \t\toptions = v.extend({}, v.options, options);\r\n\r\n \t\tvar results = v.runValidations(attributes, constraints, options)\r\n , attr\r\n , validator;\r\n\r\n \t\tfor (attr in results) {\r\n \t\t\tfor (validator in results[attr]) {\r\n \t\t\t\tif (v.isPromise(results[attr][validator])) {\r\n \t\t\t\t\tthrow new Error(\"Use validate.async if you want support for promises\");\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn validate.processValidationResults(results, options);\r\n \t};\r\n\r\n \tvar v = validate;\r\n\r\n \t// Copies over attributes from one or more sources to a single destination.\r\n \t// Very much similar to underscore's extend.\r\n \t// The first argument is the target object and the remaining arguments will be\r\n \t// used as sources.\r\n \tv.extend = function (obj) {\r\n \t\t[].slice.call(arguments, 1).forEach(function (source) {\r\n \t\t\tfor (var attr in source) {\r\n \t\t\t\tobj[attr] = source[attr];\r\n \t\t\t}\r\n \t\t});\r\n \t\treturn obj;\r\n \t};\r\n\r\n \tv.extend(validate, {\r\n \t\t// This is the version of the library as a semver.\r\n \t\t// The toString function will allow it to be coerced into a string\r\n \t\tversion: {\r\n \t\t\tmajor: 0,\r\n \t\t\tminor: 11,\r\n \t\t\tpatch: 1,\r\n \t\t\tmetadata: null,\r\n \t\t\ttoString: function () {\r\n \t\t\t\tvar version = v.format(\"%{major}.%{minor}.%{patch}\", v.version);\r\n \t\t\t\tif (!v.isEmpty(v.version.metadata)) {\r\n \t\t\t\t\tversion += \"+\" + v.version.metadata;\r\n \t\t\t\t}\r\n \t\t\t\treturn version;\r\n \t\t\t}\r\n \t\t},\r\n\r\n \t\t// Below is the dependencies that are used in validate.js\r\n\r\n \t\t// The constructor of the Promise implementation.\r\n \t\t// If you are using Q.js, RSVP or any other A+ compatible implementation\r\n \t\t// override this attribute to be the constructor of that promise.\r\n \t\t// Since jQuery promises aren't A+ compatible they won't work.\r\n \t\tPromise: typeof Promise !== \"undefined\" ? Promise : /* istanbul ignore next */ null,\r\n\r\n \t\tEMPTY_STRING_REGEXP: /^\\s*$/,\r\n\r\n \t\t// Runs the validators specified by the constraints object.\r\n \t\t// Will return an array of the format:\r\n \t\t// [{attribute: \"\", error: \"\"}, ...]\r\n \t\trunValidations: function (attributes, constraints, options) {\r\n \t\t\tvar results = []\r\n , attr\r\n , validatorName\r\n , value\r\n , validators\r\n , validator\r\n , validatorOptions\r\n , error;\r\n\r\n \t\t\tif (v.isDomElement(attributes) || v.isJqueryElement(attributes)) {\r\n \t\t\t\tattributes = v.collectFormValues(attributes);\r\n \t\t\t}\r\n\r\n \t\t\t// Loops through each constraints, finds the correct validator and run it.\r\n \t\t\tfor (attr in constraints) {\r\n \t\t\t\tvalue = v.getDeepObjectValue(attributes, attr);\r\n \t\t\t\t// This allows the constraints for an attribute to be a function.\r\n \t\t\t\t// The function will be called with the value, attribute name, the complete dict of\r\n \t\t\t\t// attributes as well as the options and constraints passed in.\r\n \t\t\t\t// This is useful when you want to have different\r\n \t\t\t\t// validations depending on the attribute value.\r\n \t\t\t\tvalidators = v.result(constraints[attr], value, attributes, attr, options, constraints);\r\n\r\n \t\t\t\tfor (validatorName in validators) {\r\n \t\t\t\t\tvalidator = v.validators[validatorName];\r\n\r\n \t\t\t\t\tif (!validator) {\r\n \t\t\t\t\t\terror = v.format(\"Unknown validator %{name}\", { name: validatorName });\r\n \t\t\t\t\t\tthrow new Error(error);\r\n \t\t\t\t\t}\r\n\r\n \t\t\t\t\tvalidatorOptions = validators[validatorName];\r\n \t\t\t\t\t// This allows the options to be a function. The function will be\r\n \t\t\t\t\t// called with the value, attribute name, the complete dict of\r\n \t\t\t\t\t// attributes as well as the options and constraints passed in.\r\n \t\t\t\t\t// This is useful when you want to have different\r\n \t\t\t\t\t// validations depending on the attribute value.\r\n \t\t\t\t\tvalidatorOptions = v.result(validatorOptions, value, attributes, attr, options, constraints);\r\n \t\t\t\t\tif (!validatorOptions) {\r\n \t\t\t\t\t\tcontinue;\r\n \t\t\t\t\t}\r\n \t\t\t\t\tresults.push({\r\n \t\t\t\t\t\tattribute: attr,\r\n \t\t\t\t\t\tvalue: value,\r\n \t\t\t\t\t\tvalidator: validatorName,\r\n \t\t\t\t\t\tglobalOptions: options,\r\n \t\t\t\t\t\tattributes: attributes,\r\n \t\t\t\t\t\toptions: validatorOptions,\r\n \t\t\t\t\t\terror: validator.call(validator,\r\n value,\r\n validatorOptions,\r\n attr,\r\n attributes,\r\n options)\r\n \t\t\t\t\t});\r\n \t\t\t\t}\r\n \t\t\t}\r\n\r\n \t\t\treturn results;\r\n \t\t},\r\n\r\n \t\t// Takes the output from runValidations and converts it to the correct\r\n \t\t// output format.\r\n \t\tprocessValidationResults: function (errors, options) {\r\n \t\t\terrors = v.pruneEmptyErrors(errors, options);\r\n \t\t\terrors = v.expandMultipleErrors(errors, options);\r\n \t\t\terrors = v.convertErrorMessages(errors, options);\r\n\r\n \t\t\tvar format = options.format || \"grouped\";\r\n\r\n \t\t\tif (typeof v.formatters[format] === 'function') {\r\n \t\t\t\terrors = v.formatters[format](errors);\r\n \t\t\t} else {\r\n \t\t\t\tthrow new Error(v.format(\"Unknown format %{format}\", options));\r\n \t\t\t}\r\n\r\n \t\t\treturn v.isEmpty(errors) ? undefined : errors;\r\n \t\t},\r\n\r\n \t\t// Runs the validations with support for promises.\r\n \t\t// This function will return a promise that is settled when all the\r\n \t\t// validation promises have been completed.\r\n \t\t// It can be called even if no validations returned a promise.\r\n \t\tasync: function (attributes, constraints, options) {\r\n \t\t\toptions = v.extend({}, v.async.options, options);\r\n\r\n \t\t\tvar WrapErrors = options.wrapErrors || function (errors) {\r\n \t\t\t\treturn errors;\r\n \t\t\t};\r\n\r\n \t\t\t// Removes unknown attributes\r\n \t\t\tif (options.cleanAttributes !== false) {\r\n \t\t\t\tattributes = v.cleanAttributes(attributes, constraints);\r\n \t\t\t}\r\n\r\n \t\t\tvar results = v.runValidations(attributes, constraints, options);\r\n\r\n \t\t\treturn new v.Promise(function (resolve, reject) {\r\n \t\t\t\tv.waitForResults(results).then(function () {\r\n \t\t\t\t\tvar errors = v.processValidationResults(results, options);\r\n \t\t\t\t\tif (errors) {\r\n \t\t\t\t\t\treject(new WrapErrors(errors, options, attributes, constraints));\r\n \t\t\t\t\t} else {\r\n \t\t\t\t\t\tresolve(attributes);\r\n \t\t\t\t\t}\r\n \t\t\t\t}, function (err) {\r\n \t\t\t\t\treject(err);\r\n \t\t\t\t});\r\n \t\t\t});\r\n \t\t},\r\n\r\n \t\tsingle: function (value, constraints, options) {\r\n \t\t\toptions = v.extend({}, v.single.options, options, {\r\n \t\t\t\tformat: \"flat\",\r\n \t\t\t\tfullMessages: false\r\n \t\t\t});\r\n \t\t\treturn v({ single: value }, { single: constraints }, options);\r\n \t\t},\r\n\r\n \t\t// Returns a promise that is resolved when all promises in the results array\r\n \t\t// are settled. The promise returned from this function is always resolved,\r\n \t\t// never rejected.\r\n \t\t// This function modifies the input argument, it replaces the promises\r\n \t\t// with the value returned from the promise.\r\n \t\twaitForResults: function (results) {\r\n \t\t\t// Create a sequence of all the results starting with a resolved promise.\r\n \t\t\treturn results.reduce(function (memo, result) {\r\n \t\t\t\t// If this result isn't a promise skip it in the sequence.\r\n \t\t\t\tif (!v.isPromise(result.error)) {\r\n \t\t\t\t\treturn memo;\r\n \t\t\t\t}\r\n\r\n \t\t\t\treturn memo.then(function () {\r\n \t\t\t\t\treturn result.error.then(function (error) {\r\n \t\t\t\t\t\tresult.error = error || null;\r\n \t\t\t\t\t});\r\n \t\t\t\t});\r\n \t\t\t}, new v.Promise(function (r) { r(); })); // A resolved promise\r\n \t\t},\r\n\r\n \t\t// If the given argument is a call: function the and: function return the value\r\n \t\t// otherwise just return the value. Additional arguments will be passed as\r\n \t\t// arguments to the function.\r\n \t\t// Example:\r\n \t\t// ```\r\n \t\t// result('foo') // 'foo'\r\n \t\t// result(Math.max, 1, 2) // 2\r\n \t\t// ```\r\n \t\tresult: function (value) {\r\n \t\t\tvar args = [].slice.call(arguments, 1);\r\n \t\t\tif (typeof value === 'function') {\r\n \t\t\t\tvalue = value.apply(null, args);\r\n \t\t\t}\r\n \t\t\treturn value;\r\n \t\t},\r\n\r\n \t\t// Checks if the value is a number. This function does not consider NaN a\r\n \t\t// number like many other `isNumber` functions do.\r\n \t\tisNumber: function (value) {\r\n \t\t\treturn typeof value === 'number' && !isNaN(value);\r\n \t\t},\r\n\r\n \t\t// Returns false if the object is not a function\r\n \t\tisFunction: function (value) {\r\n \t\t\treturn typeof value === 'function';\r\n \t\t},\r\n\r\n \t\t// A simple check to verify that the value is an integer. Uses `isNumber`\r\n \t\t// and a simple modulo check.\r\n \t\tisInteger: function (value) {\r\n \t\t\treturn v.isNumber(value) && value % 1 === 0;\r\n \t\t},\r\n\r\n \t\t// Checks if the value is a boolean\r\n \t\tisBoolean: function (value) {\r\n \t\t\treturn typeof value === 'boolean';\r\n \t\t},\r\n\r\n \t\t// Uses the `Object` function to check if the given argument is an object.\r\n \t\tisObject: function (obj) {\r\n \t\t\treturn obj === Object(obj);\r\n \t\t},\r\n\r\n \t\t// Simply checks if the object is an instance of a date\r\n \t\tisDate: function (obj) {\r\n \t\t\treturn obj instanceof Date;\r\n \t\t},\r\n\r\n \t\t// Returns false if the object is `null` of `undefined`\r\n \t\tisDefined: function (obj) {\r\n \t\t\treturn obj !== null && obj !== undefined;\r\n \t\t},\r\n\r\n \t\t// Checks if the given argument is a promise. Anything with a `then`\r\n \t\t// function is considered a promise.\r\n \t\tisPromise: function (p) {\r\n \t\t\treturn !!p && v.isFunction(p.then);\r\n \t\t},\r\n\r\n \t\tisJqueryElement: function (o) {\r\n \t\t\treturn o && v.isString(o.jquery);\r\n \t\t},\r\n\r\n \t\tisDomElement: function (o) {\r\n \t\t\tif (!o) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n\r\n \t\t\tif (!o.querySelectorAll || !o.querySelector) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n\r\n \t\t\tif (v.isObject(document) && o === document) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n\r\n \t\t\t// http://stackoverflow.com/a/384380/699304\r\n \t\t\t/* istanbul ignore else */\r\n \t\t\tif (typeof HTMLElement === \"object\") {\r\n \t\t\t\treturn o instanceof HTMLElement;\r\n \t\t\t} else {\r\n \t\t\t\treturn o &&\r\n typeof o === \"object\" &&\r\n o !== null &&\r\n o.nodeType === 1 &&\r\n typeof o.nodeName === \"string\";\r\n \t\t\t}\r\n \t\t},\r\n\r\n \t\tisEmpty: function (value) {\r\n \t\t\tvar attr;\r\n\r\n \t\t\t// Null and undefined are empty\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n\r\n \t\t\t// functions are non empty\r\n \t\t\tif (v.isFunction(value)) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n\r\n \t\t\t// Whitespace only strings are empty\r\n \t\t\tif (v.isString(value)) {\r\n \t\t\t\treturn v.EMPTY_STRING_REGEXP.test(value);\r\n \t\t\t}\r\n\r\n \t\t\t// For arrays we use the length property\r\n \t\t\tif (v.isArray(value)) {\r\n \t\t\t\treturn value.length === 0;\r\n \t\t\t}\r\n\r\n \t\t\t// Dates have no attributes but aren't empty\r\n \t\t\tif (v.isDate(value)) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n\r\n \t\t\t// If we find at least one property we consider it non empty\r\n \t\t\tif (v.isObject(value)) {\r\n \t\t\t\tfor (attr in value) {\r\n \t\t\t\t\treturn false;\r\n \t\t\t\t}\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n\r\n \t\t\treturn false;\r\n \t\t},\r\n\r\n \t\t// Formats the specified strings with the given values like so:\r\n \t\t// ```\r\n \t\t// format(\"Foo: %{foo}\", {foo: \"bar\"}) // \"Foo bar\"\r\n \t\t// ```\r\n \t\t// If you want to write %{...} without having it replaced simply\r\n \t\t// prefix it with % like this `Foo: %%{foo}` and it will be returned\r\n \t\t// as `\"Foo: %{foo}\"`\r\n \t\tformat: v.extend(function (str, vals) {\r\n \t\t\tif (!v.isString(str)) {\r\n \t\t\t\treturn str;\r\n \t\t\t}\r\n \t\t\treturn str.replace(v.format.FORMAT_REGEXP, function (m0, m1, m2) {\r\n \t\t\t\tif (m1 === '%') {\r\n \t\t\t\t\treturn \"%{\" + m2 + \"}\";\r\n \t\t\t\t} else {\r\n \t\t\t\t\treturn String(vals[m2]);\r\n \t\t\t\t}\r\n \t\t\t});\r\n \t\t}, {\r\n \t\t\t// Finds %{key} style patterns in the given string\r\n \t\t\tFORMAT_REGEXP: /(%?)%\\{([^\\}]+)\\}/g\r\n \t\t}),\r\n\r\n \t\t// \"Prettifies\" the given string.\r\n \t\t// Prettifying means replacing [.\\_-] with spaces as well as splitting\r\n \t\t// camel case words.\r\n \t\tprettify: function (str) {\r\n \t\t\tif (v.isNumber(str)) {\r\n \t\t\t\t// If there are more than 2 decimals round it to two\r\n \t\t\t\tif ((str * 100) % 1 === 0) {\r\n \t\t\t\t\treturn \"\" + str;\r\n \t\t\t\t} else {\r\n \t\t\t\t\treturn parseFloat(Math.round(str * 100) / 100).toFixed(2);\r\n \t\t\t\t}\r\n \t\t\t}\r\n\r\n \t\t\tif (v.isArray(str)) {\r\n \t\t\t\treturn str.map(function (s) { return v.prettify(s); }).join(\", \");\r\n \t\t\t}\r\n\r\n \t\t\tif (v.isObject(str)) {\r\n \t\t\t\treturn str.toString();\r\n \t\t\t}\r\n\r\n \t\t\t// Ensure the string is actually a string\r\n \t\t\tstr = \"\" + str;\r\n\r\n \t\t\treturn str\r\n // Splits keys separated by periods\r\n .replace(/([^\\s])\\.([^\\s])/g, '$1 $2')\r\n // Removes backslashes\r\n .replace(/\\\\+/g, '')\r\n // Replaces - and - with space\r\n .replace(/[_-]/g, ' ')\r\n // Splits camel cased words\r\n .replace(/([a-z])([A-Z])/g, function (m0, m1, m2) {\r\n \treturn \"\" + m1 + \" \" + m2.toLowerCase();\r\n })\r\n .toLowerCase();\r\n \t\t},\r\n\r\n \t\tstringifyValue: function (value) {\r\n \t\t\treturn v.prettify(value);\r\n \t\t},\r\n\r\n \t\tisString: function (value) {\r\n \t\t\treturn typeof value === 'string';\r\n \t\t},\r\n\r\n \t\tisArray: function (value) {\r\n \t\t\treturn {}.toString.call(value) === '[object Array]';\r\n \t\t},\r\n\r\n \t\t// Checks if the object is a hash, which is equivalent to an object that\r\n \t\t// is neither an array nor a function.\r\n \t\tisHash: function (value) {\r\n \t\t\treturn v.isObject(value) && !v.isArray(value) && !v.isFunction(value);\r\n \t\t},\r\n\r\n \t\tcontains: function (obj, value) {\r\n \t\t\tif (!v.isDefined(obj)) {\r\n \t\t\t\treturn false;\r\n \t\t\t}\r\n \t\t\tif (v.isArray(obj)) {\r\n \t\t\t\treturn obj.indexOf(value) !== -1;\r\n \t\t\t}\r\n \t\t\treturn value in obj;\r\n \t\t},\r\n\r\n \t\tunique: function (array) {\r\n \t\t\tif (!v.isArray(array)) {\r\n \t\t\t\treturn array;\r\n \t\t\t}\r\n \t\t\treturn array.filter(function (el, index, array) {\r\n \t\t\t\treturn array.indexOf(el) == index;\r\n \t\t\t});\r\n \t\t},\r\n\r\n \t\tforEachKeyInKeypath: function (object, keypath, callback) {\r\n \t\t\tif (!v.isString(keypath)) {\r\n \t\t\t\treturn undefined;\r\n \t\t\t}\r\n\r\n \t\t\tvar key = \"\"\r\n , i\r\n , escape = false;\r\n\r\n \t\t\tfor (i = 0; i < keypath.length; ++i) {\r\n \t\t\t\tswitch (keypath[i]) {\r\n \t\t\t\t\tcase '.':\r\n \t\t\t\t\t\tif (escape) {\r\n \t\t\t\t\t\t\tescape = false;\r\n \t\t\t\t\t\t\tkey += '.';\r\n \t\t\t\t\t\t} else {\r\n \t\t\t\t\t\t\tobject = callback(object, key, false);\r\n \t\t\t\t\t\t\tkey = \"\";\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tbreak;\r\n\r\n \t\t\t\t\tcase '\\\\':\r\n \t\t\t\t\t\tif (escape) {\r\n \t\t\t\t\t\t\tescape = false;\r\n \t\t\t\t\t\t\tkey += '\\\\';\r\n \t\t\t\t\t\t} else {\r\n \t\t\t\t\t\t\tescape = true;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t\tbreak;\r\n\r\n \t\t\t\t\tdefault:\r\n \t\t\t\t\t\tescape = false;\r\n \t\t\t\t\t\tkey += keypath[i];\r\n \t\t\t\t\t\tbreak;\r\n \t\t\t\t}\r\n \t\t\t}\r\n\r\n \t\t\treturn callback(object, key, true);\r\n \t\t},\r\n\r\n \t\tgetDeepObjectValue: function (obj, keypath) {\r\n \t\t\tif (!v.isObject(obj)) {\r\n \t\t\t\treturn undefined;\r\n \t\t\t}\r\n\r\n \t\t\treturn v.forEachKeyInKeypath(obj, keypath, function (obj, key) {\r\n \t\t\t\tif (v.isObject(obj)) {\r\n \t\t\t\t\treturn obj[key];\r\n \t\t\t\t}\r\n \t\t\t});\r\n \t\t},\r\n\r\n \t\t// This returns an object with all the values of the form.\r\n \t\t// It uses the input name as key and the value as value\r\n \t\t// So for example this:\r\n \t\t// \r\n \t\t// would return:\r\n \t\t// {email: \"foo@bar.com\"}\r\n \t\tcollectFormValues: function (form, options) {\r\n \t\t\tvar values = {}\r\n , i\r\n , j\r\n , input\r\n , inputs\r\n , option\r\n , value;\r\n\r\n \t\t\tif (v.isJqueryElement(form)) {\r\n \t\t\t\tform = form[0];\r\n \t\t\t}\r\n\r\n \t\t\tif (!form) {\r\n \t\t\t\treturn values;\r\n \t\t\t}\r\n\r\n \t\t\toptions = options || {};\r\n\r\n \t\t\tinputs = form.querySelectorAll(\"input[name], textarea[name]\");\r\n \t\t\tfor (i = 0; i < inputs.length; ++i) {\r\n \t\t\t\tinput = inputs.item(i);\r\n\r\n \t\t\t\tif (v.isDefined(input.getAttribute(\"data-ignored\"))) {\r\n \t\t\t\t\tcontinue;\r\n \t\t\t\t}\r\n\r\n \t\t\t\tvalue = v.sanitizeFormValue(input.value, options);\r\n \t\t\t\tif (input.type === \"number\") {\r\n \t\t\t\t\tvalue = value ? +value : null;\r\n \t\t\t\t} else if (input.type === \"checkbox\") {\r\n \t\t\t\t\tif (input.attributes.value) {\r\n \t\t\t\t\t\tif (!input.checked) {\r\n \t\t\t\t\t\t\tvalue = values[input.name] || null;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t} else {\r\n \t\t\t\t\t\tvalue = input.checked;\r\n \t\t\t\t\t}\r\n \t\t\t\t} else if (input.type === \"radio\") {\r\n \t\t\t\t\tif (!input.checked) {\r\n \t\t\t\t\t\tvalue = values[input.name] || null;\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t\tvalues[input.name] = value;\r\n \t\t\t}\r\n\r\n \t\t\tinputs = form.querySelectorAll(\"select[name]\");\r\n \t\t\tfor (i = 0; i < inputs.length; ++i) {\r\n \t\t\t\tinput = inputs.item(i);\r\n \t\t\t\tif (input.multiple) {\r\n \t\t\t\t\tvalue = [];\r\n \t\t\t\t\tfor (j in input.options) {\r\n \t\t\t\t\t\toption = input.options[j];\r\n \t\t\t\t\t\tif (option.selected) {\r\n \t\t\t\t\t\t\tvalue.push(v.sanitizeFormValue(option.value, options));\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t} else {\r\n \t\t\t\t\tvalue = v.sanitizeFormValue(input.options[input.selectedIndex].value, options);\r\n \t\t\t\t}\r\n \t\t\t\tvalues[input.name] = value;\r\n \t\t\t}\r\n\r\n \t\t\treturn values;\r\n \t\t},\r\n\r\n \t\tsanitizeFormValue: function (value, options) {\r\n \t\t\tif (options.trim && v.isString(value)) {\r\n \t\t\t\tvalue = value.trim();\r\n \t\t\t}\r\n\r\n \t\t\tif (options.nullify !== false && value === \"\") {\r\n \t\t\t\treturn null;\r\n \t\t\t}\r\n \t\t\treturn value;\r\n \t\t},\r\n\r\n \t\tcapitalize: function (str) {\r\n \t\t\tif (!v.isString(str)) {\r\n \t\t\t\treturn str;\r\n \t\t\t}\r\n \t\t\treturn str[0].toUpperCase() + str.slice(1);\r\n \t\t},\r\n\r\n \t\t// Remove all errors who's error attribute is empty (null or undefined)\r\n \t\tpruneEmptyErrors: function (errors) {\r\n \t\t\treturn errors.filter(function (error) {\r\n \t\t\t\treturn !v.isEmpty(error.error);\r\n \t\t\t});\r\n \t\t},\r\n\r\n \t\t// In\r\n \t\t// [{error: [\"err1\", \"err2\"], ...}]\r\n \t\t// Out\r\n \t\t// [{error: \"err1\", ...}, {error: \"err2\", ...}]\r\n \t\t//\r\n \t\t// All attributes in an error with multiple messages are duplicated\r\n \t\t// when expanding the errors.\r\n \t\texpandMultipleErrors: function (errors) {\r\n \t\t\tvar ret = [];\r\n \t\t\terrors.forEach(function (error) {\r\n \t\t\t\t// Removes errors without a message\r\n \t\t\t\tif (v.isArray(error.error)) {\r\n \t\t\t\t\terror.error.forEach(function (msg) {\r\n \t\t\t\t\t\tret.push(v.extend({}, error, { error: msg }));\r\n \t\t\t\t\t});\r\n \t\t\t\t} else {\r\n \t\t\t\t\tret.push(error);\r\n \t\t\t\t}\r\n \t\t\t});\r\n \t\t\treturn ret;\r\n \t\t},\r\n\r\n \t\t// Converts the error mesages by prepending the attribute name unless the\r\n \t\t// message is prefixed by ^\r\n \t\tconvertErrorMessages: function (errors, options) {\r\n \t\t\toptions = options || {};\r\n\r\n \t\t\tvar ret = [];\r\n \t\t\terrors.forEach(function (errorInfo) {\r\n \t\t\t\tvar error = v.result(errorInfo.error,\r\n errorInfo.value,\r\n errorInfo.attribute,\r\n errorInfo.options,\r\n errorInfo.attributes,\r\n errorInfo.globalOptions);\r\n\r\n \t\t\t\tif (!v.isString(error)) {\r\n \t\t\t\t\tret.push(errorInfo);\r\n \t\t\t\t\treturn;\r\n \t\t\t\t}\r\n\r\n \t\t\t\tif (error[0] === '^') {\r\n \t\t\t\t\terror = error.slice(1);\r\n \t\t\t\t} else if (options.fullMessages !== false) {\r\n \t\t\t\t\terror = v.capitalize(v.prettify(errorInfo.attribute)) + \" \" + error;\r\n \t\t\t\t}\r\n \t\t\t\terror = error.replace(/\\\\\\^/g, \"^\");\r\n \t\t\t\terror = v.format(error, { value: v.stringifyValue(errorInfo.value) });\r\n \t\t\t\tret.push(v.extend({}, errorInfo, { error: error }));\r\n \t\t\t});\r\n \t\t\treturn ret;\r\n \t\t},\r\n\r\n \t\t// In:\r\n \t\t// [{attribute: \"\", ...}]\r\n \t\t// Out:\r\n \t\t// {\"\": [{attribute: \"\", ...}]}\r\n \t\tgroupErrorsByAttribute: function (errors) {\r\n \t\t\tvar ret = {};\r\n \t\t\terrors.forEach(function (error) {\r\n \t\t\t\tvar list = ret[error.attribute];\r\n \t\t\t\tif (list) {\r\n \t\t\t\t\tlist.push(error);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tret[error.attribute] = [error];\r\n \t\t\t\t}\r\n \t\t\t});\r\n \t\t\treturn ret;\r\n \t\t},\r\n\r\n \t\t// In:\r\n \t\t// [{error: \"\", ...}, {error: \"\", ...}]\r\n \t\t// Out:\r\n \t\t// [\"\", \"\"]\r\n \t\tflattenErrorsToArray: function (errors) {\r\n \t\t\treturn errors\r\n .map(function (error) { return error.error; })\r\n .filter(function (value, index, self) {\r\n \treturn self.indexOf(value) === index;\r\n });\r\n \t\t},\r\n\r\n \t\tcleanAttributes: function (attributes, whitelist) {\r\n \t\t\tfunction whitelistCreator(obj, key, last) {\r\n \t\t\t\tif (v.isObject(obj[key])) {\r\n \t\t\t\t\treturn obj[key];\r\n \t\t\t\t}\r\n \t\t\t\treturn (obj[key] = last ? true : {});\r\n \t\t\t}\r\n\r\n \t\t\tfunction buildObjectWhitelist(whitelist) {\r\n \t\t\t\tvar ow = {}\r\n , lastObject\r\n , attr;\r\n \t\t\t\tfor (attr in whitelist) {\r\n \t\t\t\t\tif (!whitelist[attr]) {\r\n \t\t\t\t\t\tcontinue;\r\n \t\t\t\t\t}\r\n \t\t\t\t\tv.forEachKeyInKeypath(ow, attr, whitelistCreator);\r\n \t\t\t\t}\r\n \t\t\t\treturn ow;\r\n \t\t\t}\r\n\r\n \t\t\tfunction cleanRecursive(attributes, whitelist) {\r\n \t\t\t\tif (!v.isObject(attributes)) {\r\n \t\t\t\t\treturn attributes;\r\n \t\t\t\t}\r\n\r\n \t\t\t\tvar ret = v.extend({}, attributes)\r\n , w\r\n , attribute;\r\n\r\n \t\t\t\tfor (attribute in attributes) {\r\n \t\t\t\t\tw = whitelist[attribute];\r\n\r\n \t\t\t\t\tif (v.isObject(w)) {\r\n \t\t\t\t\t\tret[attribute] = cleanRecursive(ret[attribute], w);\r\n \t\t\t\t\t} else if (!w) {\r\n \t\t\t\t\t\tdelete ret[attribute];\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t\treturn ret;\r\n \t\t\t}\r\n\r\n \t\t\tif (!v.isObject(whitelist) || !v.isObject(attributes)) {\r\n \t\t\t\treturn {};\r\n \t\t\t}\r\n\r\n \t\t\twhitelist = buildObjectWhitelist(whitelist);\r\n \t\t\treturn cleanRecursive(attributes, whitelist);\r\n \t\t},\r\n\r\n \t\texposeModule: function (validate, root, exports, module, define) {\r\n \t\t\tif (exports) {\r\n \t\t\t\tif (module && module.exports) {\r\n \t\t\t\t\texports = module.exports = validate;\r\n \t\t\t\t}\r\n \t\t\t\texports.validate = validate;\r\n \t\t\t} else {\r\n \t\t\t\troot.validate = validate;\r\n \t\t\t\tif (validate.isFunction(define) && define.amd) {\r\n \t\t\t\t\tdefine([], function () { return validate; });\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t},\r\n\r\n \t\twarn: function (msg) {\r\n \t\t\tif (typeof console !== \"undefined\" && console.warn) {\r\n \t\t\t\tconsole.warn(\"[validate.js] \" + msg);\r\n \t\t\t}\r\n \t\t},\r\n\r\n \t\terror: function (msg) {\r\n \t\t\tif (typeof console !== \"undefined\" && console.error) {\r\n \t\t\t\tconsole.error(\"[validate.js] \" + msg);\r\n \t\t\t}\r\n \t\t}\r\n \t});\r\n\r\n \tvalidate.validators = {\r\n \t\t// Presence validates that the value isn't empty\r\n \t\tpresence: function (value, options) {\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n \t\t\tif (options.allowEmpty ? !v.isDefined(value) : v.isEmpty(value)) {\r\n \t\t\t\treturn options.message || this.message || \"can't be blank\";\r\n \t\t\t}\r\n \t\t},\r\n \t\tlength: function (value, options, attribute) {\r\n \t\t\t// Empty values are allowed\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n\r\n \t\t\tvar is = options.is\r\n , maximum = options.maximum\r\n , minimum = options.minimum\r\n , tokenizer = options.tokenizer || function (val) { return val; }\r\n , err\r\n , errors = [];\r\n\r\n \t\t\tvalue = tokenizer(value);\r\n \t\t\tvar length = value.length;\r\n \t\t\tif (!v.isNumber(length)) {\r\n \t\t\t\tv.error(v.format(\"Attribute %{attr} has a non numeric value for `length`\", { attr: attribute }));\r\n \t\t\t\treturn options.message || this.notValid || \"has an incorrect length\";\r\n \t\t\t}\r\n\r\n \t\t\t// Is checks\r\n \t\t\tif (v.isNumber(is) && length !== is) {\r\n \t\t\t\terr = options.wrongLength ||\r\n this.wrongLength ||\r\n \"is the wrong length (should be %{count} characters)\";\r\n \t\t\t\terrors.push(v.format(err, { count: is }));\r\n \t\t\t}\r\n\r\n \t\t\tif (v.isNumber(minimum) && length < minimum) {\r\n \t\t\t\terr = options.tooShort ||\r\n this.tooShort ||\r\n \"is too short (minimum is %{count} characters)\";\r\n \t\t\t\terrors.push(v.format(err, { count: minimum }));\r\n \t\t\t}\r\n\r\n \t\t\tif (v.isNumber(maximum) && length > maximum) {\r\n \t\t\t\terr = options.tooLong ||\r\n this.tooLong ||\r\n \"is too long (maximum is %{count} characters)\";\r\n \t\t\t\terrors.push(v.format(err, { count: maximum }));\r\n \t\t\t}\r\n\r\n \t\t\tif (errors.length > 0) {\r\n \t\t\t\treturn options.message || errors;\r\n \t\t\t}\r\n \t\t},\r\n \t\tnumericality: function (value, options) {\r\n \t\t\t// Empty values are fine\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n\r\n \t\t\tvar errors = []\r\n , name\r\n , count\r\n , checks = {\r\n \tgreaterThan: function (v, c) { return v > c; },\r\n \tgreaterThanOrEqualTo: function (v, c) { return v >= c; },\r\n \tequalTo: function (v, c) { return v === c; },\r\n \tlessThan: function (v, c) { return v < c; },\r\n \tlessThanOrEqualTo: function (v, c) { return v <= c; },\r\n \tdivisibleBy: function (v, c) { return v % c === 0; }\r\n };\r\n\r\n \t\t\t// Strict will check that it is a valid looking number\r\n \t\t\tif (v.isString(value) && options.strict) {\r\n \t\t\t\tvar pattern = \"^(0|[1-9]\\\\d*)\";\r\n \t\t\t\tif (!options.onlyInteger) {\r\n \t\t\t\t\tpattern += \"(\\\\.\\\\d+)?\";\r\n \t\t\t\t}\r\n \t\t\t\tpattern += \"$\";\r\n\r\n \t\t\t\tif (!(new RegExp(pattern).test(value))) {\r\n \t\t\t\t\treturn options.message ||\r\n options.notValid ||\r\n this.notValid ||\r\n this.message ||\r\n \"must be a valid number\";\r\n \t\t\t\t}\r\n \t\t\t}\r\n\r\n \t\t\t// Coerce the value to a number unless we're being strict.\r\n \t\t\tif (options.noStrings !== true && v.isString(value) && !v.isEmpty(value)) {\r\n \t\t\t\tvalue = +value;\r\n \t\t\t}\r\n\r\n \t\t\t// If it's not a number we shouldn't continue since it will compare it.\r\n \t\t\tif (!v.isNumber(value)) {\r\n \t\t\t\treturn options.message ||\r\n options.notValid ||\r\n this.notValid ||\r\n this.message ||\r\n \"is not a number\";\r\n \t\t\t}\r\n\r\n \t\t\t// Same logic as above, sort of. Don't bother with comparisons if this\r\n \t\t\t// doesn't pass.\r\n \t\t\tif (options.onlyInteger && !v.isInteger(value)) {\r\n \t\t\t\treturn options.message ||\r\n options.notInteger ||\r\n this.notInteger ||\r\n this.message ||\r\n \"must be an integer\";\r\n \t\t\t}\r\n\r\n \t\t\tfor (name in checks) {\r\n \t\t\t\tcount = options[name];\r\n \t\t\t\tif (v.isNumber(count) && !checks[name](value, count)) {\r\n \t\t\t\t\t// This picks the default message if specified\r\n \t\t\t\t\t// For example the greaterThan check uses the message from\r\n \t\t\t\t\t// this.notGreaterThan so we capitalize the name and prepend \"not\"\r\n \t\t\t\t\tvar key = \"not\" + v.capitalize(name);\r\n \t\t\t\t\tvar msg = options[key] ||\r\n this[key] ||\r\n this.message ||\r\n \"must be %{type} %{count}\";\r\n\r\n \t\t\t\t\terrors.push(v.format(msg, {\r\n \t\t\t\t\t\tcount: count,\r\n \t\t\t\t\t\ttype: v.prettify(name)\r\n \t\t\t\t\t}));\r\n \t\t\t\t}\r\n \t\t\t}\r\n\r\n \t\t\tif (options.odd && value % 2 !== 1) {\r\n \t\t\t\terrors.push(options.notOdd ||\r\n this.notOdd ||\r\n this.message ||\r\n \"must be odd\");\r\n \t\t\t}\r\n \t\t\tif (options.even && value % 2 !== 0) {\r\n \t\t\t\terrors.push(options.notEven ||\r\n this.notEven ||\r\n this.message ||\r\n \"must be even\");\r\n \t\t\t}\r\n\r\n \t\t\tif (errors.length) {\r\n \t\t\t\treturn options.message || errors;\r\n \t\t\t}\r\n \t\t},\r\n \t\tdatetime: v.extend(function (value, options) {\r\n \t\t\tif (!v.isFunction(this.parse) || !v.isFunction(this.format)) {\r\n \t\t\t\tthrow new Error(\"Both the parse and format functions needs to be set to use the datetime/date validator\");\r\n \t\t\t}\r\n\r\n \t\t\t// Empty values are fine\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n\r\n \t\t\tvar err\r\n , errors = []\r\n , earliest = options.earliest ? this.parse(options.earliest, options) : NaN\r\n , latest = options.latest ? this.parse(options.latest, options) : NaN;\r\n\r\n \t\t\tvalue = this.parse(value, options);\r\n\r\n \t\t\t// 86400000 is the number of seconds in a day, this is used to remove\r\n \t\t\t// the time from the date\r\n \t\t\tif (isNaN(value) || options.dateOnly && value % 86400000 !== 0) {\r\n \t\t\t\terr = options.notValid ||\r\n options.message ||\r\n this.notValid ||\r\n \"must be a valid date\";\r\n \t\t\t\treturn v.format(err, { value: arguments[0] });\r\n \t\t\t}\r\n\r\n \t\t\tif (!isNaN(earliest) && value < earliest) {\r\n \t\t\t\terr = options.tooEarly ||\r\n options.message ||\r\n this.tooEarly ||\r\n \"must be no earlier than %{date}\";\r\n \t\t\t\terr = v.format(err, {\r\n \t\t\t\t\tvalue: this.format(value, options),\r\n \t\t\t\t\tdate: this.format(earliest, options)\r\n \t\t\t\t});\r\n \t\t\t\terrors.push(err);\r\n \t\t\t}\r\n\r\n \t\t\tif (!isNaN(latest) && value > latest) {\r\n \t\t\t\terr = options.tooLate ||\r\n options.message ||\r\n this.tooLate ||\r\n \"must be no later than %{date}\";\r\n \t\t\t\terr = v.format(err, {\r\n \t\t\t\t\tdate: this.format(latest, options),\r\n \t\t\t\t\tvalue: this.format(value, options)\r\n \t\t\t\t});\r\n \t\t\t\terrors.push(err);\r\n \t\t\t}\r\n\r\n \t\t\tif (errors.length) {\r\n \t\t\t\treturn v.unique(errors);\r\n \t\t\t}\r\n \t\t}, {\r\n \t\t\tparse: null,\r\n \t\t\tformat: null\r\n \t\t}),\r\n \t\tdate: function (value, options) {\r\n \t\t\toptions = v.extend({}, options, { dateOnly: true });\r\n \t\t\treturn v.validators.datetime.call(v.validators.datetime, value, options);\r\n \t\t},\r\n \t\tformat: function (value, options) {\r\n \t\t\tif (v.isString(options) || (options instanceof RegExp)) {\r\n \t\t\t\toptions = { pattern: options };\r\n \t\t\t}\r\n\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n\r\n \t\t\tvar message = options.message || this.message || \"is invalid\"\r\n , pattern = options.pattern\r\n , match;\r\n\r\n \t\t\t// Empty values are allowed\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t\tif (!v.isString(value)) {\r\n \t\t\t\treturn message;\r\n \t\t\t}\r\n\r\n \t\t\tif (v.isString(pattern)) {\r\n \t\t\t\tpattern = new RegExp(options.pattern, options.flags);\r\n \t\t\t}\r\n \t\t\tmatch = pattern.exec(value);\r\n \t\t\tif (!match || match[0].length != value.length) {\r\n \t\t\t\treturn message;\r\n \t\t\t}\r\n \t\t},\r\n \t\tinclusion: function (value, options) {\r\n \t\t\t// Empty values are fine\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t\tif (v.isArray(options)) {\r\n \t\t\t\toptions = { within: options };\r\n \t\t\t}\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n \t\t\tif (v.contains(options.within, value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t\tvar message = options.message ||\r\n this.message ||\r\n \"^%{value} is not included in the list\";\r\n \t\t\treturn v.format(message, { value: value });\r\n \t\t},\r\n \t\texclusion: function (value, options) {\r\n \t\t\t// Empty values are fine\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t\tif (v.isArray(options)) {\r\n \t\t\t\toptions = { within: options };\r\n \t\t\t}\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n \t\t\tif (!v.contains(options.within, value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t\tvar message = options.message || this.message || \"^%{value} is restricted\";\r\n \t\t\treturn v.format(message, { value: value });\r\n \t\t},\r\n \t\temail: v.extend(function (value, options) {\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n \t\t\tvar message = options.message || this.message || \"is not a valid email\";\r\n \t\t\t// Empty values are fine\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n \t\t\tif (!v.isString(value)) {\r\n \t\t\t\treturn message;\r\n \t\t\t}\r\n \t\t\tif (!this.PATTERN.exec(value)) {\r\n \t\t\t\treturn message;\r\n \t\t\t}\r\n \t\t}, {\r\n \t\t\tPATTERN: /^[a-z0-9\\u007F-\\uffff!#$%&'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9\\u007F-\\uffff!#$%&'*+\\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z]{2,}$/i\r\n \t\t}),\r\n \t\tequality: function (value, options, attribute, attributes) {\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n\r\n \t\t\tif (v.isString(options)) {\r\n \t\t\t\toptions = { attribute: options };\r\n \t\t\t}\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n \t\t\tvar message = options.message ||\r\n this.message ||\r\n \"is not equal to %{attribute}\";\r\n\r\n \t\t\tif (v.isEmpty(options.attribute) || !v.isString(options.attribute)) {\r\n \t\t\t\tthrow new Error(\"The attribute must be a non empty string\");\r\n \t\t\t}\r\n\r\n \t\t\tvar otherValue = v.getDeepObjectValue(attributes, options.attribute)\r\n , comparator = options.comparator || function (v1, v2) {\r\n \treturn v1 === v2;\r\n };\r\n\r\n \t\t\tif (!comparator(value, otherValue, options, attribute, attributes)) {\r\n \t\t\t\treturn v.format(message, { attribute: v.prettify(options.attribute) });\r\n \t\t\t}\r\n \t\t},\r\n\r\n \t\t// A URL validator that is used to validate URLs with the ability to\r\n \t\t// restrict schemes and some domains.\r\n \t\turl: function (value, options) {\r\n \t\t\tif (!v.isDefined(value)) {\r\n \t\t\t\treturn;\r\n \t\t\t}\r\n\r\n \t\t\toptions = v.extend({}, this.options, options);\r\n\r\n \t\t\tvar message = options.message || this.message || \"is not a valid url\"\r\n , schemes = options.schemes || this.schemes || ['http', 'https']\r\n , allowLocal = options.allowLocal || this.allowLocal || false;\r\n\r\n \t\t\tif (!v.isString(value)) {\r\n \t\t\t\treturn message;\r\n \t\t\t}\r\n\r\n \t\t\t// https://gist.github.com/dperini/729294\r\n \t\t\tvar regex =\r\n \"^\" +\r\n // protocol identifier\r\n \"(?:(?:\" + schemes.join(\"|\") + \")://)\" +\r\n // user:pass authentication\r\n \"(?:\\\\S+(?::\\\\S*)?@)?\" +\r\n \"(?:\";\r\n\r\n \t\t\tvar tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\r\n\r\n \t\t\tif (allowLocal) {\r\n \t\t\t\ttld += \"?\";\r\n \t\t\t} else {\r\n \t\t\t\tregex +=\r\n // IP address exclusion\r\n // private & local networks\r\n \"(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})\" +\r\n \"(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})\" +\r\n \"(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})\";\r\n \t\t\t}\r\n\r\n \t\t\tregex +=\r\n // IP address dotted notation octets\r\n // excludes loopback network 0.0.0.0\r\n // excludes reserved space >= 224.0.0.0\r\n // excludes network & broacast addresses\r\n // (first & last IP address of each class)\r\n \"(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])\" +\r\n \"(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}\" +\r\n \"(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))\" +\r\n \"|\" +\r\n // host name\r\n \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\" +\r\n // domain name\r\n \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\" +\r\n tld +\r\n \")\" +\r\n // port number\r\n \"(?::\\\\d{2,5})?\" +\r\n // resource path\r\n \"(?:[/?#]\\\\S*)?\" +\r\n \"$\";\r\n\r\n \t\t\tvar PATTERN = new RegExp(regex, 'i');\r\n \t\t\tif (!PATTERN.exec(value)) {\r\n \t\t\t\treturn message;\r\n \t\t\t}\r\n \t\t}\r\n \t};\r\n\r\n \tvalidate.formatters = {\r\n \t\tdetailed: function (errors) { return errors; },\r\n \t\tflat: v.flattenErrorsToArray,\r\n \t\tgrouped: function (errors) {\r\n \t\t\tvar attr;\r\n\r\n \t\t\terrors = v.groupErrorsByAttribute(errors);\r\n \t\t\tfor (attr in errors) {\r\n \t\t\t\terrors[attr] = v.flattenErrorsToArray(errors[attr]);\r\n \t\t\t}\r\n \t\t\treturn errors;\r\n \t\t},\r\n \t\tconstraint: function (errors) {\r\n \t\t\tvar attr;\r\n \t\t\terrors = v.groupErrorsByAttribute(errors);\r\n \t\t\tfor (attr in errors) {\r\n \t\t\t\terrors[attr] = errors[attr].map(function (result) {\r\n \t\t\t\t\treturn result.validator;\r\n \t\t\t\t}).sort();\r\n \t\t\t}\r\n \t\t\treturn errors;\r\n \t\t}\r\n \t};\r\n\r\n \tvalidate.exposeModule(validate, this, exports, module, define);\r\n }).call(this,\r\n\t\t\t\t typeof exports !== 'undefined' ? /* istanbul ignore next */ exports : null,\r\n\t\t\t\t typeof module !== 'undefined' ? /* istanbul ignore next */ module : null,\r\n\t\t\t\t typeof define !== 'undefined' ? /* istanbul ignore next */ define : null);\r\n\r\n\r\n return validate;\r\n });\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, Utils, Svg) {\r\n 'use strict';\r\n\r\n var NavigationHeader = function (urlOrCallback, mithrilRoute, linkText) {\r\n\r\n var url;\r\n var callback;\r\n var action;\r\n\r\n // Allow both a URL or a function so that potentially you can do something else when the user navigates back\r\n if (typeof urlOrCallback === 'string') {\r\n url = urlOrCallback;\r\n } else if (typeof urlOrCallback === 'function') {\r\n callback = urlOrCallback;\r\n } else {\r\n url = Utils.cookie(DS.Config.CONTEXT + 'currentBrandURL') || window.location.origin;\r\n }\r\n\r\n if (!url) {\r\n if (!callback) {\r\n action = function (e) {\r\n e.preventDefault(); window.history.back();\r\n };\r\n } else {\r\n action = callback;\r\n }\r\n }\r\n\r\n return m('section.navigation-header', [\r\n m('a.navigation-header__link', {\r\n href: url ? url : '#',\r\n onclick: action,\r\n config: mithrilRoute ? m.route : null\r\n }, [\r\n Svg('arrow_small_left')\r\n ], linkText ? m('.navigation-header__link-text', linkText) : '')\r\n ]);\r\n };\r\n\r\n return NavigationHeader;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/CustomValidators', [\r\n 'Common/Framework/ScriptLibraries/Scripts/validate',\r\n], function (validate) {\r\n 'use strict';\r\n\r\n const lessThan = (value, limits) => {\r\n return limits.some((limit) => {\r\n const current = limit.current() ? typeof limit.current() === 'string' ? parseInt(limit.current(), 10) : limit.current() : Number.MAX_SAFE_INTEGER;\r\n const max = limit.max() ? typeof limit.max() === 'string' ? parseInt(limit.max(), 10) : limit.max() : Number.MAX_SAFE_INTEGER;\r\n return ((value > current) || (limit.isOperator() && value > (Math.min(current, max))));\r\n });\r\n };\r\n\r\n const greaterThan = (value, limits) => {\r\n return limits.some((limit) => {\r\n const current = limit.current() ? typeof limit.current() === 'string' ? parseInt(limit.current(), 10) : limit.current() : -1;\r\n const max = limit.max() ? typeof limit.max() === 'string' ? parseInt(limit.max(), 10) : limit.max() : -1;\r\n return ((value < current) || (limit.isOperator() && value < (Math.min(current, max))));\r\n });\r\n };\r\n\r\n return {\r\n\r\n add: function () {\r\n\r\n validate.validators.isDailyValidRelatively = function (value, options) {\r\n if (!value) return;\r\n value = parseInt(value, 10);\r\n if (lessThan(value, [options.weekly, options.monthly])) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.isWeeklyValidRelatively = function (value, options) {\r\n if (!value) return;\r\n value = parseInt(value, 10);\r\n if (greaterThan(value, [options.daily]) || lessThan(value, [options.monthly])) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.isMonthlyValidRelatively = function (value, options) {\r\n if (!value) return;\r\n value = parseInt(value, 10);\r\n if (greaterThan(value, [options.daily, options.weekly])) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.isLimitEmpty = function (value, options) {\r\n if (!value && parseInt(value, 10) > 0) return;\r\n value = parseInt(value, 10);\r\n\r\n if (!(value > 0)) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.isAboveGlobalLimit = function (value, options) {\r\n if (!value || !options.limit()) return;\r\n value = parseInt(value, 10);\r\n\r\n if (value > options.limit()) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.isBelowGlobalLimit = function (value, options) {\r\n\r\n if (!value) return;\r\n value = parseInt(value, 10);\r\n if (value < options.limit()) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.isEqualToFuture = function (value, options) {\r\n if (parseInt(value, 10) === options.future()) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.isAlreadyDeleting = function (value, options) {\r\n if (value.length === 0 && options.isDeleting()) {\r\n return options.message;\r\n }\r\n };\r\n\r\n /* eslint-disable */\r\n validate.validators.canBeUnset = function (value, options) {\r\n if (\r\n (options.fields.month.futureDate() && !options.fields.month.future() && options.fields.maxWeekly().trim() === '' && options.fields.maxDaily().trim() === '') ||\r\n (options.fields.week.futureDate() && !options.fields.week.future() && options.fields.maxMonthly().trim() === '' && options.fields.maxDaily().trim() === '') ||\r\n (options.fields.day.futureDate() && !options.fields.day.future() && options.fields.maxMonthly().trim() === '' && options.fields.maxWeekly().trim() === '')\r\n ) {\r\n return options.message;\r\n }\r\n };\r\n\r\n validate.validators.canMonthlyBeUnset = function (value, options) {\r\n if (value) return;\r\n if (!options.fields.month.initial()) return;\r\n if ((options.fields.maxDaily() && !options.fields.day.isDeleting()) ||\r\n (options.fields.maxWeekly() && !options.fields.week.isDeleting())) {\r\n return;\r\n }\r\n\r\n if (options.fields.day.isDeleting() &&\r\n !!options.fields.maxDaily() &&\r\n (options.fields.maxDaily() !== options.fields.day.storedValue() || options.fields.day.isReverting())) {\r\n return;\r\n }\r\n\r\n if (options.fields.week.isDeleting() &&\r\n !!options.fields.maxDaily() &&\r\n (options.fields.maxWeekly() !== options.fields.week.storedValue() || options.fields.week.isReverting())) {\r\n return;\r\n }\r\n return options.message;\r\n };\r\n\r\n validate.validators.canWeeklyBeUnset = function (value, options) {\r\n if (value) return;\r\n if (!options.fields.week.initial()) return;\r\n if ((options.fields.maxDaily() && !options.fields.day.isDeleting()) ||\r\n (options.fields.maxMonthly() && !options.fields.month.isDeleting())) {\r\n return;\r\n }\r\n\r\n if (options.fields.day.isDeleting() &&\r\n !!options.fields.maxDaily() &&\r\n (options.fields.maxDaily() !== options.fields.day.storedValue() || options.fields.day.isReverting())) {\r\n return;\r\n }\r\n\r\n if (options.fields.month.isDeleting() &&\r\n !!options.fields.maxMonthly() &&\r\n (options.fields.maxMonthly() !== options.fields.month.storedValue() || options.fields.month.isReverting())) {\r\n return;\r\n }\r\n\r\n return options.message;\r\n };\r\n\r\n validate.validators.canDailyBeUnset = function (value, options) {\r\n if (value) return;\r\n if (!options.fields.day.initial()) return;\r\n if ((options.fields.maxWeekly() && !options.fields.week.isDeleting()) ||\r\n (options.fields.maxMonthly() && !options.fields.month.isDeleting())) {\r\n return;\r\n }\r\n\r\n if (options.fields.week.isDeleting() &&\r\n !!options.fields.maxWeekly() &&\r\n (options.fields.maxWeekly() !== options.fields.week.storedValue() || options.fields.week.isReverting())) {\r\n return;\r\n }\r\n\r\n if (options.fields.month.isDeleting() &&\r\n !!options.fields.maxMonthly() &&\r\n (options.fields.maxMonthly() !== options.fields.month.storedValue() || options.fields.month.isReverting())) {\r\n return;\r\n }\r\n return options.message;\r\n };\r\n }\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Data/PlayerRegisterDocumentsApi', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n],\r\nfunction (Request) {\r\n var hasDocuments = function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/HasDocuments?checkPending=true',\r\n });\r\n };\r\n\r\n var uploadDocuments = function (data) {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/Upload',\r\n data: data,\r\n serialize: function (data) {\r\n return data;\r\n },\r\n timeout: 60\r\n });\r\n };\r\n\r\n return {\r\n hasDocuments: hasDocuments,\r\n uploadDocument: uploadDocuments\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/AccountCustomValidators', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request',\r\n 'Common/Framework/ScriptLibraries/Scripts/validate',\r\n], function (Dictionary, Request, validate) {\r\n 'use strict';\r\n\r\n var d = Dictionary.get.bind({ prefix: 'PasswordManagement/' });\r\n\r\n return {\r\n\r\n add: function () {\r\n\r\n validate.validators.isCurrentPasswordCorrect = function (value) {\r\n if (!value) {\r\n return d('CurrentPasswordEmpty');\r\n }\r\n\r\n return new validate.Promise(function (resolve) {\r\n Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/CheckCredentials',\r\n data: {\r\n Password: value,\r\n },\r\n preventModal: true,\r\n unwrapError: function (response, headers) {\r\n if (headers.status === 401) {\r\n resolve(d('WrongPassword'));\r\n } else {\r\n resolve(response);\r\n }\r\n }\r\n }).then(function () {\r\n resolve();\r\n });\r\n });\r\n };\r\n\r\n }\r\n\r\n };\r\n\r\n});","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Dropdown', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Common/Framework/EventHandling/Scripts/OutsideClick',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n], function (m, Utils, OutsideClick, Svg, Render) {\r\n 'use strict';\r\n\r\n var Dropdown = {\r\n\r\n controller: function (options) {\r\n\r\n var self = this;\r\n\r\n self.options = Utils.extend(true, {\r\n model: {\r\n value: m.prop(), // the selected option\r\n list: m.prop(), // list of available options\r\n valid: m.prop(), // optional, see ValidationModel\r\n validState: m.prop(true), // optional, see ValidationModel\r\n errorList: m.prop([]), // optional, see ValidationModel\r\n },\r\n subdrop: null,\r\n id: null,\r\n class: 'dropdown-wrapper',\r\n defaultItem: { value: '', text: 'Vælg værdi' },\r\n disabled: false,\r\n callback: function () {\r\n },\r\n placeholder: false,\r\n uiTestId: null\r\n }, options);\r\n\r\n self.element = m.prop();\r\n self.toggled = m.prop(false);\r\n self.subDropToggled = m.prop(false);\r\n self.subDropMaxHeight = m.prop(0);\r\n self.scrollTop = m.prop(0);\r\n self.render = m.prop(Render());\r\n\r\n self.render().ready.then(function (nodes) {\r\n var dropdown = nodes['dropdown'];\r\n\r\n if (options.uiTestId) {\r\n dropdown.$element.setAttribute('data-uitest-id', options.uiTestId);\r\n }\r\n\r\n if (!dropdown.rendered) {\r\n OutsideClick(dropdown.$element, dropdown.context, function () {\r\n self.toggled(false);\r\n });\r\n }\r\n });\r\n\r\n self.onchange = function (e) {\r\n self.element().focus();\r\n var curValue = this;\r\n if (e.stopPropagation) {\r\n e.stopPropagation();\r\n } else {\r\n curValue = e;\r\n }\r\n self.toggled(false);\r\n self.subDropToggled(false);\r\n options.model.value(curValue);\r\n setTimeout(function () { // to avoid UI freezing\r\n if (options.validate) {\r\n options.validate();\r\n } else if (options.model.validate) {\r\n options.model.validate();\r\n }\r\n if (options.onchange) options.onchange(curValue);\r\n }, 1);\r\n self.options.callback(curValue);\r\n self.element().blur();\r\n };\r\n },\r\n\r\n view: function (ctrl) {\r\n var options = ctrl.options;\r\n var model = options.model;\r\n var render = ctrl.render();\r\n\r\n if (options.subdrop) options.subdrop = typeof options.subdrop === 'function' ? options.subdrop() : options.subdrop;\r\n\r\n var isMobile = true;\r\n if (window.matchMedia('(min-width: 767px)').matches) { // @breakpoint-tablet\r\n isMobile = false;\r\n }\r\n\r\n var allItems = options.subdrop && options.subdrop.items ? options.subdrop.items.concat(model.list()) : model.list();\r\n\r\n var selectedValue = m.prop(!model.value() ? options.defaultItem : allItems.filter(function (item) {\r\n return item.value == model.value();\r\n })[0]);\r\n\r\n var toggleList = function (e) {\r\n e.stopPropagation();\r\n ctrl.toggled(!ctrl.toggled());\r\n ctrl.subDropToggled(false);\r\n };\r\n\r\n var toggleSubList = function (e) {\r\n e.stopPropagation();\r\n ctrl.subDropToggled(!ctrl.subDropToggled());\r\n var innerHeight = Array.prototype.reduce.call(this.nextSibling.childNodes, function (number, node) {\r\n number += node.getBoundingClientRect().height;\r\n return number;\r\n }, 0) * ctrl.subDropToggled();\r\n ctrl.subDropMaxHeight(innerHeight);\r\n ctrl.scrollTop(this.parentNode.offsetTop);\r\n\r\n };\r\n\r\n var setMaxHeight = function (element) {\r\n element.style.maxHeight = ctrl.subDropMaxHeight() + 'px';\r\n };\r\n\r\n var setValue = function (e) {\r\n var curValue = this;\r\n if (e.stopPropagation) {\r\n e.stopPropagation();\r\n } else {\r\n curValue = e;\r\n }\r\n ctrl.toggled(false);\r\n ctrl.subDropToggled(false);\r\n model.value(curValue);\r\n if (options.callback) options.callback(curValue);\r\n };\r\n\r\n var renderList = function (values) {\r\n return values.map(function (item) {\r\n return m('li', { class: 'dropdown__list__item', onclick: setValue.bind(item.value) }, [\r\n m('span', { class: 'dropdown__list__item__left' }, typeof item.text === 'string' ? item.text : item.text.left),\r\n typeof item.text !== 'string' && item.text.right ? m('span', { class: 'dropdown__list__item__right' }, item.text.right) : ''\r\n ]);\r\n });\r\n };\r\n\r\n var items = model.list() && model.list().map(function (item) {\r\n return item.hidden ? null : m('li', {\r\n class: 'dropdown__list__item' + (item.disabled ? ' dropdown__list__item--disabled' : ''),\r\n onclick: !item.disabled && ctrl.onchange.bind(item.value)\r\n }, [\r\n m('span', { class: 'dropdown__list__item__left' }, typeof item.text === 'string' ? item.text : item.text.left),\r\n typeof item.text !== 'string' ? m('span', { class: 'dropdown__list__item__right' }, item.text.right) : ''\r\n ]);\r\n });\r\n\r\n return m('div', {\r\n config: render.depend('dropdown'),\r\n class: [\r\n 'dropdown' + (options.class ? ' ' + options.class : ''),\r\n (!model.value() ? 'dropdown--unselected' : ''),\r\n (options.disabled ? 'dropdown--disabled' : ''),\r\n (model && model.validState && !model.validState() ? 'has--error' : '')\r\n ].join(' '),\r\n placeholder: options.placeholder ? options.defaultItem.text : ''\r\n }, [\r\n m('select', {\r\n id: options.id,\r\n class: 'dropdown__select',\r\n value: model.value(),\r\n onchange: m.withAttr('value', ctrl.onchange),\r\n config: function (element) {\r\n ctrl.element(element);\r\n }\r\n }, [\r\n m('option', { disabled: 'disabled' }, options.defaultItem.text),\r\n model.list() && model.list().map(function (item) {\r\n if (item.value && item.value.toString() === model.value()) {\r\n return m('option', {\r\n selected: 'selected',\r\n value: item.value\r\n }, item.text && item.text.left ? item.text.left + (item.text.right ? ' - ' + item.text.right : '') : item.text);\r\n }\r\n return !item.hidden ? m('option', {\r\n disabled: item.disabled,\r\n value: item.value\r\n }, item.text && item.text.left ? item.text.left + (item.text.right ? ' - ' + item.text.right : '') : item.text) : '';\r\n }),\r\n options.subdrop && options.subdrop.items && options.subdrop.items.length > 0 ? m('optgroup', { label: options.subdrop.label }, [\r\n options.subdrop.items.map(function (item) {\r\n if (item.value && item.value.toString() === model.value()) {\r\n return m('option', {\r\n selected: 'selected',\r\n value: item.value\r\n }, item.text && item.text.left ? item.text.left + (item.text.right ? ' - ' + item.text.right : '') : item.text);\r\n } else {\r\n return m('option', { value: item.value }, item.text && item.text.left ? item.text.left + (item.text.right ? ' - ' + item.text.right : '') : item.text);\r\n }\r\n })\r\n ]) : ''\r\n ]),\r\n m('label', {\r\n for: options.id,\r\n onclick: !isMobile && !options.disabled ? toggleList : null,\r\n class: 'dropdown__selection' + (ctrl.toggled() ? ' dropdown__selection--active' : '')\r\n },\r\n selectedValue() && selectedValue().centered ?\r\n m('span.dropdown__selection__centered', [\r\n selectedValue().text, Svg('arrow_big_down', {\r\n class: 'sprite-symbol dropdown__selection__arrow'\r\n })\r\n ]) :\r\n [\r\n m('span.dropdown__selection__left',\r\n selectedValue() ? selectedValue().text.left ? selectedValue().text.left : selectedValue().text : ''\r\n ),\r\n m('.dropdown__selection__right', [\r\n selectedValue() && selectedValue().text.right ? m('span', selectedValue().text.right) : '',\r\n Svg('arrow_big_down', {\r\n class: 'sprite-symbol dropdown__selection__arrow'\r\n })\r\n ])\r\n ]\r\n ),\r\n m('ul', { class: 'dropdown__list' + (ctrl.toggled() ? ' dropdown__list--active' : '') }, [\r\n items,\r\n options.subdrop && options.subdrop.items && options.subdrop.items.length > 0 ? m('li', { class: 'dropdown__list__item sub-dropdown' }, [\r\n m('span', { class: (ctrl.subDropToggled() ? 'active' : ''), onclick: toggleSubList }, [\r\n options.subdrop.label,\r\n Svg('arrow_big_right', {\r\n class: 'sprite-symbol sub-dropdown__arrow'\r\n })\r\n ]),\r\n m('ul', {\r\n config: setMaxHeight,\r\n class: 'dropdown__list' + (ctrl.subDropToggled() ? ' dropdown__list--active' : '')\r\n }, renderList(options.subdrop.items))\r\n ]) : ''\r\n ]),\r\n model.errorList().map(function (msg) {\r\n return m('.dropdown__error', m.trust(msg));\r\n })\r\n ]);\r\n }\r\n };\r\n\r\n return Dropdown;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Helpers/Utils',\r\n function () {\r\n\r\n var showLimitWarning = function (model) {\r\n if (\r\n (model.settings.MaxDaily === -1 && (model.settings.SavedMaxWeekly < model.minimumAmount || model.settings.SavedMaxMonthly < model.minimumAmount)) ||\r\n (model.settings.MaxWeekly === -1 && (model.settings.SavedMaxDaily < model.minimumAmount || model.settings.SavedMaxMonthly < model.minimumAmount)) ||\r\n (model.settings.MaxMonthly === -1 && (model.settings.SavedMaxDaily < model.minimumAmount || model.settings.SavedMaxWeekly < model.minimumAmount))\r\n ) {\r\n return 'Description/OtherLimitBelow';\r\n }\r\n if (\r\n (model.settings.MaxDaily !== -1 && model.settings.MaxDaily < model.minimumAmount) ||\r\n (model.settings.MaxWeekly !== -1 && model.settings.MaxWeekly < model.minimumAmount) ||\r\n (model.settings.MaxMonthly !== -1 && model.settings.MaxMonthly < model.minimumAmount)\r\n ) {\r\n return 'Description/LimitBelowMinDepositLimit';\r\n }\r\n return false;\r\n\r\n };\r\n\r\n return {\r\n showLimitWarning: showLimitWarning\r\n };\r\n });","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/TableUtils', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils'\r\n], function (Utils) {\r\n\r\n var updateOffset = function (state) {\r\n var timeDiff = state.currentDate().setHours(0, 0, 0, 0) - state.selectedDate().setHours(0, 0, 0, 0);\r\n var offset = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n state.offset(offset < 1 ? 1 : offset + 1);\r\n };\r\n\r\n var toggleCalendar = function (state) {\r\n state.calendarToggled(!state.calendarToggled());\r\n };\r\n\r\n var selectFilter = function (state, filter) {\r\n state.activeFilter(filter);\r\n };\r\n\r\n var setSelectedDate = function (state) {\r\n var dateOffset = (24 * 60 * 60 * 1000) * (parseInt(state.offset(), 10) - 1); // Default offset is 1. Hence we subtract 1 to make sure to get proper dates\r\n state.selectedDate(new Date(state.selectedDate().getTime() - dateOffset));\r\n };\r\n\r\n var getSelectedDate = function (state) {\r\n return Utils.formatDateOnly(state.selectedDate());\r\n };\r\n\r\n var fetchPrevious = function (state) {\r\n state.page(parseInt(state.page(), 10) - 1);\r\n };\r\n\r\n var fetchNext = function (state) {\r\n state.page(parseInt(state.page(), 10) + 1);\r\n };\r\n\r\n var setFilterValues = function (options, index, response, filter) {\r\n var values = ['Header', 'Label', 'OffsetEnabled'];\r\n values.forEach(function (value) {\r\n var keyValue = response[filter][value];\r\n if (keyValue !== null && keyValue.length !== 0) {\r\n options[index][lowerFirstChar(value)] = keyValue;\r\n }\r\n });\r\n };\r\n\r\n var lowerFirstChar = function (str) {\r\n return str.substring(0, 1).toLowerCase() + str.substring(1);\r\n };\r\n\r\n var twoYearsAgo = function () {\r\n var currentDate = new Date();\r\n var pastDate = currentDate.setFullYear(currentDate.getFullYear() - 2);\r\n return new Date(pastDate);\r\n };\r\n\r\n var isBeyondLimit = function (state) {\r\n // Magic number (2*365) is the equivalent of two years. This represents the length that SG keeps data online available for us.\r\n // After two years data is moved to physical and offline storage.\r\n return (parseInt(state.period(), 10) + parseInt(state.offset(), 10) - 1) > (2 * 365);\r\n };\r\n\r\n return {\r\n updateOffset: updateOffset,\r\n toggleCalendar: toggleCalendar,\r\n selectFilter: selectFilter,\r\n setSelectedDate: setSelectedDate,\r\n getSelectedDate: getSelectedDate,\r\n fetchPrevious: fetchPrevious,\r\n fetchNext: fetchNext,\r\n setFilterValues: setFilterValues,\r\n twoYearsAgo: twoYearsAgo,\r\n isBeyondLimit: isBeyondLimit\r\n };\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Templates/ReceiptPage', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button'\r\n], function (m, Utils, StepGuide, Button) {\r\n 'use strict';\r\n\r\n var ReceiptPage = function (options) {\r\n var model = {\r\n limits: options.limits || {},\r\n settings: options.settings || {},\r\n title: options.title || null,\r\n stepCurrent: options.stepCurrent,\r\n stepMax: options.stepMax,\r\n stepRoutes: options.stepRoutes,\r\n stepLabels: options.stepLabels,\r\n dictionary: options.dictionary,\r\n callback: options.callback,\r\n callback2: options.callback2,\r\n previousLocation: options.previousLocation || 'en tidligere side',\r\n redirectButtonText: options.redirectButtonText || 'Fortsæt',\r\n redirectButtonText2: options.redirectButtonText2,\r\n buttonLoading: options.buttonLoading || false,\r\n buttonLoading2: options.buttonLoading2 || false,\r\n redirectCallback: options.redirectCallback || null,\r\n uiTestId: options.uiTestId || 'amount-limit-confirm__receiptPage'\r\n };\r\n\r\n var d = options.dictionary;\r\n\r\n var notifyLabel = function (limit) {\r\n if (!limit.PlannedAt) {\r\n return d('TimeLabels/LimitActiveImmediately');\r\n } else {\r\n if (limit.PlannedValue) {\r\n return d('TimeLabels/LimitActiveAt') + Utils.formatDateShort(new Date(limit.PlannedAt));\r\n } else {\r\n return d('TimeLabels/LimitDeletedAt') + Utils.formatDateShort(new Date(limit.PlannedAt));\r\n }\r\n }\r\n };\r\n\r\n var valueLabel = function (limit) {\r\n if (!limit.PlannedAt) {\r\n return separate(limit.Value / 100);\r\n } else {\r\n if (limit.PlannedValue) {\r\n return separate(limit.PlannedValue / 100);\r\n } else {\r\n return d('LimitLabels/DeletedLimit');\r\n }\r\n }\r\n };\r\n\r\n var valuePostfix = function (limit) {\r\n if (!limit.PlannedAt) {\r\n return { class: 'amount-limit-confirm__item-value--currency' };\r\n } else {\r\n if (limit.PlannedValue) {\r\n return { class: 'amount-limit-confirm__item-value--currency' };\r\n } else {\r\n return { class: 'amount-limit-confirm__item-value--removed' };\r\n }\r\n }\r\n };\r\n\r\n // Thousand separate limits for limits above 1000\r\n var separate = function (value) {\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\r\n };\r\n\r\n var limitElement = function (limit, dictionaryText) {\r\n return m('.amount-limit-confirm__option', [\r\n m('.amount-limit-confirm__item', [\r\n m('.amount-limit-confirm__item-current', [\r\n m('.amount-limit-confirm__item-label', dictionaryText),\r\n m('.amount-limit-confirm__item-value', valuePostfix(limit), valueLabel(limit))\r\n ]),\r\n m('.amount-limit-confirm__item-notify', notifyLabel(limit))\r\n ])\r\n ]);\r\n };\r\n\r\n // If receipt page is loaded without proper data then return to root page by removing last subpage\r\n if (Object.keys(model.settings).length === 0 && model.settings.constructor === Object) {\r\n var url = window.location.href;\r\n window.location.replace(url.substring(0, url.lastIndexOf('/') + 1));\r\n } else {\r\n history.replaceState({}, '#reload');\r\n }\r\n\r\n window.onpopstate = function () {\r\n location.reload();\r\n };\r\n\r\n return m('.amount-limit-confirm__content', {\r\n 'data-uitest-id': model.uiTestId\r\n }, [\r\n model.stepCurrent ? StepGuide(model.stepCurrent, model.stepMax, model.stepRoutes(), model.stepLabels()) : null,\r\n m('.amount-limit-confirm__content-inner', [\r\n m('.amount-limit-confirm__verification', [\r\n m('svg', { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 130.2 130.2' }, [\r\n m('polyline', {\r\n points: '100.2,40.2 51.5,88.8 29.8,67.5',\r\n class: 'path check',\r\n fill: 'none',\r\n stroke: '#004b32',\r\n 'stroke-width': '10'\r\n })\r\n ]),\r\n m('h1', model.title)\r\n ]),\r\n m('.amount-limit-confirm__limit-options', [\r\n model.settings.MaxDaily ? limitElement(model.limits[0], d('LimitLabels/DailyLimit')) : null,\r\n model.settings.MaxWeekly ? limitElement(model.limits[1], d('LimitLabels/WeeklyLimit')) : null,\r\n model.settings.MaxMonthly ? limitElement(model.limits[2], d('LimitLabels/MonthlyLimit')) : null\r\n ]),\r\n d('Description/ReceiptAbstract').length > 0 ? m('.amount-limit-confirm__abstract', [\r\n m('p', m.trust(d('Description/ReceiptAbstract')))\r\n ]) : null,\r\n m('.pam__button-container', [\r\n m(Button, {\r\n text: { default: model.redirectButtonText },\r\n loading: model.buttonLoading,\r\n id: 'leftbutton',\r\n onclick: function (e) {\r\n e.preventDefault();\r\n model.callback();\r\n },\r\n }),\r\n model.redirectButtonText2 ?\r\n m(Button, {\r\n text: { default: model.redirectButtonText2 },\r\n loading: model.buttonLoading2,\r\n id: 'rightbutton',\r\n classes: { default: 'pam__button pam__button--blue' },\r\n onclick: function (e) {\r\n e.preventDefault();\r\n model.callback2();\r\n }\r\n }) : null\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n return ReceiptPage;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Reepay', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils'\r\n], function (Utils) {\r\n\r\n\r\n var load = function () {\r\n var promise = new Promise(function (resolve) {\r\n // Initialize Reepay if we haven't done this already.\r\n // It's a design choice that we do not keep a copy of the javascript in our vendor folder.\r\n if (window.Reepay === undefined) {\r\n window.include('https://checkout.reepay.com/checkout.js', function () {\r\n resolve();\r\n });\r\n } else {\r\n resolve();\r\n }\r\n\r\n });\r\n\r\n return promise;\r\n };\r\n\r\n var checkout = function (token, retries) {\r\n if (retries) {\r\n if (retries === 1) {\r\n console.error('Stopping checkout, after 3 failed attempts.');\r\n return;\r\n }\r\n retries--;\r\n } else {\r\n retries = 3;\r\n }\r\n if (window.Reepay) {\r\n new window.Reepay.WindowCheckout(token);\r\n } else {\r\n // Reepay not loaded, lets try again.\r\n load().then(function () {\r\n checkout(token, retries);\r\n });\r\n\r\n\r\n }\r\n };\r\n\r\n var isApplePayAvailable = function () {\r\n if (!Utils.isTopFrame() && !Utils.isApp()) {\r\n return false;\r\n }\r\n\r\n if (typeof window.Reepay?.isApplePayAvailable === 'function') {\r\n return window.Reepay.isApplePayAvailable();\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var isGooglePayAvailable = function () {\r\n if (typeof window.Reepay.isGooglePayAvailable === 'function') {\r\n return window.Reepay.isGooglePayAvailable();\r\n }\r\n return false;\r\n };\r\n\r\n return {\r\n load: load,\r\n checkout: checkout,\r\n isApplePayAvailable: isApplePayAvailable,\r\n isGooglePayAvailable: isGooglePayAvailable\r\n };\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Recaptcha', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Recaptcha'\r\n], function (m, RecaptchaHelper) {\r\n 'use strict';\r\n\r\n var Recaptcha = {\r\n\r\n controller: function (options) {\r\n var self = this;\r\n self.options = {\r\n model: null,\r\n validate: null,\r\n align: 'left', // left, right or center\r\n class: '',\r\n id: '',\r\n uiTestId: null,\r\n ...options\r\n };\r\n\r\n self.options.model(self.options.model() ? self.options.model().toString() : self.options.model()); // in case model is not already a string, this conversion helps for regex validation\r\n self.model = self.options.model;\r\n\r\n window.reCaptchaReady = RecaptchaHelper.reCaptchaReady;\r\n\r\n window.reCaptchaCallback = function () {\r\n self.model.validate(['Recaptcha']).then(m.redraw, m.redraw);\r\n };\r\n\r\n },\r\n\r\n view: function (ctrl) {\r\n var options = ctrl.options;\r\n var haserror = ctrl.model.errorList && ctrl.model.errorList().length > 0;\r\n return m('span', [\r\n m('div', {\r\n id: options.id,\r\n class: ['custom-input', 'recaptcha--align-' + options.align].join(' '),\r\n config: function (elem, inited) {\r\n if (!inited) {\r\n RecaptchaHelper.reCaptchaInit(elem);\r\n }\r\n }\r\n }, []\r\n ), [haserror ?\r\n ctrl.model.errorList().map(function (msg) {\r\n return m('div', { class: ['custom-input__error', 'recaptcha--align-' + options.align].join(' ') }, m.trust(msg));\r\n }) : null\r\n ]]);\r\n }\r\n };\r\n return Recaptcha;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Common/Framework/ScriptLibraries/Scripts/validate',\r\n], function (m, validate) {\r\n 'use strict';\r\n\r\n function ValidationModel(model) {\r\n\r\n validate.Promise = Promise;\r\n\r\n /*\r\n This method runs the validate method of validate.js on a number of given fields of the\r\n model, which must 1) have a specific structure (see commments below), and 2) have been\r\n extended by calling extendFields (see below). A subset of its fields may be specified -\r\n e.g. for validating just the fields of a step in a 'wizard', or for validating two fields\r\n whose validity depend on each other. When calling extendField the method will be hooked\r\n up to each field of the model (by a new property 'validate', see below) and may thus\r\n also be used inside an input control component that has one field as its model.\r\n */\r\n\r\n model.prototype.validate = function fieldsValidate(fieldKeys, forceValidate) {\r\n var fields = {};\r\n var constraints = {};\r\n var self = this;\r\n fieldKeys = fieldKeys || [];\r\n forceValidate = forceValidate || false;\r\n\r\n if (typeof (fieldKeys) === 'string') {\r\n fieldKeys = [fieldKeys];\r\n }\r\n\r\n // Set up parameters for the call to validate.js\r\n for (var i = 0; i < fieldKeys.length; i++) {\r\n var field = this.fields[fieldKeys[i]];\r\n var fieldRules = this.fieldrules[fieldKeys[i]]; // field rules must be specified in validate.js' format\r\n\r\n if (fieldRules) {\r\n constraints[fieldKeys[i]] = fieldRules;\r\n }\r\n\r\n /*\r\n This method supports a model where a field can be either an m.prop() or an object\r\n with an m.prop() property named 'value'.\r\n */\r\n if (typeof (field) === 'function') { // This is a Mithril m.prop\r\n fields[fieldKeys[i]] = field();\r\n } else if (field && typeof (field.value) === 'function') {\r\n\r\n fields[fieldKeys[i]] = field.value();\r\n } else {\r\n console.error('Could not find ' + fieldKeys[i] + ' in model fields.');\r\n }\r\n }\r\n\r\n // RSVP is defined globally\r\n var chain = Promise.resolve(1); // to ensure that validations will run consecutively\r\n\r\n chain = chain.then(function () {\r\n\r\n return validate.async(fields, constraints, { fullMessages: false });\r\n }).then(function () {\r\n\r\n Object.keys(fields).forEach(function (fieldName) {\r\n self.fields[fieldName].validState(true);\r\n self.fields[fieldName].errorList([]);\r\n self.fields[fieldName].forcefullyValidated = forceValidate;\r\n });\r\n }, function (errors) {\r\n\r\n Object.keys(fields).forEach(function (fieldName) {\r\n /* Read the fieldsrules for the specific fieldname */\r\n\r\n var fieldValidatorRules = self.fieldrules[fieldName];\r\n fieldValidatorRules = typeof(fieldValidatorRules) == 'function' ? fieldValidatorRules() : fieldValidatorRules;\r\n\r\n var relatedFieldKeys = null;\r\n\r\n if (fieldValidatorRules) {\r\n Object.keys(fieldValidatorRules).forEach(\r\n function (fieldValidator) {\r\n if (fieldValidatorRules[fieldValidator] && fieldValidatorRules[fieldValidator].hasOwnProperty('relatedFieldKeys')) {\r\n relatedFieldKeys = fieldValidatorRules[fieldValidator].relatedFieldKeys;\r\n }\r\n }\r\n );\r\n }\r\n\r\n /* if these realtedkeys is not null, use these, otherwise use array of 1 with fieldname */\r\n var fieldsToCheck = relatedFieldKeys ? relatedFieldKeys : [fieldName];\r\n\r\n fieldsToCheck.forEach(function (fieldToCheck) {\r\n if (fieldName in errors) {\r\n\r\n var fieldErrors = [];\r\n\r\n errors[fieldName].forEach(function (err) {\r\n if (typeof err === 'string') {\r\n fieldErrors.push(err);\r\n } else if (err.hasOwnProperty('Detail') && err.Source.Pointer === fieldToCheck) {\r\n fieldErrors.push(err.Detail);\r\n }\r\n });\r\n\r\n if (fieldErrors.length > 0) {\r\n self.fields[fieldToCheck].validState(false);\r\n self.fields[fieldToCheck].errorList(fieldErrors);\r\n }\r\n\r\n\r\n } else {\r\n self.fields[fieldToCheck].validState(true);\r\n self.fields[fieldToCheck].errorList([]);\r\n }\r\n\r\n self.fields[fieldToCheck].forcefullyValidated = forceValidate;\r\n\r\n });\r\n\r\n });\r\n }).then(function () {\r\n m.redraw(true);\r\n }, function () {\r\n m.redraw(true);\r\n });\r\n\r\n return chain;\r\n };\r\n\r\n model.prototype.clearErrors = function () {\r\n var fields = this.fields;\r\n Object.keys(fields).map(function (value) {\r\n var f;\r\n if (typeof fields[value] === 'function') {\r\n f = fields[value];\r\n } else if (typeof fields[value].value === 'function') {\r\n f = fields[value].value;\r\n } else {\r\n f = fields[value];\r\n }\r\n f.validState(true);\r\n f.errorList([]);\r\n });\r\n };\r\n\r\n model.prototype.toPlainObject = function toPlainObject() {\r\n var fields = this.fields;\r\n var plain = {};\r\n\r\n Object.keys(fields).map(function (value) {\r\n if (typeof fields[value] === 'function') {\r\n plain[value] = fields[value]();\r\n } else if (typeof fields[value].value === 'function') {\r\n plain[value] = fields[value].value();\r\n } else {\r\n plain[value] = fields[value];\r\n }\r\n });\r\n\r\n return plain;\r\n };\r\n\r\n model.prototype.getAllErrors = function toPlainObject() {\r\n var self = this;\r\n var errors = [];\r\n Object.keys(self.fields).forEach(function (fieldKey) {\r\n var errorList = self.fields[fieldKey].errorList;\r\n if (errorList) {\r\n errorList.forEach(function (error) {\r\n errors.push(error);\r\n });\r\n }\r\n });\r\n\r\n return errors;\r\n };\r\n\r\n model.prototype.isModelValid = function isModelValid() {\r\n var self = this;\r\n var modelState = true;\r\n\r\n Object.keys(self.fields).some(function (fieldKey) {\r\n var fieldState = self.fields[fieldKey].validState();\r\n if (!fieldState) {\r\n modelState = false;\r\n }\r\n return fieldState === false;\r\n });\r\n\r\n return modelState;\r\n };\r\n\r\n /*\r\n After validating some or all of the fields of the model (using the validate method above) you\r\n might like to know whether a certain subset of fields - e.g. some fields used in a step of a\r\n 'wizard' - are all valid. This method reports the states - and the 'combined' state - of such a\r\n subset of fields.\r\n */\r\n model.prototype.getStepState = function getStepState(fieldKeys) {\r\n var groupState = true;\r\n var fieldStates = {};\r\n\r\n if (typeof (fieldKeys) === 'string') {\r\n fieldKeys = [fieldKeys];\r\n }\r\n\r\n for (var i = 0; i < fieldKeys.length; i++) {\r\n var field = this.fields[fieldKeys[i]];\r\n\r\n // If it's a collection\r\n if (typeof field === 'function' && field() && field().hasOwnProperty('models')) {\r\n fieldStates[fieldKeys[i]] = [];\r\n field().models.forEach(function (model) {\r\n var modelState = model.isModelValid();\r\n fieldStates[fieldKeys[i]].push(modelState);\r\n if (!modelState) {\r\n groupState = false;\r\n }\r\n });\r\n } else {\r\n var state = this.fields[fieldKeys[i]].validState();\r\n fieldStates[fieldKeys[i]] = state;\r\n if (!state) {\r\n groupState = false;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n state: groupState,\r\n fields: fieldStates\r\n };\r\n };\r\n\r\n model.prototype.extendFields = function extendFields(model) {\r\n for (var field in model.fields) {\r\n var f = model.fields[field];\r\n f.validState = m.prop(true);\r\n f.fieldName = field;\r\n f.validate = function () {\r\n return model.validate(this);\r\n }.bind(field);\r\n f.errorList = m.prop([]);\r\n }\r\n\r\n return model;\r\n };\r\n\r\n return model;\r\n }\r\n\r\n return ValidationModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Scripts/Data/CommonCustomValidators', [\r\n 'Common/Framework/ScriptLibraries/Scripts/validate',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n], function (validate, Request) {\r\n 'use strict';\r\n return {\r\n add: function (onAlreadyRegistered) {\r\n // the phonevalidation rules are described in https://jira.danskespil.dk/jira/browse/IU-9286\r\n validate.validators.isPhoneNumberValid = function (value, options) {\r\n if (value.substring(0, 3) === '+45' && value.length != 11) {\r\n return options.message;\r\n }\r\n\r\n // SG's phonevalidation rules\r\n if (value.search(/^\\s*(\\+\\d{2,3})*(\\s*\\d){6,20}\\s*$/)) {\r\n return options.message;\r\n }\r\n return;\r\n };\r\n\r\n validate.validators.isEmailValidForRegistration = function (value) {\r\n return new validate.Promise(function (resolve) {\r\n Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/ValidateEmail',\r\n data: {\r\n Email: value,\r\n ValidateEmail: true\r\n },\r\n preventModal: true\r\n }).then(function () {\r\n resolve();\r\n }, function (response) {\r\n if (response.status === 'error') {\r\n response.errors.forEach(function (err) {\r\n if (err.ValidationType == 1) {\r\n if (typeof onAlreadyRegistered === 'function') {\r\n onAlreadyRegistered(err.Detail);\r\n }\r\n }\r\n });\r\n\r\n resolve(response.errors);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n };\r\n\r\n validate.validators.isEmailValidForAuthenticatedUser = function (value) {\r\n return new validate.Promise(function (resolve) {\r\n Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/ValidateEmailAuthenticated',\r\n data: {\r\n Email: value,\r\n ValidateEmail: true\r\n },\r\n preventModal: true\r\n }).then(function () {\r\n resolve();\r\n }, function (response) {\r\n if (response.status === 'error') {\r\n response.errors.forEach(function (err) {\r\n if (err.ValidationType == 1) {\r\n if (typeof onAlreadyRegistered === 'function') {\r\n onAlreadyRegistered(err.Detail);\r\n }\r\n }\r\n });\r\n\r\n resolve(response.errors);\r\n } else {\r\n resolve();\r\n }\r\n });\r\n });\r\n };\r\n\r\n }\r\n };\r\n});\r\n","defineDs('Shared/Framework/Mithril/Scripts/Helpers/Animator', function () {\r\n\r\n var animating = false;\r\n\r\n var noop = function () { };\r\n\r\n\r\n // Define an animator consisting of optional incoming and outgoing animations.\r\n // alwaysAnimate is false unless specified as true: false means an incoming animation will only trigger if an outgoing animation is also in progress.\r\n // forcing dontClone to true means the outward animation will use the original element rather than a clone. This could improve performance by recycling elements, but can lead to trouble: clones have the advantage of being stripped of all event listeners.\r\n function animator(incoming, outgoing, alwaysAnimate, dontClone) {\r\n // The resulting animator can be applied to any number of components\r\n return function animate(x, y, z) {\r\n var config;\r\n var parent;\r\n var next;\r\n\r\n if (x.nodeType) { // When used as a config function\r\n return animationConfig(x, y, z);\r\n } else if (x.attrs) { // When passed a virtual DOM node (the output of m)\r\n return bindConfigTo(x);\r\n } else if (x.view) { // When applied to a Mithril module / component\r\n return {\r\n controller: x.controller || noop,\r\n view: function animatedView(ctrl) {\r\n return bindConfigTo(x.view(ctrl));\r\n }\r\n };\r\n }\r\n\r\n function bindConfigTo(node) {\r\n config = node.attrs.config;\r\n\r\n node.attrs.config = animationConfig;\r\n\r\n return node;\r\n }\r\n\r\n function animationConfig(el, init, context) {\r\n var output;\r\n var onunload;\r\n\r\n if (config) {\r\n output = config(el, init, context);\r\n // If the root element already has a config, it may also have an onunload which we should take care to preserve\r\n onunload = context.onunload;\r\n }\r\n\r\n if (!init) {\r\n if (incoming && (alwaysAnimate || animating)) {\r\n incoming(el, noop, context);\r\n }\r\n\r\n context.onunload = outgoing ? onunload ? function onunloadWrapper() {\r\n teardown();\r\n onunload();\r\n } : teardown : onunload;\r\n\r\n parent = el.parentElement;\r\n next = el.nextSibling;\r\n }\r\n\r\n return output;\r\n\r\n function teardown() {\r\n var insertion = dontClone ? el : el.cloneNode(true);\r\n var reference = null;\r\n\r\n if (next && parent && next.parentNode === parent) {\r\n reference = next;\r\n }\r\n\r\n animating = true;\r\n\r\n setTimeout(function resetAnimationFlag() {\r\n animating = false;\r\n }, 0);\r\n\r\n parent.insertBefore(insertion, reference);\r\n\r\n outgoing(insertion, function destroy() {\r\n if (parent.contains(insertion)) {\r\n parent.removeChild(insertion);\r\n }\r\n }, context);\r\n }\r\n }\r\n };\r\n }\r\n\r\n\r\n return animator;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Data/NotificationsApi', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request',\r\n], (ApiRequest, Ensighten, Request) => {\r\n const getSettings = () => Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/integration/eloqua/playernotificationsettings/get',\r\n background: true\r\n });\r\n\r\n const getConsent = () => ApiRequest({\r\n method: 'GET',\r\n url: `/api${DS.Config.CONTEXTPREFIX}/userpermissions/v1/consent`,\r\n });\r\n\r\n const setConsent = (payload) => {\r\n return ApiRequest({\r\n data: payload,\r\n method: 'POST',\r\n url: `/api${DS.Config.CONTEXTPREFIX}/userpermissions/v1/consent`,\r\n unwrapSuccess: function () {\r\n let category = 'Consent';\r\n\r\n for (const payloadItem of payload) {\r\n let action = payloadItem.Accepted ? 'Accepted' : 'Declined';\r\n let label = GetLabel(payloadItem.Id);\r\n if (label) {\r\n Ensighten.pushGaEvent(category, action, label);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n var GetLabel = function (id) {\r\n let dloTownEmailId = 402;\r\n let dloTownPushId = 1010;\r\n let dloTownCallId = 1013;\r\n let dloProdEmailId = 402;\r\n let dloProdPushId = 1457;\r\n let dloProdCallId = 1949;\r\n\r\n if (id === dloTownEmailId || id === dloProdEmailId) {\r\n return 'Email';\r\n }\r\n\r\n if (id === dloTownPushId || id === dloProdPushId) {\r\n return 'Push';\r\n }\r\n\r\n if (id === dloTownCallId || id === dloProdCallId) {\r\n return 'Call';\r\n }\r\n\r\n return '';\r\n };\r\n\r\n var updateSettings = (settings) => Request({\r\n method: 'POST',\r\n data: settings,\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/integration/eloqua/playernotificationsettings/update',\r\n background: true\r\n });\r\n\r\n var updateTermsConsentSettings = (settings) => Request({\r\n method: 'POST',\r\n data: settings,\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/integration/eloqua/playernotificationsettings/update-consent',\r\n background: true\r\n });\r\n\r\n var acknowledgeRecentlyUpgraded = function () {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/AcknowledgeRecentlyUpgraded',\r\n background: true\r\n });\r\n };\r\n\r\n return {\r\n getConsent,\r\n getSettings,\r\n setConsent,\r\n updateSettings: updateSettings,\r\n updateTermsConsentSettings: updateTermsConsentSettings,\r\n acknowledgeRecentlyUpgraded: acknowledgeRecentlyUpgraded\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('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/Domain/PlayerAccountManagement/PlayerGames/Scripts/Data/PlayerGamesApi',\r\n [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n ],\r\n function (Request) {\r\n\r\n var baseUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/playergames';\r\n\r\n var PlayerGamesApi = {\r\n\r\n filtersToUrl: function (params) {\r\n return params.reduce(function (url, param) {\r\n return url + '/' + param;\r\n }, baseUrl);\r\n },\r\n\r\n getPlayerGames: function (page, period, offset, gameType, channelId) {\r\n var params = Array.prototype.slice.call([page, period, offset, gameType, channelId]);\r\n\r\n var url = PlayerGamesApi.filtersToUrl(params);\r\n\r\n return Request({\r\n method: 'GET',\r\n url: url,\r\n background: true\r\n });\r\n },\r\n\r\n getGameDetails: function (gameId) {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PlayerGame/' + gameId,\r\n background: true\r\n });\r\n },\r\n\r\n getPendingPayout: function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetPendingPayout',\r\n background: true\r\n });\r\n },\r\n\r\n payout: function (winId, accountType) {\r\n var url = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PayoutToPlayerAccount';\r\n if (accountType === 'bank') {\r\n url = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PayoutToBank';\r\n }\r\n\r\n return Request({\r\n method: 'POST',\r\n url: url,\r\n data: {\r\n winId: winId\r\n }\r\n });\r\n },\r\n\r\n };\r\n\r\n return PlayerGamesApi;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils'\r\n], function (m, Utils) {\r\n\r\n var LoadDots = function (options) {\r\n\r\n options = Utils.extend(true, {\r\n circle: {\r\n Circle1: { class: 'dot-1', cx: '6', cy: '20', r: '6' },\r\n Circle2: { class: 'dot-2', cx: '24', cy: '20', r: '6' },\r\n Circle3: { class: 'dot-3', cx: '42', cy: '20', r: '6' },\r\n cWrapHeight: '50px',\r\n cWrapWidth: '50px'\r\n }\r\n }, options);\r\n var wrapContainer = function (content) {\r\n if (options.text && typeof options.text !== 'string') {\r\n options.text = 'Henter siden'; // Falback in case dictionary fails to load\r\n }\r\n\r\n if (options.size) {\r\n return m('div', {\r\n class: 'loaddots loaddots--' + options.size\r\n }, [\r\n options.text ? m('.loaddots__text', options.text) : null,\r\n m('div', [content])\r\n ]);\r\n } else {\r\n return content;\r\n }\r\n };\r\n\r\n return m('', [\r\n wrapContainer(\r\n m('svg.sprite-symbol', {\r\n width: options.circle.cWrapWidth,\r\n height: options.circle.cWrapHeight,\r\n xmlns: 'http://www.w3.org/2000/svg'\r\n }, [\r\n m('def', [\r\n m('style', '.dots-1{fill:#d8d8d8}.dots-2{fill:#b2b2b2}.dots-3{fill:#858585}')\r\n ]),\r\n m('circle', options.circle.Circle1),\r\n m('circle', options.circle.Circle2),\r\n m('circle', options.circle.Circle3)\r\n ])\r\n )\r\n ]);\r\n };\r\n\r\n return LoadDots;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/TableListFooter', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/TableUtils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, TableUtils, Svg) {\r\n\r\n\r\n /**\r\n * TableListFooter - Footer for TableList template\r\n *\r\n * @param {Boolean} hasNext Boolean is true if more items existing in database\r\n * @param {Array} infoDots The dots shown on the left side of the component. Takes array of objects with properties color and text.\r\n * @param {Object} controller Reference to the parent controller.\r\n * @return {Object} Returns the Mithril virtual element tree rendered by this component\r\n */\r\n\r\n var TableListFooter = function (hasNext, infoDots, controller) {\r\n return m('.table-list-footer', [\r\n hasNext ? m('.table-list-footer__fetch-next', { onclick: function () {\r\n TableUtils.fetchNext(controller.state);\r\n } }, [\r\n m('.table-list-footer__fetch-next-label', controller.filterDictionary('/Filters/DefaultOptions/Next')),\r\n Svg('arrow_big_down', {\r\n class: 'sprite-symbol dropdown__selection__arrow'\r\n })\r\n ]) : null,\r\n m('.table-list-footer__inner', [\r\n m('.table-list-footer__info-dots', infoDots.map(function (dot) {\r\n if (!dot.ShowInFooter) {\r\n return;\r\n }\r\n return m('span', {\r\n class: [\r\n 'table-list-footer__info-dots__dot',\r\n 'table-list-footer__info-dots__dot--' + dot.Color\r\n ].join(' '),\r\n }, [\r\n m('span', {\r\n class: [\r\n 'table-list-footer__info-dots__icon'\r\n ].join(' '),\r\n style: 'background-color: ' + dot.hexColor,\r\n }),\r\n m('span', dot.Name)\r\n ]);\r\n }))\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n return TableListFooter;\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/TableListHeader', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/TableUtils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Calendar',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, TableUtils, Calendar, Svg) {\r\n\r\n var TableListHeader = function (options, hasPrevious, controller) {\r\n\r\n options = options || {};\r\n\r\n\r\n return m('.table-list-header', [\r\n TableUtils.isBeyondLimit(controller.state, 730) ? m('.table-list-header__warning', controller.filterDictionary('/Filters/DefaultOptions/Warning')) : null,\r\n m('.table-list-header__filters', [\r\n m('.table__filter-row', [\r\n m('.table__filter-blur', {\r\n onclick: function () {\r\n TableUtils.selectFilter(controller.state, null);\r\n },\r\n class: !controller.state.activeFilter() ? 'table__filter-blur--hidden' : null\r\n }),\r\n options.filters ? options.filters.map(function (filter) {\r\n var isActive = controller.state.activeFilter() === filter.id;\r\n return m('.table__filter', {\r\n class: [\r\n isActive ? 'table__filter--active' : null,\r\n filter.hiddenOnMobile ? 'table__filter--hidden-on-mobile' : null\r\n ].join(' '),\r\n onclick: function () {\r\n TableUtils.selectFilter(controller.state, isActive ? null : filter.id);\r\n }\r\n }, [\r\n m('.table__filter-header', { 'data-uitest-id': filter.uiTestId }, filter.header),\r\n Svg(isActive ? 'arrow_big_up' : 'arrow_big_down', {\r\n class: 'sprite-symbol dropdown__selection__arrow'\r\n })\r\n ]);\r\n }) : null]),\r\n options.filters && controller.state.activeFilter() ? m('.table__filter-selected', [\r\n m('.table__filter-overlay', [\r\n options.filters.map(function (filter) {\r\n if (controller.state.activeFilter() === filter.id) {\r\n return m('.table__filter-items', [\r\n filter.offsetEnabled ?\r\n m('.table__filter-offset', [\r\n m('.table__filter-date', { class: controller.state.calendarToggled() ? null : 'table__filter-date--underline' }, [\r\n m('.table__filter-date--text', controller.filterDictionary('/Filters/DefaultOptions/From')),\r\n m('.table__filter-date--value', { onclick: function () {\r\n TableUtils.toggleCalendar(controller.state);\r\n } }, TableUtils.getSelectedDate(controller.state)),\r\n Svg('calendar', {\r\n onclick: function () {\r\n TableUtils.toggleCalendar(controller.state);\r\n },\r\n class: 'sprite-symbol js-change-offset-date table__filter-calendar'\r\n }),\r\n controller.state.calendarToggled() ? Calendar(controller.state.selectedDate, controller.state.minDate(), controller.state.currentDate(), '.js-change-offset-date', controller.state.calendarToggled, function () { TableUtils.updateOffset(controller.state); }, true) : null\r\n ])\r\n ]) : null,\r\n m('.table__filter-description', filter.label),\r\n filter.model.map(function (item, index) {\r\n return m('.table__filter-item', [\r\n m('.table__filter-item-value', {\r\n onclick: function () { filter.value(item.value); },\r\n 'data-uitest-id': filter.uiTestId + '-item--' + index,\r\n class: filter.value() === item.value ? 'table__filter-item-value--active' : ''\r\n }, item.text)\r\n ]);\r\n }),\r\n ]);\r\n }\r\n })\r\n ])\r\n ]) : null\r\n ]),\r\n\r\n m('span.table__header', [\r\n m('span.table__row', [\r\n m('span.table__cell-color'),\r\n options.labels && options.labels.map(function (group, index) {\r\n if (group[0].length === 0) {\r\n return m('span.table__cell', [\r\n options.tableHasButton() ? m('span.table__cell-group-cell table__cell--extend', [\r\n group[0]\r\n ]) : null\r\n ]);\r\n } else {\r\n return group.length !== 0 && group[0] !== '' ?\r\n m('span.table__cell table__cell-group ' +\r\n (index === 0 ? 'table__cell-group--left ' : '') +\r\n (index === 2 ? 'table__cell-group--right ' : '') +\r\n (group.length === 1 ? 'table__cell-group--odd ' : ''), [\r\n typeof (group) === 'object' ? group.map(function (label) {\r\n return label && m('span.table__cell-group-cell table__text--' + label.align, [\r\n label.text\r\n ]);\r\n }) : m('span.table__cell-group-cell', [group])\r\n ]) : null;\r\n }\r\n })\r\n ])\r\n ]),\r\n hasPrevious ? m('.table-list-header__fetch-previous', { onclick: function () { TableUtils.fetchPrevious(controller.state); } }, [\r\n m('.table-list-header__fetch-previous-label', controller.filterDictionary('/Filters/DefaultOptions/Previous')),\r\n Svg('arrow_big_up', {\r\n class: 'sprite-symbol dropdown__selection__arrow'\r\n })\r\n ]) : null,\r\n ]);\r\n };\r\n\r\n return TableListHeader;\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/TableList', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button'\r\n], function (m, Svg, Button) {\r\n\r\n var TableList = function (content, emptyText, loading, hasPayoutExclusion) {\r\n\r\n var orderMapping = {\r\n 1: '1',\r\n 2: '2',\r\n 3: '3',\r\n 4: '4',\r\n 5: '5',\r\n 6: '6',\r\n };\r\n\r\n loading = loading || false;\r\n\r\n var renderCell = function (item, ignoredButton) {\r\n return m('span', {\r\n class: [\r\n 'table__cell-group-cell table__text',\r\n item.order ? 'table__cell-group-cell--order-' + orderMapping[item.order] : '',\r\n item.button && item.button.hasOwnProperty('hidden') && !item.button.hidden ?\r\n '' :\r\n (item.tableHasButton && item.tableHasButton() ? 'table__cell--extend' : ''),\r\n item.align ? 'table__text--' + item.align : '',\r\n item.bold ? 'table__text--thick' : '',\r\n item.largerOnMobile ? 'table__text--largeronmobile' : '',\r\n item.button && !item.button.hidden ? 'table__button' : '',\r\n item.subText ? 'table__text--with-subtext' : '',\r\n item.hiddenOnEmpty ? 'table__text--hidden-on-mobile' : '',\r\n ].join(' ')\r\n }, [\r\n (item.text ? item.text : null),\r\n item.childContent ? m('.table__cell--child-content', item.childContent.text) : null,\r\n (item.subText ? m('span', {\r\n class: [\r\n 'table__cell--colored',\r\n 'table__cell--subtext',\r\n (item.subTextMobile ? '' : 'table__cell--hidden'),\r\n (item.subTextItalic ? 'table__text--italic' : ''),\r\n (item.color ? ' table__text--' + item.color : '')\r\n ].join(' ')\r\n }, item.subText) : null),\r\n (item.button && !item.button.hidden && !(hasPayoutExclusion && item.button.text === 'Annuller') ? m(Button, {\r\n uiTestId: item.uiTestId,\r\n classes: { default: 'pam__button' + (item.button.color ? ' pam__button--' + item.button.color : '') },\r\n onclick: item.button.callback,\r\n text: { default: item.button.text }\r\n }) : null)\r\n ]);\r\n };\r\n\r\n if (!content || content.length === 0) {\r\n return m('.table__body', [\r\n m('.table__row table__row--extend', ['',\r\n m('.table__cell--empty table__text table__text--larger table__text--center', [\r\n (!loading ? emptyText :\r\n m('.loader-animation-container', [\r\n m('svg.loader-animation', {\r\n height: '100%',\r\n width: '100%',\r\n viewBox: '0 0 50 50',\r\n xmlns: 'http://www.w3.org/2000/svg'\r\n }, [\r\n m('def', [\r\n m('style', '.dots-1{fill:#d8d8d8}.dots-2{fill:#b2b2b2}.dots-3{fill:#858585}')\r\n ]),\r\n m('circle', { class: 'dot-1', cx: '6', cy: '20', r: '6' }),\r\n m('circle', { class: 'dot-2', cx: '24', cy: '20', r: '6' }),\r\n m('circle', { class: 'dot-3', cx: '42', cy: '20', r: '6' })\r\n ])\r\n ])\r\n )\r\n ])\r\n ])\r\n ]);\r\n }\r\n\r\n return m('.table__body', [\r\n content.length > 0 ? content.map(function (item) {\r\n return m('span', {\r\n class: [\r\n 'table__row',\r\n (item.showArrow ? 'table__row--arrow' : '')\r\n ].join(' '),\r\n onclick: function () {\r\n item.callback();\r\n }\r\n }, [\r\n m('span.table__cell-color', { style: 'background-color: ' + item.hexColor }),\r\n m('span', {\r\n class: [\r\n 'table__cell table__cell-group'\r\n ].join(' ')\r\n }, item.left.content.map(renderCell)),\r\n (item.middle.content && item.middle.content.length > 0 && !(item.middle.content[0].tableHasButton && item.middle.content[0].tableHasButton() && (hasPayoutExclusion && item.middle.content[0].button.text === 'Annuller udbetaling')) ?\r\n m('span.table__cell ' + (item.middle.content[0].tableHasButton && item.middle.content[0].tableHasButton() ? 'table__cell--extend' : ''), item.middle.content.map(renderCell)) : null\r\n ),\r\n m('span', {\r\n class: [\r\n 'table__cell table__cell-group table__cell-group--right ',\r\n (item.right.content.length === 1 ? 'table__cell-group--odd ' : ''),\r\n (item.right.cssClass ? item.right.cssClass : ''),\r\n (item.headerType ? 'table__cell-group--' + item.headerType : '')\r\n ].join(' ')\r\n }, item.right.content.map(renderCell)),\r\n m('span.table__cell-arrow',\r\n item.showArrow ? Svg('arrow_big_right') : null\r\n )\r\n ]);\r\n }) : null,\r\n ]);\r\n };\r\n return TableList;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Card', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, Svg) {\r\n\r\n var Card = function (props) {\r\n var card = props.card;\r\n var rootCtrl = props.controller;\r\n var isEmpty = props.isEmpty;\r\n var paymentApp = props.paymentApp;\r\n var d = rootCtrl.d;\r\n var onClick = props.onclick;\r\n var hasOnClick = typeof onClick === 'function';\r\n var isSelected = props.isSelected;\r\n var allowPrimarySelection = props.allowPrimarySelection;\r\n var checkForSubscription = props.checkForSubscription;\r\n var newCardLabel = props.newCardLabel;\r\n var expiredLabel = props.expiredLabel;\r\n var showCardIcons = props.showCardIcons;\r\n var canDelete = props.canDelete;\r\n var name = card ? (card.cardDisplayName || card.cardName) : '';\r\n\r\n\r\n if (isEmpty) {\r\n return m('.card .card--empty', {\r\n onclick: rootCtrl.addNew\r\n }, [\r\n m('.card__new', [\r\n Svg('plus', { class: 'card__new-icon' }),\r\n m('span.card__new-text', newCardLabel),\r\n showCardIcons ? Svg('payment_cards', { class: 'payment__cards' }) : null,\r\n ])\r\n ]);\r\n }\r\n\r\n if (paymentApp) {\r\n return m('.card .card--payment-app', {\r\n class: [\r\n isSelected ? 'card--selected' : '',\r\n hasOnClick ? 'card--clickable' : '',\r\n ].join(' '),\r\n onclick: onClick\r\n }, [\r\n m('.card__details .card__details--payment-app', [\r\n m('.card__title', name),\r\n m('.card__app-logo', [\r\n m('svg.sprite-symbol[height=\"50px\"][width=\"50px\"][xmlns=\"http://www.w3.org/2000/svg\"]', [\r\n m('use[href=\"/Components/DanskeSpil/Framework/PlayerAccountManagement/Graphics/SpriteSheets/creditcards.svg#' + name.toLowerCase() + '\"]')\r\n ]),\r\n ]),\r\n ]),\r\n hasOnClick ? m('.card__radio', [\r\n m('input', {\r\n type: 'radio',\r\n id: 'cardRadio',\r\n value: 'card',\r\n checked: (isSelected ? 'checked' : false)\r\n }),\r\n m('label', { for: 'cardRadio' }, '')\r\n ]) : null\r\n ]);\r\n }\r\n\r\n return m('.card', {\r\n 'data-uitest-id': card.cardId,\r\n class: [\r\n card.isAssociatedWithSubscription && checkForSubscription ? 'card--with-subscription' : '',\r\n isSelected ? 'card--selected' : '',\r\n card.cardExpirationDate.expired ? 'card--expired' : '',\r\n hasOnClick ? 'card--clickable' : '',\r\n allowPrimarySelection ? 'card--secondary' : '',\r\n canDelete ? 'card--delete-available' : ''\r\n ].join(' '),\r\n onclick: function () {\r\n if (hasOnClick && !card.cardExpirationDate.expired) {\r\n onClick();\r\n }\r\n }\r\n }, [\r\n m('.card__logo', [\r\n m('svg.sprite-symbol[height=\"50px\"][width=\"50px\"][xmlns=\"http://www.w3.org/2000/svg\"]', [\r\n m('use[href=\"/Components/DanskeSpil/Framework/PlayerAccountManagement/Graphics/SpriteSheets/creditcards.svg#' + name.toLowerCase() + '\"]')\r\n ]),\r\n ]),\r\n card.isApplePay && name.toLowerCase() !== 'applepay' ? m('.card__logo', [\r\n m('svg.sprite-symbol[height=\"50px\"][width=\"50px\"][xmlns=\"http://www.w3.org/2000/svg\"]', [\r\n m('use[href=\"/Components/DanskeSpil/Framework/PlayerAccountManagement/Graphics/SpriteSheets/creditcards.svg#applepay\"]')\r\n ]),\r\n ]) : null,\r\n card.isAssociatedWithSubscription && checkForSubscription ? m('.card__subscription-information', d('ChangeCards/CardAssociatedWithSubscription')) : null,\r\n m('.card__info', [\r\n m('.card__title', [\r\n name,\r\n card.cardExpirationDate.expired ? m('span.card__expired', expiredLabel) : null,\r\n ]),\r\n m('.card__details', [\r\n m('.card__number', rootCtrl.maskPartialPan(card.cardNumberObfuscated || card.cardNumber)),\r\n m('.card__date', card.expirationDate || (card.cardExpirationDate.month + '/' + card.cardExpirationDate.year)),\r\n ]),\r\n !card.cardExpirationDate.expired && allowPrimarySelection ? m('.card__select', [\r\n m('.card__select-label', {\r\n onclick: function () {\r\n rootCtrl.setPrimaryCard(card.cardId);\r\n }\r\n }, d('ChangeCards/SetPrimaryCard'))\r\n ]) : null,\r\n ]),\r\n canDelete ? m('button', {\r\n type: 'button',\r\n class: ['card__delete', card.isAssociatedWithSubscription ? 'card__delete--disabled' : ''].join(' '),\r\n onclick: function () {\r\n rootCtrl.dialogDeleteCard(card);\r\n }\r\n }, [\r\n Svg('trash', {\r\n class: 'modal-header-icon'\r\n }),\r\n m('span', d('ChangeCards/DeleteCard'))\r\n ]) : null,\r\n\r\n hasOnClick && !card.cardExpirationDate.expired ? m('.card__radio', [\r\n m('input', {\r\n type: 'radio',\r\n id: 'cardRadio',\r\n value: 'card',\r\n checked: (isSelected ? 'checked' : false)\r\n }),\r\n m('label', { for: 'cardRadio' }, '')\r\n ]) : null\r\n\r\n ]);\r\n\r\n };\r\n\r\n return Card;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Helpers/Mapping', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n], function (Dictionary, Utils) {\r\n\r\n var d = Dictionary.get.bind({ prefix: 'PlayerTransactions/' });\r\n var mapping;\r\n var dictionaryPlaceholders = {\r\n GameName: true\r\n };\r\n\r\n\r\n Dictionary.ready.then(function () {\r\n mapping = {\r\n typeDisplayName: {\r\n Deposit: d('Types/Deposit'),\r\n Withdrawal: d('Types/Withdrawal'),\r\n Wager: d('Types/Wager'),\r\n Win: d('Types/Win'),\r\n Reservation: d('Types/Reservation'),\r\n BankDeposit: d('Types/BankDeposit'),\r\n AbandonedWithdrawal: d('Types/AbandonedWithdrawal'),\r\n RejectedWithdrawal: d('Types/RejectedWithdrawal')\r\n\r\n }\r\n };\r\n });\r\n\r\n var formatAmountWithPrefix = function (amount) {\r\n amount = Utils.formatCurrency(amount);\r\n var prefix = '';\r\n if (amount.charAt(0) !== '-') {\r\n prefix = '+';\r\n }\r\n return prefix + amount;\r\n };\r\n\r\n var mapStatusColor = function (status, dots) {\r\n var color = dots.filter(function (dot) {\r\n return dot.Id === status;\r\n })[0];\r\n return color.hexColor;\r\n };\r\n\r\n var replacePlaceholderInDictionary = function (text, transaction) {\r\n\r\n Object.keys(dictionaryPlaceholders).forEach(function (placeholderName) {\r\n text = text.replace('{' + placeholderName + '}', transaction[placeholderName]);\r\n });\r\n return text;\r\n };\r\n\r\n var mapTypeDisplayName = function (transaction, settings) {\r\n var setting = settings.filter(function (type) {\r\n return transaction.Type == type.TypeId && transaction.Status == type.Status.Id;\r\n })[0];\r\n var typeText = '';\r\n\r\n if (setting) {\r\n var matchingSubType = setting.SubTypes.filter(function (subtype) {\r\n return transaction.SubType == subtype.SubTypeId;\r\n });\r\n if (matchingSubType.length > 0) {\r\n typeText = matchingSubType[0].Title;\r\n } else {\r\n typeText = setting.Title;\r\n }\r\n }\r\n\r\n if (transaction.Type === 'Wager' || transaction.Type === 'Win') {\r\n if (typeof transaction.GameName !== 'undefined' && transaction.GameName !== '') {\r\n return transaction.GameName;\r\n }\r\n }\r\n return replacePlaceholderInDictionary(typeText, transaction) || transaction.Type;\r\n };\r\n\r\n\r\n var dropdowns = function (dropdownArray, valueKey, textKey) {\r\n var mappedOptions = dropdownArray.map(function (dropdown) {\r\n var value = dropdown[valueKey];\r\n if (typeof value === 'string') {\r\n value = dropdown[valueKey].toLowerCase();\r\n }\r\n return {\r\n value: value,\r\n text: dropdown[textKey]\r\n };\r\n });\r\n\r\n return mappedOptions;\r\n };\r\n\r\n var tableHeaderRender = function (data) {\r\n var playerTransactionsPeriods = data.Periods.Filters || [];\r\n var playerTransactionsTypes = data.TransactionTypes.Filters || [];\r\n var formattedPeriods = dropdowns(playerTransactionsPeriods, 'Key', 'Name');\r\n var formattedTypes = dropdowns(playerTransactionsTypes, 'Key', 'Name');\r\n\r\n return {\r\n periods: formattedPeriods,\r\n types: formattedTypes\r\n };\r\n };\r\n\r\n return {\r\n map: mapping,\r\n mapStatusColor: mapStatusColor,\r\n mapTypeDisplayName: mapTypeDisplayName,\r\n dropdowns: dropdowns,\r\n tableHeaderRender: tableHeaderRender,\r\n formatAmountWithPrefix: formatAmountWithPrefix\r\n };\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('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Data/PlayerTransactionsBalanceApi',\r\n [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n ],\r\n function (Request) {\r\n // Gets all dictionary data for the page\r\n var getData = function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/balance'\r\n });\r\n };\r\n\r\n var releasePokerWinnings = function () {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/releasepokerwinnings'\r\n });\r\n };\r\n\r\n return {\r\n getData: getData,\r\n releasePokerWinnings: releasePokerWinnings\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Data/PlayerTransactionsApi',\r\n [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n ],\r\n function (Request) {\r\n\r\n var baseUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PlayerTransactions';\r\n\r\n var PlayerTransactionsApi = {\r\n\r\n filtersToUrl: function (params) {\r\n return params.reduce(function (url, param) {\r\n return url + '/' + param;\r\n }, baseUrl);\r\n },\r\n\r\n getPlayerTransactions: function () {\r\n\r\n var params = Array.prototype.slice.call(arguments);\r\n\r\n var url = PlayerTransactionsApi.filtersToUrl(params);\r\n\r\n return Request({\r\n method: 'GET',\r\n url: url,\r\n background: true\r\n });\r\n },\r\n\r\n getTransactionDetails: function (transactionId) {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PlayerTransaction/' + transactionId,\r\n background: true\r\n });\r\n },\r\n\r\n cancelPendingPayout: function () {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/CancelPendingTransaction'\r\n });\r\n },\r\n\r\n getCancelPayoutExclusion: function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/api/GetExclusions'\r\n });\r\n }\r\n\r\n };\r\n\r\n return PlayerTransactionsApi;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Box',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n ],\r\n function (m, Svg) {\r\n\r\n var Box = function (content) {\r\n\r\n var header = content.header;\r\n var body = content.body;\r\n var footer = content.footer;\r\n\r\n var toggleSubdrop = function (id) {\r\n\r\n var subdrop = document.getElementById(id + '-subdrop');\r\n document.getElementById(id + '-dropdown').classList.toggle('dropdown-open');\r\n document.getElementById(id + '-subdrop').classList.toggle('subdrop-open');\r\n if (subdrop.style.height == '0px') {\r\n subdrop.style.height = (4 * subdrop.children.length) + 'em';\r\n } else {\r\n subdrop.style.height = '0px';\r\n }\r\n };\r\n\r\n var boxItem = function (item) {\r\n // if item.visible is undefined or null, we don't want to make early return\r\n if (typeof item.visible !== 'undefined' && !item.visible) {\r\n return;\r\n }\r\n\r\n return m('li.box-item', { class: item.dropdown ? ('box-item__has-dropdown') : '', id: item.dropdown ? (item.dropdown.id + '-dropdown') : '' }, [\r\n\r\n m((item.callback || item.link) ? 'a' : 'div', (function () {\r\n var attributes = {\r\n class: (item.callback || item.link) ? ('box-item__selectable') : 'box-item__not-selectable',\r\n id: item.id\r\n };\r\n\r\n if (item.callback || item.dropdown) {\r\n attributes.onclick = function () {\r\n item.callback ? item.callback() : null;\r\n item.dropdown ? toggleSubdrop(item.dropdown.id) : null;\r\n };\r\n }\r\n if (item.link) {\r\n attributes.href = item.link;\r\n }\r\n\r\n return attributes;\r\n })(),\r\n\r\n [\r\n item.marking && item.marking().show ? (function () {\r\n item.left.marking = item.marking().show;\r\n return m('.box-item__marking' + '.box-item__marking--' + item.marking().markingType, '!');\r\n })() : null,\r\n item.left.template ? item.left.template(item.left) : (function () {\r\n return (body.template && body.template.left) ? body.template.left(item.left) : baseTemplate.left(item.left);\r\n })(),\r\n item.right.template ? item.right.template(item.right) : (function () {\r\n return (body.template && body.template.right) ? body.template.right(item.right) : baseTemplate.right(item.right);\r\n })(),\r\n item.arrow ? m('.box-item__arrow', [\r\n Svg(item.dropdown ? 'arrow_big_down' : 'arrow_big_right')\r\n ]) : null,\r\n ])\r\n\r\n ]);\r\n };\r\n\r\n\r\n var boxHeader = function (item) {\r\n return item.template ? item.template(item) : [\r\n item.left.template ? item.left.template(item) : m('.box-header__left', [\r\n m('h2', item.left.text)\r\n ]),\r\n item.right.template ? item.right.template(item) : m('.box-header__right', [\r\n m('h2', item.right.text)\r\n ]),\r\n ];\r\n };\r\n\r\n var boxFooter = function (item) {\r\n return item.template ? item.template(item) : [\r\n item.left.template ? item.left.template(item.left) : m('.box-footer__left', [\r\n m('h2', item.left.text)\r\n ]),\r\n item.right.template ? item.right.template(item.right) : m('.box-footer__right', [\r\n m('h2', item.right.text)\r\n ]),\r\n ];\r\n };\r\n\r\n var baseTemplate = {\r\n left: function (item) {\r\n return m('.box-item__left', [\r\n m('h3.bold', item.text),\r\n m('span', item.subtext),\r\n ]);\r\n },\r\n right: function (item) {\r\n return m('.box-item__right', [\r\n m('h3', item.text),\r\n m('span', item.subtext),\r\n ]);\r\n }\r\n };\r\n\r\n return m('.box-wrapper', [\r\n m('.box', [\r\n header ? m('.box-header', [boxHeader(header)]) : null,\r\n m('.box-body', [\r\n (body.items.length > 0) ? body.items.map(function (item) {\r\n return item === undefined ? null : [boxItem(item), item.dropdown ? m('ul.box-item__subdrop', { id: item.dropdown.id + '-subdrop', style: 'height: 0px' }, [\r\n item.dropdown.items.map(function (item) {\r\n return boxItem(item);\r\n })\r\n ]) : null];\r\n }) : null\r\n ]),\r\n footer ? m('.box-footer', [boxFooter(footer)]) : null,\r\n ])\r\n ]);\r\n };\r\n\r\n return Box;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary'\r\n], function (m, Dictionary) {\r\n var ReceiptData = function (content) {\r\n\r\n var contentProp = m.prop({});\r\n\r\n var defaultContent = {\r\n title: null,\r\n description: null,\r\n descriptionTemplate: null,\r\n bodyText: null,\r\n bodyHtml: null,\r\n callback: null,\r\n icon: 'round_big_check',\r\n waitTime: 5,\r\n previousLocation: null,\r\n waitText: null,\r\n redirectButtonText: null,\r\n navigationBackBar: false,\r\n };\r\n\r\n var filledContent = {\r\n ...defaultContent,\r\n ...content\r\n };\r\n\r\n Dictionary.ready.then(function () {\r\n var texts = Dictionary.get.bind({ prefix: 'ReceiptPageDefault' });\r\n var currentContent = contentProp();\r\n var filledContent = Object.keys(texts).reduce(function (obj, key) {\r\n var formattedKey = key.slice(0, 1).toLowerCase() + key.slice(1);\r\n if (!obj[formattedKey]) obj[formattedKey] = texts[key];\r\n return obj;\r\n }, currentContent);\r\n\r\n contentProp(filledContent);\r\n });\r\n\r\n contentProp.assign = function (content) {\r\n contentProp({ ...contentProp(), ...content });\r\n return contentProp;\r\n };\r\n\r\n contentProp.assign(filledContent);\r\n\r\n return contentProp;\r\n };\r\n\r\n return ReceiptData;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Receipt', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Data/PaymentApi',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ReceiptPage'\r\n\r\n],\r\nfunction (Component, Ensighten, PaymentApi, Dictionary, Utils, LoadDots, ReceiptPage) {\r\n 'use strict';\r\n\r\n Component('player-payment-receipt', [\r\n Dictionary,\r\n ], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n\r\n var root = {\r\n\r\n controller: function () {\r\n\r\n this.pageSettings = settings;\r\n this.isLoggedIn = m.prop(settings.IsLoggedIn);\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerTransactions/Receipt/' });\r\n this.payment = m.prop({\r\n orderId: null,\r\n externalId: '',\r\n amount: 0,\r\n fee: 0,\r\n savedCard: false,\r\n status: 'PROCESSING'\r\n });\r\n\r\n this.receiptCallback = function () {\r\n location.href = this.pageSettings.CallToActionUrl;\r\n }.bind(this);\r\n\r\n this.getDeposit = function () {\r\n\r\n var depositId = Utils.getParameter('invoice', window.location.search);\r\n if (depositId) {\r\n if (depositId.indexOf('_') > -1) {\r\n depositId = depositId.substring(depositId.indexOf('_') + 1);\r\n }\r\n\r\n const paymentMethod = Utils.getParameter('payment_method', window.location.search);\r\n const cardSaved = paymentMethod && !paymentMethod.startsWith('ve_');\r\n\r\n return PaymentApi.getDeposit(depositId).then(function (response) {\r\n var paymentData = {\r\n orderId: response.orderId || '-',\r\n externalId: response.externalId || '',\r\n amount: response.amount ? Utils.convertCentsToKroner(response.amount) : 0,\r\n fee: response.fee ? Utils.convertCentsToKroner(response.fee) : 0,\r\n savedCard: !!cardSaved,\r\n status: response.status\r\n };\r\n this.payment(paymentData);\r\n\r\n }.bind(this));\r\n } else {\r\n this.payment({\r\n status: 'REJECTED'\r\n });\r\n }\r\n return this.payment();\r\n }.bind(this);\r\n\r\n if (this.isLoggedIn()) {\r\n m.sync(this.getDeposit()).then(function () {\r\n if (this.payment().amount > 0) {\r\n Ensighten.pushGaEvent('deposit', this.pageSettings.EnsightenTrackingLabel, this.payment().amount);\r\n } else {\r\n Ensighten.pushGaEvent('errorMessage', this.pageSettings.EnsightenTrackingLabel, 'ingen_kvitterings_data');\r\n }\r\n }.bind(this));\r\n } else {\r\n this.payment().status = 'PENDING';\r\n Ensighten.pushGaEvent('authenticationError', this.pageSettings.EnsightenTrackingLabel, 'bruger_ikke_logget_ind');\r\n }\r\n },\r\n\r\n view: function (controller) {\r\n this.settings = controller.pageSettings;\r\n var payment = controller.payment();\r\n\r\n return m('.payment payment--receipt-standalone', [\r\n m('.pam-page__content', [\r\n payment.status === 'PROCESSING' ? m('.pam-page__inner-content', [\r\n m('div', LoadDots({\r\n size: 'half-height',\r\n text: 'Indlæser'\r\n }))\r\n ]) :\r\n m('.pam-page__inner-content', [\r\n payment.orderId && payment.status === 'ACCEPTED' ?\r\n ReceiptPage({\r\n title: settings.SuccessHeader,\r\n description: settings.SuccessDescription,\r\n descriptionTemplate: m('div', [\r\n m('h3', settings.SuccessDescription),\r\n payment.savedCard ? m('h3', controller.d('SavedCard')) : ''\r\n ]),\r\n icon: 'round_big_check',\r\n noCountdown: true,\r\n redirectButtonText: settings.CallToActionLabel,\r\n callback: controller.receiptCallback,\r\n buttonsDisabled: !settings.CallToActionEnabled,\r\n subTemplate: m('.info-ribbon .info-ribbon--notice .summary', [\r\n\r\n m('.summary__list', [\r\n m('.summary__list__row', [\r\n m('.label', controller.d('OrderNumber')),\r\n m('.order-value.value', payment.orderId)\r\n ]),\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Amount')),\r\n m('.amount-value.value', Utils.formatCurrency(payment.amount))\r\n ]),\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Fee')),\r\n m('.fee-value.value', Utils.formatCurrency(payment.fee))\r\n ]),\r\n m('.line'),\r\n m('.summary__list__row.total', [\r\n m('.label', controller.d('Total')),\r\n m('.total-value.value', Utils.formatCurrency(payment.amount + payment.fee))\r\n ])\r\n ])\r\n ])\r\n }) :\r\n [\r\n payment.status === 'PENDING' ? ReceiptPage({\r\n title: settings.PendingHeader,\r\n description: settings.PendingDescription,\r\n icon: 'round_big_alert',\r\n noCountdown: true,\r\n redirectButtonText: settings.CallToActionLabel,\r\n callback: controller.receiptCallback,\r\n buttonsDisabled: !settings.CallToActionEnabled\r\n }) : null,\r\n ['REJECTED', 'ABANDONED'].indexOf(payment.status) > -1 ? ReceiptPage({\r\n title: settings.IncompleteHeader,\r\n description: settings.IncompleteDescription,\r\n icon: 'round_big_alert',\r\n noCountdown: true,\r\n redirectButtonText: settings.CallToActionLabel,\r\n callback: controller.receiptCallback,\r\n buttonsDisabled: !settings.CallToActionEnabled\r\n }) : null,\r\n\r\n ]\r\n ])\r\n ])\r\n ]);\r\n }\r\n\r\n };\r\n\r\n m.route.mode = 'hash';\r\n // Routes:\r\n m.route(element, '/', {\r\n '/': m.component(root),\r\n });\r\n });\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, Svg) {\r\n 'use strict';\r\n\r\n var CustomInput = {\r\n\r\n controller: function (options) {\r\n\r\n var self = this;\r\n\r\n /*\r\n The model must be an m.prop() with some added, optional properties: 1) .validState - a\r\n method returning whether the input is valid, and 2) errorList - a list of strings (m.prop)\r\n describing the validation errors, if any.\r\n */\r\n self.options = {\r\n model: null,\r\n pattern: /.*/,\r\n onchange: null,\r\n validate: null,\r\n helptext: null,\r\n onblur: function () { },\r\n onkeyup: function () { },\r\n onkeydown: function () { },\r\n type: 'text', // any type allowed on HTML \r\n align: 'left', // left, right or center\r\n forceNumeric: false,\r\n placeholder: null,\r\n size: null,\r\n floatLabel: true,\r\n prefix: m.prop(null),\r\n postfix: m.prop(null),\r\n inlinepostfix: '',\r\n icon: null, // 'load', 'check', 'info' or 'close'\r\n iconCallback: null,\r\n disabled: m.prop(false),\r\n class: '',\r\n id: '',\r\n name: '',\r\n setfocus: m.prop(false),\r\n setcaret: null,\r\n rightpad: false,\r\n uiTestId: null,\r\n spellcheck: false,\r\n maxlength: null,\r\n ...options\r\n };\r\n\r\n self.options.model(self.options.model() ? self.options.model().toString() : self.options.model()); // in case model is not already a string, this conversion helps for regex validation\r\n\r\n var debounce = function (func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this;\r\n var args = arguments;\r\n\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n };\r\n\r\n this.debouncedFunction = debounce(function (callback) {\r\n callback();\r\n }, 1000);\r\n\r\n self.hasfocus = m.prop(false);\r\n\r\n self.updateFocus = function (hasFocus) {\r\n self.hasfocus(hasFocus);\r\n };\r\n\r\n self.model = self.options.model;\r\n\r\n self.oninput = function (e) {\r\n var inlinepostfix = self.options.inlinepostfix;\r\n var postfix = self.options.postfix;\r\n var maxlength = self.options.maxlength;\r\n\r\n var v = e.target['value'];\r\n\r\n if (maxlength !== null && v.length > maxlength) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (inlinepostfix || postfix) {\r\n var patternMatchedValue = '';\r\n var matchedPatternArray = v.match(new RegExp(self.options.pattern)) || [];\r\n matchedPatternArray.forEach(function (val) {\r\n patternMatchedValue += '' + val;\r\n });\r\n v = patternMatchedValue;\r\n if (inlinepostfix && v.length > 0) {\r\n v = v + inlinepostfix;\r\n self.options.setcaret = v.length - inlinepostfix.length;\r\n }\r\n }\r\n\r\n self.model(v);\r\n if (self.model.validState !== undefined) {\r\n self.model.validState(true);\r\n self.model.errorList([]);\r\n }\r\n };\r\n\r\n self.shouldTransformLabel = function () {\r\n return (self.options.placeholder || self.options.prefix()) && self.model && self.model() && self.model().length >= 1;\r\n };\r\n\r\n self.autocomplete = {\r\n currentFocus: 0,\r\n getCurrentFocus: function (listItems) {\r\n if (self.autocomplete.currentFocus >= listItems.length) self.autocomplete.currentFocus = 0;\r\n if (self.autocomplete.currentFocus < 0) self.autocomplete.currentFocus = (listItems.length - 1);\r\n return self.autocomplete.currentFocus;\r\n },\r\n addActive: function (x) {\r\n // classify an item as \"active\"\r\n if (!x) return false;\r\n // start by removing the \"active\" class on all items\r\n self.autocomplete.removeActive(x);\r\n\r\n // add class \"autocomplete-active\"\r\n x[self.autocomplete.getCurrentFocus(x)].classList.add('autocomplete-active');\r\n },\r\n\r\n removeActive: function (x) {\r\n // remove the \"active\" class from all autocomplete items\r\n for (var i = 0; i < x.length; i++) {\r\n x[i].classList.remove('autocomplete-active');\r\n }\r\n },\r\n\r\n closeAllLists: function () {\r\n // close all autocomplete lists in the document\r\n var x = document.getElementsByClassName('autocomplete-items');\r\n for (var i = 0; i < x.length; i++) {\r\n x[i].parentNode.removeChild(x[i]);\r\n }\r\n }\r\n };\r\n\r\n document.addEventListener('click', function () {\r\n self.autocomplete.closeAllLists();\r\n });\r\n },\r\n\r\n view: function (ctrl) {\r\n var options = ctrl.options;\r\n var autocompleteItems = [];\r\n var postfix = typeof options.postfix === 'function' ? options.postfix() : options.postfix;\r\n var haserror = ctrl.model.errorList && ctrl.model.errorList().length > 0;\r\n var list = document.getElementById(options.id + 'autocomplete-list');\r\n var listItems;\r\n if (list) {\r\n listItems = list.getElementsByTagName('li');\r\n }\r\n\r\n if (options.autocompleteItems && options.autocompleteItems().length) {\r\n var inputText = ctrl.model();\r\n if (inputText) {\r\n if (inputText.length === 0) {\r\n autocompleteItems = [];\r\n } else {\r\n autocompleteItems = options.autocompleteItems().filter(function (item) {\r\n return item.toLowerCase().indexOf(inputText.toLowerCase()) > -1;\r\n });\r\n if (list) {\r\n ctrl.autocomplete.addActive(listItems);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return m('div', {\r\n id: options.id,\r\n class: [\r\n 'custom-input',\r\n (options.class ? options.class : '') +\r\n (options.autocompleteItems ? ' custom-input__autocomplete' : '') +\r\n (options.size ? ' custom-input--' + options.size : '') +\r\n ' custom-input--align-' + options.align +\r\n (ctrl.hasfocus() ? ' has--focus' : '') +\r\n (ctrl.shouldTransformLabel() ? ' custom-input--transform-label' : ''),\r\n ((!ctrl.hasfocus() || ctrl.model.forcefullyValidated) && haserror && ctrl.model.validState && !ctrl.model.validState() ? ' has--error' : ''),\r\n (options.rightpad ? 'custom-input--rightpad' : ''),\r\n ].join(' '),\r\n config: function (elem) {\r\n\r\n if (options.uiTestId) {\r\n elem.setAttribute('data-uitest-id', options.uiTestId);\r\n }\r\n\r\n }\r\n }, [\r\n options.prefix() ? m('span', {\r\n onclick: function () {\r\n if (options.prefix().onclick) {\r\n options.setfocus(true);\r\n }\r\n },\r\n class: [\r\n 'custom-input__prefix',\r\n (options.disabled() ? 'custom-input__prefix--disabled' : ''),\r\n (options.prefix().smaller ? 'custom-input__prefix--smaller' : ''),\r\n (options.prefix().permanent ? 'custom-input__prefix--permanent' : '')\r\n ].join(' ')\r\n }, options.prefix().text ? options.prefix().text : options.prefix()) : '',\r\n m('div', [\r\n m('input', {\r\n placeholder: options.placeholder !== null ? options.placeholder : '',\r\n type: options.type,\r\n name: options.name,\r\n autocomplete: 'off',\r\n spellcheck: options.spellcheck,\r\n maxlength: options.maxlength,\r\n oninput: ctrl.oninput,\r\n value: ctrl.model(),\r\n disabled: options.disabled(),\r\n onchange: function () {\r\n if (options.onchange) {\r\n ctrl.debouncedFunction(function () {\r\n options.onchange();\r\n });\r\n }\r\n },\r\n onfocus: function () {\r\n ctrl.updateFocus(true);\r\n if (options.onfocus) {\r\n options.onfocus();\r\n }\r\n },\r\n onblur: function (e) {\r\n ctrl.updateFocus(false);\r\n if (e.target.value.length) {\r\n options.onblur(e);\r\n }\r\n if (options.autocompleteItems && list) {\r\n // if user continues from an autocomplete list without selecting anything,\r\n // then select the item which current has focus\r\n listItems[ctrl.autocomplete.getCurrentFocus(listItems)].click();\r\n ctrl.autocomplete.closeAllLists();\r\n }\r\n },\r\n onkeyup: options.onkeyup,\r\n onkeydown: function (e) {\r\n options.onkeydown();\r\n if (options.autocompleteItems) {\r\n if (list) {\r\n if (e.keyCode === 40) { // down\r\n // if the arrow DOWN key is pressed, increase the currentFocus variable\r\n ctrl.autocomplete.currentFocus++;\r\n list.scrollTo(0, listItems[ctrl.autocomplete.getCurrentFocus(listItems)].offsetTop);\r\n // and and make the current item more visible\r\n ctrl.autocomplete.addActive(listItems);\r\n } else if (e.keyCode === 38) { // up\r\n // if the arrow UP key is pressed, decrease the currentFocus variable\r\n ctrl.autocomplete.currentFocus--;\r\n list.scrollTo(0, listItems[ctrl.autocomplete.getCurrentFocus(listItems)].offsetTop);\r\n // and and make the current item more visible\r\n ctrl.autocomplete.addActive(listItems);\r\n } else if (e.keyCode === 13) { // enter\r\n // if the ENTER key is pressed, prevent the form from being submitted,\r\n e.preventDefault();\r\n if (ctrl.autocomplete.getCurrentFocus(listItems) > -1) {\r\n // and simulate a click on the \"active\" item\r\n listItems[ctrl.autocomplete.getCurrentFocus(listItems)].click();\r\n }\r\n } else if (e.keyCode === 9) { // tab\r\n // if the TAB key is pressed, while list is open, behave like ENTER is pressed,\r\n if (ctrl.autocomplete.getCurrentFocus(listItems) > -1) {\r\n listItems[ctrl.autocomplete.getCurrentFocus(listItems)].click();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n class: options.class,\r\n config: function (element) {\r\n // Don't try to set focus on smaller devices, as the keyboard gets buggy\r\n if (options.setfocus() && !(document.body.classList.contains('is-mobile-detected') || document.body.classList.contains('is-tablet-detected'))) {\r\n element.focus();\r\n options.setfocus(false);\r\n }\r\n if (options.setcaret) {\r\n element.setSelectionRange(options.setcaret, options.setcaret);\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 autocompleteItems.length ? m('ul',\r\n {\r\n id: options.id + 'autocomplete-list',\r\n class: 'autocomplete-items',\r\n },\r\n autocompleteItems.map(function (item, ignoreIndex, arr) {\r\n return m('li',\r\n {\r\n onmouseover: function () {\r\n ctrl.autocomplete.currentFocus = arr.indexOf(item);\r\n },\r\n onclick: function () {\r\n ctrl.model(item);\r\n ctrl.autocomplete.closeAllLists();\r\n }\r\n },\r\n [\r\n item,\r\n m('input', { type: 'hidden', value: item })\r\n ]);\r\n })) : '',\r\n options.floatLabel ? m('label', options.placeholder) : ''\r\n ]),\r\n options.icon ? m('span.custom-input__icon', {\r\n class: options.icon,\r\n onclick: options.iconCallback\r\n }, Svg(options.icon)) : '',\r\n postfix ? m('span.custom-input__postfix', { class: + options.disabled() ? 'custom-input__postfix--disabled' : '' }, postfix) : '',\r\n ctrl.hasfocus() && !haserror && options.helptext ? m('.custom-input__help', options.helptext) : null,\r\n (!ctrl.hasfocus() || ctrl.model.forcefullyValidated) && haserror ?\r\n ctrl.model.errorList().map(function (msg) {\r\n return m('.custom-input__error', m.trust(msg));\r\n }) : null\r\n ]);\r\n\r\n }\r\n\r\n };\r\n\r\n return CustomInput;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/CustomCheckbox', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils'\r\n], function (m, Utils) {\r\n 'use strict';\r\n\r\n var CustomCheckbox = function (options) {\r\n\r\n options = Utils.extend(true, {\r\n align: 'left',\r\n items: []\r\n }, options);\r\n\r\n var checkboxAttr = function (item) {\r\n return {\r\n config: function (element, initialized) {\r\n if (!initialized && item.model()) {\r\n element.setAttribute('checked', true);\r\n }\r\n },\r\n type: 'checkbox',\r\n id: item.id,\r\n value: item.value,\r\n onchange: changeState\r\n };\r\n };\r\n\r\n var changeState = function () {\r\n var id = this.id;\r\n var item = options.items.filter(function (item) {\r\n return id === item.id;\r\n })[0];\r\n if (item.onchange) {\r\n item.onchange(this.checked);\r\n }\r\n item.model(this.checked);\r\n };\r\n\r\n return options.items.map(function (item) {\r\n return m('div', {\r\n class: 'custom-checkbox' + (options.color ? ' custom-checkbox--' + options.color : '') +\r\n (options.modifier ? ' custom-checkbox--' + options.modifier : '') +\r\n ' custom-checkbox--align-' + options.align +\r\n (typeof item.model.errorList === 'function' && item.model.errorList().length > 0 ? ' has--error' : ''),\r\n }, [\r\n m('input#', checkboxAttr(item), ''),\r\n m('label[for=\"' + item.id + '\"]', {\r\n config: item.config\r\n }, item.text || item.description ? [\r\n item.text ? m.trust(item.text) : null,\r\n item.description ? m('span.sub-label', m.trust(item.description)) : null\r\n ] : null),\r\n item.model.errorList && !item.model() ? item.model.errorList().map(function (msg) {\r\n return m('.custom-checkbox__error', m.trust(msg));\r\n }) : null\r\n ]);\r\n });\r\n };\r\n\r\n return CustomCheckbox;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/CustomUpload', [\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], function (m, Utils, Button) {\r\n 'use strict';\r\n\r\n var CustomUpload = function (value, options) {\r\n\r\n var onchangeCallback = options.onchange;\r\n\r\n var currentElement = null;\r\n\r\n options.onchange = function () {\r\n if (options.appendFiles) {\r\n var fileArray = Array.prototype.slice.call(this.files);\r\n var newValue = value().concat(fileArray);\r\n value(newValue);\r\n currentElement.value = null;\r\n } else {\r\n value(this.files);\r\n }\r\n\r\n if (onchangeCallback) {\r\n onchangeCallback();\r\n }\r\n };\r\n\r\n options = Utils.extend(true, {\r\n appendFiles: false,\r\n disabledSelect: false,\r\n disabledUpload: false,\r\n hideSelect: false,\r\n hideSave: false,\r\n uploadButtonLabel: 'upload',\r\n saveButtonLabel: 'save',\r\n id: 'thefile',\r\n name: 'thefile',\r\n type: 'file',\r\n multiple: 'multiple',\r\n accept: '.png,.jpeg,.jpg,.gif,.tif,.tiff,.bmp,.pdf,.odt',\r\n callback: function () {\r\n },\r\n triggerFileSelection: function () {\r\n document.querySelectorAll('input[type=\"file\"]')[0].click();\r\n },\r\n uploadState: 0 // 0: select file, 1: file selected, 2: uploading, 3: finished\r\n }, options);\r\n\r\n return m('div.pam-custom-upload__wrapper', [\r\n m('label.pam-custom-upload', [\r\n m('input.pam-custom-upload__files', {\r\n config: function (element) {\r\n currentElement = element;\r\n },\r\n id: options.id,\r\n name: options.name,\r\n type: options.type,\r\n multiple: options.multiple,\r\n accept: options.accept,\r\n onchange: options.onchange\r\n }),\r\n ]),\r\n m('.button-pair', { style: (options.uploadState === 3 ? 'display: none' : '') }, [\r\n options.hideSelect ? null : m(Button, {\r\n disabled: options.disabledSelect,\r\n classes: { default: 'pam__button pam__button--large pam__button--secondary pam-custom-upload__button ' + (options.uploadState === 2 ? '.pam__button--disabled' : '') },\r\n text: { default: options.uploadButtonLabel },\r\n id: 'selectFiles',\r\n onclick: options.triggerFileSelection,\r\n }),\r\n options.hideSave ? null : m(Button, {\r\n disabled: options.disabledUpload,\r\n classes: { default: 'pam__button pam__button--large' },\r\n text: { default: options.saveButtonLabel },\r\n id: 'saveFiles',\r\n onclick: options.callback\r\n })\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n return CustomUpload;\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/PlayerAccountManagement/PlayerRegister/Scripts/Models/RegisterModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Data/CustomValidators',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Data/CommonCustomValidators',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request',\r\n], function (m, Model, Utils, customValidators, CommonCustomValidators, ValidationModel, Request) {\r\n 'use strict';\r\n\r\n var RegisterModel = Model('RegisterModel', new ValidationModel(function (content) {\r\n\r\n var self = this;\r\n\r\n // we are here not using 'content' in model persistence, but just to pass some parameters:\r\n var d = content.dictionary;\r\n customValidators.add(content.onAlreadyRegistered);\r\n CommonCustomValidators.add(content.onAlreadyRegistered);\r\n this.uploadDocumentSettings = m.prop(content.uploadDocumentSettings);\r\n this.isSubscriptionFlow = m.prop(content.isSubscriptionFlow);\r\n this.paymentLink = m.prop(content.paymentLink);\r\n this.upgradeLink = m.prop(content.upgradeLink);\r\n this.dsloginLink = m.prop(content.ConfirmWithLoginLink);\r\n this.stepRoutes = m.prop(content.stepRoutes);\r\n this.OrderNemIdLink = m.prop(content.OrderNemIdLink);\r\n this.ForgotNemIdCodeLink = m.prop(content.ForgotNemIdCodeLink);\r\n this.jossosessionId = 'jossosessionid';\r\n this.countries = m.prop([]);\r\n this.cities = m.prop([]);\r\n this.securityQuestions = m.prop([]);\r\n this.uploadFilePurposes = m.prop([]);\r\n this.recaptchaEnabled = m.prop(content.recaptchaEnabled);\r\n this.allowNoLimitsSet = m.prop(content.allowNoLimitsSet);\r\n this.minLimitAmount = m.prop(content.ignoreMinDepositLimitValidation ? 1 : 50);\r\n\r\n this.maxLimits = {\r\n '18-19': {\r\n daily: content.maxLimits?.MaxDaily18To19 || null,\r\n weekly: content.maxLimits?.MaxWeekly18To19 || null,\r\n monthly: content.maxLimits?.MaxMonthly18To19 || null,\r\n },\r\n '20-24': {\r\n daily: content.maxLimits?.MaxDaily20To24 || null,\r\n weekly: content.maxLimits?.MaxWeekly20To24 || null,\r\n monthly: content.maxLimits?.MaxMonthly20To24 || null,\r\n },\r\n '25-99': {\r\n daily: content.maxLimits?.MaxDaily || null,\r\n weekly: content.maxLimits?.MaxWeekly || null,\r\n monthly: content.maxLimits?.MaxMonthly || null,\r\n },\r\n };\r\n\r\n var rxrequired = /^\\s*[^\\s]{2,}.*$/;\r\n var rxname = /^[\\u00C0-\\u1FFCa-zA-Z\\-' ]{2,}$/;\r\n var rxroad = /.+/;\r\n\r\n Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetCountries'\r\n }).then(function (response) {\r\n self.countries(response.map(function (country) {\r\n return {\r\n value: country.Id,\r\n phoneCountryCode: country.PhoneCountryCode,\r\n text: {\r\n left: country.Name,\r\n right: ''\r\n }\r\n };\r\n }));\r\n self.fields.Country.value('DK');\r\n self.fields.Phonenumber('+45');\r\n });\r\n\r\n Request({\r\n method: 'GET',\r\n background: true,\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/getcities',\r\n }).then(function (response) {\r\n var cities = [];\r\n response.forEach(function (city) {\r\n cities[city.ZipCode] = city.City;\r\n });\r\n self.cities(cities);\r\n });\r\n\r\n Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetSecurityQuestions',\r\n }).then(function (response) {\r\n self.securityQuestions(response.map(function (question) {\r\n return {\r\n value: question.MappingNumber,\r\n text: {\r\n left: question.Question,\r\n right: ''\r\n }\r\n };\r\n }));\r\n });\r\n\r\n Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetUploadFilePurposes',\r\n }).then(function (response) {\r\n self.uploadFilePurposes(response);\r\n });\r\n\r\n this.fields = {\r\n UserAlreadyRegistered: m.prop(false),\r\n // Step 1\r\n UsernameAndEmail: m.prop(null),\r\n Username: m.prop(null),\r\n Email: m.prop(null),\r\n Password: m.prop(null),\r\n PasswordRepeat: m.prop(null),\r\n Recaptcha: m.prop(null),\r\n // Step 2\r\n CprNumber: m.prop(null),\r\n FirstName: m.prop(null),\r\n LastName: m.prop(null),\r\n Road: m.prop(null),\r\n HouseNumber: m.prop(null),\r\n PostNumber: m.prop(null),\r\n City: m.prop(null),\r\n Country: {\r\n value: m.prop(null),\r\n list: this.countries\r\n },\r\n Phonenumber: m.prop(null),\r\n AcceptNewsLetter: m.prop(null),\r\n AccecptGameScan: m.prop(null),\r\n AcceptConditions: m.prop(null),\r\n // Step 3\r\n AmountPeriod: m.prop(null),\r\n Amount: m.prop(null),\r\n CustomerAgeGroup: m.prop(null),\r\n SecurityAnswer: m.prop(null),\r\n SecurityQuestion: {\r\n value: m.prop(null),\r\n list: this.securityQuestions\r\n },\r\n UploadFilePurpose: this.uploadFilePurposes,\r\n SelectedPurposes: {\r\n value: m.prop(null),\r\n type: m.prop(null)\r\n },\r\n };\r\n\r\n this.fieldrules = {\r\n // Step 1\r\n Username: function () {\r\n return {\r\n isUsernameValidForRegistration: true\r\n };\r\n\r\n },\r\n Email: function () {\r\n return {\r\n isEmailValidForRegistration: true\r\n };\r\n },\r\n\r\n UsernameAndEmail: function () {\r\n if (window.grecaptcha) {\r\n self.fields.Recaptcha(window.grecaptcha.getResponse());\r\n self.fields.Recaptcha.validate();\r\n }\r\n\r\n return {\r\n isUsernameAndEmailValidForRegistration: {\r\n relatedFieldKeys: ['Username', 'Email', 'Recaptcha'],\r\n recaptcha: self.fields.Recaptcha(),\r\n username: self.fields.Username(),\r\n email: self.fields.Email(),\r\n recaptchaEnabled: content.recaptchaEnabled,\r\n callbackOnRecaptchaError: function () {\r\n window.grecaptcha.reset();\r\n self.fields.Recaptcha.validate();\r\n },\r\n }\r\n };\r\n },\r\n\r\n Password: function () {\r\n return {\r\n isPasswordSameAsUserName: {\r\n message: d('Validation/PasswordSameAsUserName'),\r\n username: self.fields.Username(),\r\n password: self.fields.Password(),\r\n },\r\n isPasswordValid: true\r\n };\r\n },\r\n PasswordRepeat: function () {\r\n return {\r\n presence: {\r\n message: d('Validation/PasswordRepeatEmpty')\r\n },\r\n equality: self.fields.Password() ? {\r\n attribute: 'Password',\r\n message: d('Validation/PasswordsNotEqual')\r\n } : false\r\n };\r\n },\r\n Recaptcha: function () {\r\n if (window.grecaptcha) {\r\n self.fields.Recaptcha(window.grecaptcha.getResponse());\r\n\r\n\r\n\r\n if (!self.fields.Recaptcha()) {\r\n\r\n return {\r\n presence: { message: d('Validation/RecaptchaNeeded') }\r\n };\r\n }\r\n }\r\n return {};\r\n },\r\n // Step 2\r\n CprNumber: function () {\r\n if (self.isSubscriptionFlow()) {\r\n return {\r\n isValidDanishCpr: true\r\n };\r\n } else {\r\n return {\r\n isValidCpr: true,\r\n isCprCountryMatch: { country: self.fields.Country.value, message: d('Validation/CprCountryFaroeNoMatch') }\r\n };\r\n }\r\n },\r\n FirstName: {\r\n presence: { message: d('Validation/FirstNameEmpty') },\r\n format: {\r\n pattern: rxname,\r\n message: d('Validation/FirstNameInvalid')\r\n }\r\n },\r\n LastName: {\r\n presence: { message: d('Validation/LastNameEmpty') },\r\n format: {\r\n pattern: rxname,\r\n message: d('Validation/LastNameInvalid')\r\n }\r\n },\r\n Road: {\r\n presence: { message: d('Validation/RoadEmpty') },\r\n format: {\r\n pattern: rxroad,\r\n message: d('Validation/RoadEmpty')\r\n }\r\n },\r\n HouseNumber: { presence: { message: d('Validation/HouseNumberEmpty') } },\r\n PostNumber: { presence: { message: d('Validation/PostNumberEmpty') } },\r\n City: {\r\n presence: { message: d('Validation/CityEmpty') },\r\n format: {\r\n pattern: rxrequired,\r\n message: d('Validation/CityEmpty')\r\n }\r\n },\r\n Country: {\r\n presence: { message: d('Validation/CountryEmpty') },\r\n isCountryCprMatch: { cpr: self.fields.CprNumber, message: d('Validation/CountryCprFaroeNoMatch') }\r\n },\r\n Phonenumber: function () {\r\n return {\r\n presence: {\r\n message: d('Validation/PhoneEmpty')\r\n },\r\n isPhoneNumberValid: {\r\n message: d('Validation/PhoneInvalid')\r\n }\r\n };\r\n },\r\n AccecptGameScan: {\r\n presence: { message: d('Validation/AccecptGameScanEmpty') },\r\n inclusion: {\r\n within: [true],\r\n message: d('Validation/AccecptGameScanEmpty')\r\n }\r\n },\r\n AcceptConditions: {\r\n presence: { message: d('Validation/AcceptConditionsEmpty') },\r\n inclusion: {\r\n within: [true],\r\n message: d('Validation/AcceptConditionsEmpty')\r\n }\r\n },\r\n // Step 3\r\n AmountPeriod: !self.allowNoLimitsSet() ? { presence: { message: d('Validation/AmountPeriodEmpty') } } : null,\r\n Amount: function () {\r\n const lowerFirstChar = (str) => str.charAt(0).toLowerCase() + str.slice(1);\r\n\r\n let amountPeriod = self.fields.AmountPeriod();\r\n const customerAgeGroup = self.fields.CustomerAgeGroup();\r\n const maxLimit = self.maxLimits[customerAgeGroup][lowerFirstChar(amountPeriod)];\r\n\r\n return !self.allowNoLimitsSet() ? {\r\n presence: {\r\n message: d('Validation/AmountEmpty')\r\n },\r\n isBelowGlobalLimit: {\r\n limit: self.minLimitAmount,\r\n message: d('Validation/BelowGlobalLimit', { AMOUNT: self.minLimitAmount() })\r\n },\r\n isAboveGlobalLimit: {\r\n limit: m.prop(maxLimit),\r\n period: self.fields.AmountPeriod,\r\n message: d('Validation/AboveGlobalLimit', {\r\n AMOUNT: Utils.numberFormat(maxLimit),\r\n PERIOD: d('Validation/Period/' + amountPeriod)\r\n })\r\n }\r\n } : {};\r\n },\r\n SecurityAnswer: { presence: { message: d('Validation/SecurityAnswerEmpty') } },\r\n SecurityQuestion: { presence: { message: d('Validation/SecurityQuestionEmpty') } },\r\n };\r\n\r\n this.extendFields(this);\r\n\r\n this.toJSON = function () {\r\n return {}; // for security reasons we do not persist user input\r\n };\r\n\r\n this.isCprAlreadyExist = function (loginResponse) {\r\n return ((loginResponse.customerInfo.userName && loginResponse.customerInfo.userName.toLowerCase() !== this.fields.Username().toLowerCase()) || typeof loginResponse.customerInfo.prevLoginTime === 'string'); // When username typed in registration is not the same as customerInfo.userName from login, we already have an account\r\n }.bind(this);\r\n\r\n }));\r\n\r\n return RegisterModel;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/CustomRadio', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils'\r\n], function (m, Utils) {\r\n 'use strict';\r\n\r\n var CustomRadio = function (options) {\r\n\r\n options = Utils.extend(true, {\r\n name: null, // name of the radio button group, must be specified\r\n align: 'left', // left, right or center\r\n color: null,\r\n items: [] // objects with options for any number of radio inputs - id and value and text (for the label)\r\n }, options);\r\n\r\n var radioAttr = function (item) {\r\n return {\r\n config: function (element, initialized) {\r\n if (!initialized && options.model()) {\r\n element.setAttribute('checked', true);\r\n }\r\n },\r\n type: 'radio',\r\n id: item.id,\r\n name: options.name,\r\n value: item.value,\r\n onchange: changeState\r\n };\r\n };\r\n\r\n var changeState = function () {\r\n var item = options.items.find(function (item) { return this.id === item.id; }.bind(this));\r\n options.model(item.value);\r\n\r\n if (options.validate) {\r\n options.validate();\r\n } else {\r\n options.model.validate();\r\n }\r\n };\r\n\r\n var buttonsElements = options.items.map(function (item) {\r\n return m('div', {\r\n class: 'custom-radio' +\r\n (options.color ? ' custom-radio--' + options.color : '') +\r\n ' custom-radio--align-' + options.align\r\n }, [\r\n m('input#', radioAttr(item), ''),\r\n m('label[for=\"' + item.id + '\"]', m.trust(item.text))\r\n ]);\r\n });\r\n return [\r\n options.model.errorList ? options.model.errorList().map(function (msg) {\r\n return m('.custom-radio__error', m.trust(msg));\r\n }) : null\r\n ].concat(buttonsElements);\r\n };\r\n\r\n return CustomRadio;\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/InfoRibbon', [\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 InfoRibbon = function (text, 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 class: '',\r\n callback: function () {},\r\n size: 'large',\r\n color: 'white'\r\n }, button);\r\n }) : options.buttons;\r\n\r\n options = Utils.extend(true, {\r\n type: 'info',\r\n class: '',\r\n hasIcon: true,\r\n icon: options.type === 'error' ? 'round_big_alert_red' : 'round_big_alert',\r\n buttons: []\r\n }, options);\r\n\r\n return m('div', {\r\n class: [\r\n 'info-ribbon',\r\n 'info-ribbon--' + options.type,\r\n options.class\r\n ].join(' ')\r\n }, [\r\n m('div.info-ribbon--sizer', [\r\n options.hasIcon ? Svg(options.icon) : '',\r\n m('p', {\r\n class: 'info-ribbon__text'\r\n }, m.trust(text)),\r\n options.buttons ? options.buttons.map(function (button) {\r\n return m(Button, {\r\n size: button.size,\r\n color: button.color,\r\n class: button.class,\r\n loading: button.loading,\r\n onclick: button.callback,\r\n text: {\r\n default: button.text\r\n }\r\n });\r\n }) : ''\r\n ])\r\n ]);\r\n };\r\n return InfoRibbon;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/MyPageData', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n],\r\nfunction (m, Dictionary, Request) {\r\n\r\n var ready = m.deferred();\r\n\r\n var data = m.prop(null);\r\n\r\n // Functions:\r\n var getData = function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PlayerProfile',\r\n background: true,\r\n unwrapSuccess: function (response) {\r\n return response.controls;\r\n }\r\n }).then(function (response) {\r\n response.dictionary = Dictionary.get.bind({ prefix: 'PlayerProfile/MyPage/' });\r\n data(response);\r\n return response;\r\n });\r\n };\r\n\r\n var setData = function (func, data, associatedData) {\r\n console.log('Save: ' + func, 'Data: ' + data);\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/' + func,\r\n background: false,\r\n data: {\r\n value: data,\r\n associatedData: associatedData\r\n }\r\n });\r\n };\r\n\r\n // Public functions:\r\n return {\r\n getData: getData,\r\n setData: setData,\r\n ready: ready.promise,\r\n data: data\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/MyPageModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Data/CustomValidators',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Data/CommonCustomValidators',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/AccountCustomValidators'\r\n\r\n], function (m, Model, ValidationModel, LoginCache, customValidators, CommonCustomValidators, AccountCustomValidators) {\r\n 'use strict';\r\n\r\n var MyPageModel = Model('MyPageModel', new ValidationModel(function (content) {\r\n\r\n // Constants:\r\n var TryGetPropertyValue = function (o, propertyName1, ifundefined) {\r\n var names = propertyName1.split(/[\\s.]+/);\r\n while (o && names.length) {\r\n o = o[names.shift()];\r\n }\r\n if (names.length == 0) {\r\n return ((typeof o === 'undefined') && (typeof ifundefined !== 'undefined')) ? ifundefined : o;\r\n }\r\n };\r\n var d = content.dictionary;\r\n var currentUser;\r\n if (LoginCache.hasOwnProperty('getUserObj')) {\r\n currentUser = LoginCache.getUserObj();\r\n }\r\n\r\n customValidators.add();\r\n CommonCustomValidators.add();\r\n AccountCustomValidators.add();\r\n\r\n this.fields = {\r\n IsNemID: m.prop(TryGetPropertyValue(content, 'IsNemId', null)),\r\n FullName: m.prop(TryGetPropertyValue(content, 'Fullname.Value', null)),\r\n FirstName: m.prop(TryGetPropertyValue(content, 'FirstName.Value', null)),\r\n LastName: m.prop(TryGetPropertyValue(content, 'LastName.Value', null)),\r\n UserName: m.prop(TryGetPropertyValue(content, 'UserName.Value', null)),\r\n Email: m.prop(TryGetPropertyValue(content, 'Email.Value', null)),\r\n Alias: m.prop(TryGetPropertyValue(content, 'Alias.Value', null)),\r\n Password: m.prop(''),\r\n PasswordRepeat: m.prop(''),\r\n PasswordCurrent: m.prop(''),\r\n Phonenumber: m.prop(TryGetPropertyValue(content, 'PhoneNumber.Value', null)),\r\n CardsValue: m.prop(TryGetPropertyValue(content, 'Cards.Value', null)),\r\n CardsList: m.prop(TryGetPropertyValue(content, 'CardsList', null)),\r\n Account: m.prop((TryGetPropertyValue(content, 'Account.Value', null) ? TryGetPropertyValue(content, 'Account.Value', null) : ''))\r\n };\r\n\r\n /// /////////////////////////////////////////////////////////////////////////////\r\n //\r\n // NOTE: fieldRules must be kept in sync with RegisterModel\r\n //\r\n /// /////////////////////////////////////////////////////////////////////////////\r\n\r\n this.fieldrules = {\r\n Email: {\r\n isEmailValidForAuthenticatedUser: true\r\n },\r\n\r\n Alias: {\r\n presence: {\r\n message: d('ChangeAlias/ErrorMessages/Required')\r\n },\r\n format: {\r\n pattern: '^[a-zA-Z0-9]{6,10}$',\r\n message: d('ChangeAlias/ErrorMessages/FormatNotValid')\r\n }\r\n },\r\n PasswordCurrent: function () {\r\n if (currentUser.customerInfo && currentUser.customerInfo.loggedInWithNemId) {\r\n return;\r\n } else {\r\n return {\r\n isCurrentPasswordCorrect: true\r\n };\r\n }\r\n },\r\n Password: function () {\r\n return {\r\n isPasswordSameAsUserName: {\r\n message: d('ChangePassword/ErrorMessages/IsPasswordSameAsUsername'),\r\n password: this.fields.Password(),\r\n username: this.fields.UserName()\r\n },\r\n isPasswordValid: true,\r\n equality: this.fields.PasswordRepeat() ? {\r\n attribute: 'PasswordRepeat',\r\n message: d('ChangePassword/ErrorMessages/PasswordsMustBeTheSame')\r\n } : false\r\n };\r\n }.bind(this),\r\n\r\n PasswordRepeat: function () {\r\n return {\r\n presence: {\r\n message: d('ChangePassword/ErrorMessages/PasswordsMustBeTheSame')\r\n },\r\n equality: this.fields.Password() ? {\r\n attribute: 'Password',\r\n message: d('ChangePassword/ErrorMessages/PasswordsMustBeTheSame')\r\n } : false\r\n };\r\n }.bind(this),\r\n\r\n Phonenumber: function () {\r\n return {\r\n presence: {\r\n message: d('ChangePhoneNumber/ErrorMessages/Required')\r\n },\r\n isPhoneNumberValid: {\r\n message: d('ChangePhoneNumber/ErrorMessages/FieldNotValid')\r\n }\r\n };\r\n }.bind(this)\r\n\r\n };\r\n\r\n this.controls = m.prop(content || {});\r\n\r\n this.extendFields(this);\r\n // Functions:\r\n this.toJSON = function () {\r\n return {\r\n controls: this.controls(),\r\n id: this.id()\r\n };\r\n };\r\n }));\r\n\r\n // Public functions:\r\n return MyPageModel;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/ChangePasswordApi',\r\n [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n ],\r\n function (Request) {\r\n\r\n var isPasswordTokenValid = function (token) {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/IsUpdatePasswordTokenValid/' + token\r\n });\r\n };\r\n\r\n var changePassword = function (password, passwordRepeat, token) {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/UpdatePasswordWithToken',\r\n data: {\r\n NewPassword: password,\r\n NewPasswordRepeat: passwordRepeat,\r\n Token: token\r\n }\r\n });\r\n };\r\n\r\n return {\r\n isPasswordTokenValid: isPasswordTokenValid,\r\n changePassword: changePassword\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Animator'\r\n], function (Animator) {\r\n\r\n var rootCallback = null;\r\n\r\n var transitionCallback = null;\r\n\r\n var currentLevel = 1;\r\n\r\n var registerPage = function (component, options) {\r\n\r\n options = options || { level: 0 };\r\n\r\n return Animator(function (el, callback) {\r\n\r\n el.classList.add('route-slide');\r\n\r\n if (options.level === currentLevel) {\r\n callback();\r\n } else if (currentLevel > options.level) {\r\n setTimeout(callback, 1000);\r\n } else {\r\n slideIn(el, callback);\r\n }\r\n\r\n currentLevel = options.level;\r\n\r\n if (transitionCallback) transitionCallback();\r\n\r\n callback();\r\n\r\n }, function (el, callback) {\r\n\r\n transitionCallback = function () {\r\n if (options.level === currentLevel) {\r\n callback();\r\n } else if (currentLevel <= options.level) {\r\n slideOut(el, callback);\r\n } else {\r\n setTimeout(callback, 1000);\r\n }\r\n };\r\n\r\n }, true)(component);\r\n\r\n };\r\n\r\n var prepareTransition = function (el) {\r\n document.body.style.overflowX = 'hidden';\r\n el.style.paddingTop = calculateOffset(el); // Set padding top to account for Header\r\n el.style.top = '0px';\r\n el.style.left = '0px';\r\n el.style.position = 'fixed';\r\n el.style.width = '100%';\r\n el.style.minHeight = '100vh';\r\n el.style.overflowY = 'auto';\r\n\r\n try {\r\n window.scroll({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n } catch (ignoredError) {\r\n window.scroll(0, 0); // Older browsers does not support object signature - attempt this instead.\r\n }\r\n };\r\n\r\n var endTransition = function (e, callback) {\r\n callback(e);\r\n if (rootCallback) rootCallback(e);\r\n };\r\n\r\n var calculateOffset = function (element) {\r\n return (element.parentElement.getBoundingClientRect().top + parseInt(getComputedStyle(element).getPropertyValue('padding-top'), 10)) + 'px';\r\n };\r\n\r\n var slideIn = function (el, callback) {\r\n prepareTransition(el);\r\n el.classList.add('sliding-in');\r\n el.style.transition = 'none';\r\n el.style.transform = 'translateX(100%)';\r\n el.style.zIndex = '2';\r\n\r\n setTimeout(function () {\r\n el.style.transition = 'transform 1s ease-in-out';\r\n el.style.transform = 'translateX(0)';\r\n }, 100);\r\n\r\n el.addEventListener('transitionend', function (e) {\r\n el.style.zIndex = '1';\r\n el.classList.remove('sliding-in');\r\n el.classList.add('route-slide--active');\r\n el.style.position = 'relative';\r\n el.style.removeProperty('padding-top');\r\n endTransition(e, callback);\r\n });\r\n\r\n };\r\n\r\n var slideOut = function (el, callback) {\r\n prepareTransition(el);\r\n el.classList.add('sliding-out');\r\n el.style.transition = 'none';\r\n el.style.transform = 'translateX(0)';\r\n\r\n setTimeout(function () {\r\n el.style.transition = 'transform 1s ease-in-out';\r\n el.style.transform = 'translateX(100%)';\r\n }, 100);\r\n\r\n el.addEventListener('transitionend', function (e) {\r\n el.style.zIndex = '1';\r\n document.body.style.overflow = '';\r\n el.classList.remove('sliding-out');\r\n el.classList.remove('route-slide--active');\r\n endTransition(e, callback);\r\n });\r\n };\r\n\r\n return registerPage;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Templates/Toggles', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n], (m) => {\r\n return {\r\n controller: function ({ consent, error, loading, toggleFn }) {\r\n // Random ID post fix, in case one toggle container have a toggle with the same label as\r\n // a toggle in another toggle container. Each toggle container will load at slightly\r\n // different times, and the randomness should help making sure it's sort-of unique.\r\n const randomIdPostFix = Math.floor(Math.random() * Date.now());\r\n const id = (consent) => `${consent.text}-${randomIdPostFix}`;\r\n\r\n return { consent, error, id, loading, toggleFn };\r\n },\r\n\r\n view: function ({ consent, error, id, loading, toggleFn }) {\r\n let allMainConsentsSelected = false;\r\n\r\n consent.mainConsents?.forEach((mainConsent) => {\r\n if (mainConsent.selected()) {\r\n allMainConsentsSelected = true;\r\n }\r\n });\r\n\r\n return m('.toggles', {\r\n class: `${loading() ? 'toggles--loading' : ''} ${allMainConsentsSelected ? '' : 'toggles--subs-unavailable'}`\r\n }, [\r\n error()\r\n ? ''\r\n : [\r\n\r\n consent.mainConsents?.map((mainConsent) => {\r\n const isSelected = mainConsent.selected();\r\n\r\n const cssClass = [];\r\n cssClass.push('toggle--main');\r\n if (isSelected) cssClass.push('toggle--main-selected');\r\n\r\n return m('.toggle', {\r\n class: cssClass.join(' '),\r\n 'data-uitest-id': 'ToggleWithEloquaId' + mainConsent.id,\r\n }, [\r\n m('.toggle__label', mainConsent.text),\r\n m('label.toggle__switch', { for: id(mainConsent), }, [\r\n m('input.toggle__switch-input', {\r\n id: id(mainConsent),\r\n type: 'checkbox',\r\n checked: isSelected ? 'checked' : '',\r\n onchange: () => {\r\n toggleFn({ consent, mainConsent });\r\n },\r\n }),\r\n m('.toggle__switch-slider'),\r\n ])\r\n ]);\r\n }),\r\n\r\n m('.toggles__description', { 'data-uitest-id': 'ConsentDescription' }, m.trust(consent.text)),\r\n\r\n consent.subConsents?.length\r\n ? m('.toggles__sub-consents', [\r\n consent.subConsentsTitle ? m('.toggles__sub-consents-label', consent.subConsentsTitle) : '',\r\n consent.subConsents.map((subConsent) => {\r\n const isSelected = subConsent.selected();\r\n\r\n const cssClass = [];\r\n if (isSelected) cssClass.push('toggle--selected');\r\n\r\n return m('.toggle', {\r\n class: cssClass.join(' '),\r\n 'data-uitest-id': 'ToggleWithEloquaId' + subConsent.id,\r\n }, [\r\n m('.toggle__label', m.trust(subConsent.text)),\r\n m('label.toggle__switch', { for: id(subConsent), }, [\r\n m('input.toggle__switch-input', {\r\n id: id(subConsent),\r\n type: 'checkbox',\r\n checked: isSelected ? 'checked' : '',\r\n onchange: () => {\r\n toggleFn({ consent, subConsent });\r\n },\r\n }),\r\n m('.toggle__switch-slider'),\r\n ])\r\n ]);\r\n }),\r\n ])\r\n : '',\r\n ],\r\n\r\n loading()\r\n ? m('.toggles__loading', m('.loading-spinner.loading-spinner--dark'))\r\n : ''\r\n\r\n ]);\r\n }\r\n\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Components/Notifications',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Data/NotificationsApi',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n ],\r\n function (m, NotificationsApi, Utils, Svg, Button, LoadDots, Ensighten) {\r\n 'use strict';\r\n\r\n var root = {\r\n\r\n controller: function (args) {\r\n this.initialData = {}; // Used for tracking what's changed when submitting\r\n this.model = m.prop();\r\n this.loading = m.prop(true);\r\n\r\n this.dictionary = args.dictionary;\r\n\r\n this.submitLoading = m.prop(false);\r\n\r\n this.recentlyUpgraded = m.prop(Utils.getParameter('status') ? Utils.getParameter('status').indexOf('recentlyUpgraded') > -1 : false);\r\n\r\n if (this.recentlyUpgraded()) {\r\n NotificationsApi.acknowledgeRecentlyUpgraded().then(function (ignoreResponse) {\r\n });\r\n }\r\n\r\n NotificationsApi.getSettings().then(function (response) {\r\n this.initialData = response;\r\n\r\n this.model = m.prop({\r\n permissionEmail: m.prop(response.EmailPermission),\r\n permissionRetail: m.prop(response.RetailPermission),\r\n winSMS: m.prop(response.SmsWinnerNotificationPermission),\r\n winEmail: m.prop(response.EmailWinnerNotificationPermission)\r\n });\r\n\r\n this.loading(false);\r\n m.redraw();\r\n }.bind(this));\r\n\r\n this.submit = function () {\r\n var data = {\r\n EmailPermission: this.model().permissionEmail(),\r\n RetailPermission: this.model().permissionRetail(),\r\n SmsWinnerNotificationPermission: this.model().winSMS(),\r\n EmailWinnerNotificationPermission: this.model().winEmail(),\r\n referenceId: 'Min_side'\r\n };\r\n\r\n this.trackChanges(this.initialData, data);\r\n\r\n this.submitLoading(true);\r\n\r\n NotificationsApi.updateSettings(data)\r\n .then(function () {\r\n Ensighten.pushHashAsVirtualPage('kvittering', 'accountPage');\r\n this.submitLoading(false);\r\n m.redraw();\r\n m.route('/receipt');\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.toggleEmail = function (event) {\r\n var checked = event.target.checked || false;\r\n this.model().permissionEmail(checked);\r\n\r\n if (checked) {\r\n this.model().permissionRetail(false);\r\n } else {\r\n this.model().permissionRetail(this.initialData.RetailPermission);\r\n }\r\n\r\n\r\n }.bind(this);\r\n\r\n this.trackChanges = function (oldData, newData) {\r\n if (oldData.EmailPermission !== newData.EmailPermission) {\r\n Ensighten.pushGaEvent('permission', newData.EmailPermission ? 'checkBoxActivated' : 'checkBoxUnchecked', 'nyheder_e_mail');\r\n }\r\n\r\n if (oldData.RetailPermission !== newData.RetailPermission) {\r\n Ensighten.pushGaEvent('permission', newData.RetailPermission ? 'checkBoxActivated' : 'checkBoxUnchecked', 'nyheder_retail_e_mail');\r\n }\r\n\r\n if (oldData.SmsWinnerNotificationPermission !== newData.SmsWinnerNotificationPermission) {\r\n Ensighten.pushGaEvent('permission', newData.SmsWinnerNotificationPermission ? 'checkBoxActivated' : 'checkBoxUnchecked', 'vinder_sms');\r\n }\r\n\r\n if (oldData.EmailWinnerNotificationPermission !== newData.EmailWinnerNotificationPermission) {\r\n Ensighten.pushGaEvent('permission', newData.EmailWinnerNotificationPermission ? 'checkBoxActivated' : 'checkBoxUnchecked', 'vinder_e_mail');\r\n }\r\n }.bind(this);\r\n },\r\n\r\n view: function (controller) {\r\n var d = controller.dictionary;\r\n var model = controller.model();\r\n\r\n if (controller.loading()) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n\r\n return m('.pam-notifications', {\r\n 'data-uitest-id': 'pam-notifications'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content.pam-view__headline-container', [\r\n m('h1', d('Headline')),\r\n m('p.abstract', controller.recentlyUpgraded() ? d('BodyRecentlyUpgrade') : d('Body'))\r\n ]),\r\n ]),\r\n m('div', {\r\n class: ['pam-page__content', 'content-boxes', 'tooltip-area'].join(' ')\r\n }, [\r\n m('.pam-notifications__content-box', [\r\n Svg('round_big_letter'),\r\n m('h3.title', d('PermissionsHeadline')),\r\n m('.checkboxes', [\r\n m('.custom-checkbox', [\r\n m('input#permission-text-email', {\r\n type: 'checkbox',\r\n name: 'permission-text-email',\r\n onchange: controller.toggleEmail,\r\n checked: model.permissionEmail()\r\n }),\r\n m('label', { for: 'permission-text-email' }, m.trust(d('PermissionsDescription'))),\r\n ]),\r\n controller.initialData.RetailPermission ?\r\n m('div', [\r\n m('hr'),\r\n m('.custom-checkbox', [\r\n m('input#retail-text-email', {\r\n type: 'checkbox',\r\n name: 'retail-text-email',\r\n onchange: m.withAttr('checked', model.permissionRetail),\r\n checked: model.permissionRetail(),\r\n disabled: model.permissionEmail()\r\n }),\r\n m('label', {\r\n for: 'retail-text-email',\r\n class: [model.permissionEmail() ? 'custom-checkbox__label--disabled' : ''].join(' ')\r\n }, m.trust(d('RetailPermissionsDescription'))),\r\n ])\r\n ]) : null\r\n ])\r\n ]),\r\n m('.pam-notifications__content-box', [\r\n Svg('round_big_bell'),\r\n m('h3.title', d('WinnerHeadline')),\r\n m('p', m.trust(d('WinnerDescription'))),\r\n m('.checkboxes', [\r\n m('.custom-checkbox', [\r\n m('input#win-text-sms', {\r\n type: 'checkbox',\r\n name: 'win-text-sms',\r\n onchange: m.withAttr('checked', model.winSMS),\r\n checked: model.winSMS()\r\n }),\r\n m('label', { for: 'win-text-sms' }, d('SMSLabel')),\r\n ]),\r\n m('.custom-checkbox', [\r\n m('input#win-text-email', {\r\n type: 'checkbox',\r\n name: 'win-text-email',\r\n onchange: m.withAttr('checked', model.winEmail),\r\n checked: model.winEmail()\r\n }),\r\n m('label', { for: 'win-text-email' }, d('EmailLabel')),\r\n ]),\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: d('ButtonLabel') },\r\n loading: controller.submitLoading(),\r\n onclick: controller.submit\r\n })\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerGames/Scripts/Components/PlayerGamesDetails', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerGames/Scripts/Data/PlayerGamesApi',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, Render, Utils, LoadDots, NavigationHeader, Button, Dictionary, PlayerGamesApi, Ensighten) {\r\n\r\n var PlayerGamesDetails = {\r\n controller: function () {\r\n this.loading = m.prop(true);\r\n this.gameId = m.route.param('gameId');\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerGames/' });\r\n this.viewModel = m.prop();\r\n this.render = Render();\r\n this.isApp = m.prop(location.href.match(/dsapplicationid=.*mobilenative/i));\r\n this.height = m.prop(null);\r\n this.width = m.prop(null);\r\n\r\n var controller = this;\r\n\r\n PlayerGamesApi.getGameDetails(this.gameId).then(function (response) {\r\n var model = {\r\n Name: response.Name || null,\r\n Channel: response.Channel,\r\n GameId: response.Id || null,\r\n GameName: response.GameDisplayName || null,\r\n Type: response.Type || null,\r\n Wager: response.Wager || '-',\r\n WagerStatus: response.WagerStatus || '-',\r\n CanRebuy: response.CanRebuy || null,\r\n Win: response.Win || '0,00',\r\n CouponUrl: response.CouponUrl || null,\r\n HasValidCouponUrl: (response.CouponUrl && response.CouponUrl.slice(0, 1) !== '?'),\r\n Text: response.Text || null,\r\n Link: response.Link || null,\r\n SubscriptionId: response.SubscriptionId || null,\r\n Fees: response.Fees || '-',\r\n CreatedAt: response.CreatedAt ? Utils.formatDate(new Date(response.CreatedAt)) : null\r\n };\r\n return model;\r\n }).then(function (data) {\r\n this.viewModel(data);\r\n this.loading(false);\r\n m.redraw();\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 Ensighten.pushHashAsVirtualPage('kupon/' + controller.viewModel().Type.toLowerCase());\r\n };\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 window.addEventListener('message', resizeMessageHandler);\r\n\r\n this.onunload = function () {\r\n window.removeEventListener('message', resizeMessageHandler);\r\n };\r\n\r\n },\r\n view: function (controller) {\r\n var d = controller.d;\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-playerGames-details'\r\n }, controller.loading() ? LoadDots({\r\n size: 'half-height',\r\n text: d('GamesDetailsView/LoadingText')\r\n }) : [\r\n NavigationHeader(controller.redirectBack, false, d('SubPageBackButton')),\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('h1', d('GamesDetailsView/Headline', { GAME: controller.viewModel().GameName })),\r\n controller.viewModel().HasValidCouponUrl ? m('p.abstract', d('GamesDetailsView/Abstract', { GAME: controller.viewModel().GameName })) : null,\r\n m('div', [\r\n controller.viewModel().HasValidCouponUrl && controller.viewModel().CouponUrl ?\r\n m('div', {\r\n class: [\r\n 'game-receipt',\r\n ('game-receipt--' + controller.viewModel().Type.toLowerCase())\r\n ].join(' ')\r\n }, [\r\n m('iframe', {\r\n class: 'game-receipt__iframe',\r\n style: [\r\n (controller.height() ? 'height: ' + controller.height() + 'px;' : ''),\r\n (controller.width() ? 'width: ' + controller.width() + 'px' : ''),\r\n ].join(' '),\r\n onload: controller.resizeIframe,\r\n config: controller.render.depend('iframe-' + controller.viewModel().GameId),\r\n src: controller.viewModel().CouponUrl + (controller.isApp() ? (controller.viewModel().CouponUrl.includes('?') ? '&' : '?') + controller.isApp() : ''),\r\n frameborder: '0',\r\n allowfullscreen: '0',\r\n id: controller.viewModel().GameId\r\n })\r\n ]) : m('.no-game-receipt', [\r\n m('a', { href: controller.viewModel().Link }, controller.viewModel().Text)\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: d('GamesDetailsView/CloseButton') },\r\n classes: { default: 'pam__button pam__button--grey' },\r\n onclick: controller.redirectBack,\r\n }),\r\n !controller.isApp() ? m(Button, {\r\n text: { default: d('GamesDetailsView/PrintButton') },\r\n classes: { default: 'pam__button pam__button--grey' },\r\n onclick: controller.printReceipt,\r\n }) : null\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return PlayerGamesDetails;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerGames/Scripts/PlayerGames', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerGames/Scripts/Components/PlayerGames',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerGames/Scripts/Components/PlayerGamesDetails'\r\n], function (Component, RouteSlide, ReceiptData, Receipt, Dictionary, PlayerGames, PlayerGamesDetails) {\r\n\r\n Component('player-games', [Dictionary], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n\r\n this.settings = {\r\n DefaultPage: '1',\r\n DefaultPeriod: { Key: '365' },\r\n DefaultOffset: { Key: '1' },\r\n DefaultVertical: { Key: 'alle-spil' },\r\n DefaultChannel: { Key: 'alle-kanaler' },\r\n vikinglottoPriceChangeDate: null,\r\n eurojackpotGameChangeDate: null\r\n };\r\n\r\n if (settings.DefaultPeriod && settings.DefaultPeriod.Key) this.settings.DefaultPeriod = settings.DefaultPeriod;\r\n if (settings.DefaultOffset && settings.DefaultOffset.Key) this.settings.DefaultOffset = settings.DefaultOffset;\r\n if (settings.DefaultVertical && settings.DefaultVertical.Key) this.settings.DefaultVertical = settings.DefaultVertical;\r\n if (settings.DefaultChannel && settings.DefaultChannel.Key) this.settings.DefaultChannel = settings.DefaultChannel;\r\n if (settings.ActiveColor) this.settings.ActiveColor = settings.ActiveColor;\r\n if (settings.InactiveColor) this.settings.InactiveColor = settings.InactiveColor;\r\n\r\n if (settings.VikinglottoPriceChangeDate.indexOf('#{') === -1) this.settings.vikinglottoPriceChangeDate = new Date(settings.VikinglottoPriceChangeDate);\r\n if (settings.EurojackpotGameChangeDate.indexOf('#{') === -1) this.settings.eurojackpotGameChangeDate = new Date(settings.EurojackpotGameChangeDate);\r\n\r\n var defaultRoute = '/' + this.settings.DefaultPage + '/' + this.settings.DefaultPeriod.Key.toLowerCase() + '/' + this.settings.DefaultOffset.Key.toLowerCase() + '/' + this.settings.DefaultVertical.Key.toLowerCase() + '/' + this.settings.DefaultChannel.Key.toLowerCase();\r\n\r\n var receiptData = new ReceiptData({\r\n noCountdown: true,\r\n uiTestId: 'pam-playerGames-receipt'\r\n });\r\n\r\n m.route.mode = 'hash';\r\n m.route(element, defaultRoute, {\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 2 }), { options: receiptData }),\r\n '/details/:gameId': RouteSlide(PlayerGamesDetails, { level: 2 }),\r\n '/:page/:period/:offset/:type/:channel': m.component(RouteSlide(PlayerGames, { level: 1 }), {\r\n receiptData: receiptData,\r\n settings: this.settings\r\n }),\r\n });\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/DataSettings', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n], function (m, Request) {\r\n\r\n\r\n\r\n var DataSettings = function (dependencies) {\r\n\r\n return function (data) {\r\n\r\n var depArr = [].concat(dependencies);\r\n\r\n var deps = depArr.map(function (dependency) {\r\n var depDeferred = m.deferred();\r\n Request({\r\n method: 'GET',\r\n url: dependency.url\r\n }).then(function (res) {\r\n var oldData = data();\r\n oldData[dependency.name] = res;\r\n data(oldData);\r\n depDeferred.resolve();\r\n });\r\n return depDeferred.promise;\r\n });\r\n\r\n return {\r\n ready: m.sync(deps)\r\n };\r\n };\r\n\r\n };\r\n\r\n return DataSettings;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/PlayerTransactionsBalance', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Components/PlayerTransactionsBalance'\r\n], function (Component, RouteSlide, ReceiptData, Receipt, Dictionary, PlayerTransactionsBalance) {\r\n 'use strict';\r\n\r\n Component('player-transactions-balance', [Dictionary], function (m, ignoredRoute, ignoredSettings, ignoredProperty, element) {\r\n\r\n var dictionary = Dictionary.get.bind({ prefix: 'PlayerTransactions/' });\r\n\r\n var receiptData = new ReceiptData({\r\n callback: function () {\r\n m.route('/');\r\n },\r\n uiTestId: 'pam-playerTransactions-balance-receipt'\r\n });\r\n\r\n m.route.mode = 'hash';\r\n m.route(element, '/', {\r\n '/': m.component(RouteSlide(PlayerTransactionsBalance, { level: 0 }), {\r\n receiptData: receiptData,\r\n dictionary: dictionary\r\n }),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 1 }), { options: receiptData })\r\n });\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Components/PlayerTransactionsDetails', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Box',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Data/PlayerTransactionsApi',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Helpers/Mapping',\r\n], function (m, Utils, LoadDots, NavigationHeader, Box, PlayerTransactionsApi, Dictionary, Mapping) {\r\n\r\n var PlayerTransactionsDetails = {\r\n controller: function (args) {\r\n this.loading = m.prop(true);\r\n this.transactionId = m.route.param('id');\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerTransactions/' });\r\n this.viewModel = m.prop();\r\n\r\n PlayerTransactionsApi.getTransactionDetails(this.transactionId).then(function (response) {\r\n var model = {\r\n Type: Mapping.mapTypeDisplayName(response, args.settings.TransactionTypes) || null,\r\n Amount: response.Amount ? Utils.formatCurrency(response.Amount) : null,\r\n Currency: response.Currency || null,\r\n Src: response.Src || null,\r\n CreatedAt: response.CreatedAt ? Utils.formatDate(new Date(response.CreatedAt)) : null,\r\n RejectedAt: response.RejectedAt ? Utils.formatDate(new Date(response.RejectedAt)) : null,\r\n Balance: response.Balance ? Utils.formatCurrency(response.Balance) : null,\r\n TransactionId: response.TransactionId || '-',\r\n Status: response.StatusDisplayName || null,\r\n CanBeCancelled: response.CanBeCancelled || false,\r\n PaymentMethodType: response.PaymentMethodType || null,\r\n PaymentMethodAccountNumber: response.PaymentMethodAccountNumber || null,\r\n PaymentMethodBankName: response.PaymentMethodBankName || null,\r\n PaymentMethodCardNumberObfuscated: response.PaymentMethodCardNumberObfuscated || null,\r\n PaymentMethodCardType: response.PaymentMethodCardType || null,\r\n PaymentMethodExpirationDate: response.PaymentMethodExpirationDate || null\r\n };\r\n\r\n return model;\r\n }).then(function (data) {\r\n this.viewModel(data);\r\n this.loading(false);\r\n m.redraw();\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 view: function (controller) {\r\n var d = controller.d;\r\n if (controller.loading()) return m('', [LoadDots({ size: 'half-height', text: d('TransactionsDetailsView/LoadingText') })]);\r\n\r\n var paymentMethodDisplayName = function () {\r\n if (controller.viewModel().PaymentMethodType === 'creditCard') {\r\n return m('.box-item__right', [\r\n m('h3', controller.viewModel().PaymentMethodCardType),\r\n controller.viewModel().PaymentMethodCardType === 'MobilePay' ? null : m('small', controller.viewModel().PaymentMethodCardNumberObfuscated)\r\n ]);\r\n }\r\n\r\n if (controller.viewModel().PaymentMethodType === 'bankAccount') {\r\n return m('.box-item__right', [\r\n m('h3', d('Types/BankDeposit')),\r\n m('small', d('TransactionsDetailsView/BankAccountLabel', { ACCOUNT: controller.viewModel().PaymentMethodAccountNumber }))\r\n ]);\r\n }\r\n\r\n return m('.box-item__right', [\r\n m('h3', '-')\r\n ]);\r\n }.bind(this);\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-playerTransactionsDetails'\r\n }, [\r\n NavigationHeader(controller.redirectBack, false, d('SubPageBackButton')),\r\n m('div', {\r\n class: [\r\n 'pam-page__content',\r\n 'player-transactions-details'\r\n ].join(' ')\r\n }, [\r\n m('.pam-page__inner-content', [\r\n m('h1', d('TransactionsDetailsView/Headline', { ID: controller.viewModel().TransactionId })),\r\n m('p.abstract', d('TransactionsDetailsView/Abstract')),\r\n Box({\r\n body: {\r\n items: [\r\n {\r\n left: { text: d('TransactionsDetailsView/List/Type') },\r\n right: { text: controller.viewModel().Type }\r\n },\r\n {\r\n left: { text: d('TransactionsDetailsView/List/Status') },\r\n right: { text: controller.viewModel().Status }\r\n },\r\n {\r\n left: { text: d('TransactionsDetailsView/List/TransactionID') },\r\n right: { text: controller.viewModel().TransactionId }\r\n },\r\n {\r\n left: { text: d('TransactionsDetailsView/List/PaymentMethod') },\r\n right: { template: paymentMethodDisplayName }\r\n },\r\n {\r\n left: { text: d('TransactionsDetailsView/List/Date') },\r\n right: { text: controller.viewModel().CreatedAt }\r\n },\r\n {\r\n visible: controller.viewModel().RejectedAt,\r\n left: { text: d('TransactionsDetailsView/List/RejectedDate') },\r\n right: { text: controller.viewModel().RejectedAt }\r\n },\r\n {\r\n left: { text: d('TransactionsDetailsView/List/Amount') },\r\n right: { text: controller.viewModel().Amount + ' ' + d('TransactionsList/Currency') }\r\n }\r\n ]\r\n }\r\n }),\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return PlayerTransactionsDetails;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/PlayerTransactions', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Components/PlayerTransactions',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Components/PlayerTransactionsDetails'\r\n], function (Component, RouteSlide, ReceiptData, Receipt, Dictionary, PlayerTransactions, PlayerTransactionsDetails) {\r\n\r\n Component('player-transactions', [Dictionary], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n\r\n this.settings = {\r\n DefaultPage: '1',\r\n DefaultPeriod: { Key: '7' },\r\n DefaultOffset: { Key: '1' },\r\n DefaultTransactionType: { Key: 'alle-typer' }\r\n };\r\n\r\n this.hasCancelPayoutExclusion = m.prop(null);\r\n\r\n if (settings.DefaultPeriod && settings.DefaultPeriod.Key) this.settings.DefaultPeriod = settings.DefaultPeriod;\r\n if (settings.DefaultOffset && settings.DefaultOffset.Key) this.settings.DefaultOffset = settings.DefaultOffset;\r\n if (settings.DefaultTransactionType && settings.DefaultTransactionType.Key) this.settings.DefaultTransactionType = settings.DefaultTransactionType;\r\n if (settings.StatusColors) this.settings.StatusColors = settings.StatusColors;\r\n if (settings.TransactionTypes) this.settings.TransactionTypes = settings.TransactionTypes;\r\n if (settings.TransactionStatuses) this.settings.TransactionStatuses = settings.TransactionStatuses;\r\n for (var i = 0; i < settings.TransactionStatuses.length; i++) {\r\n var t = settings.TransactionStatuses[i];\r\n t.hexColor = settings.StatusColors[t.Color];\r\n }\r\n\r\n var defaultRoute = '/' + this.settings.DefaultPage + '/' + this.settings.DefaultPeriod.Key.toLowerCase() + '/' + this.settings.DefaultOffset.Key.toLowerCase() + '/' + this.settings.DefaultTransactionType.Key.toLowerCase();\r\n\r\n var receiptData = new ReceiptData({\r\n noCountdown: true\r\n });\r\n\r\n m.route.mode = 'hash';\r\n m.route(element, defaultRoute, {\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 2 }), { options: receiptData }),\r\n '/details/:id': m.component(RouteSlide(PlayerTransactionsDetails, { level: 1 }), {\r\n settings: this.settings\r\n }),\r\n '/:page/:period/:offset/:type': m.component(RouteSlide(PlayerTransactions, { level: 0 }), {\r\n receiptData: receiptData,\r\n settings: this.settings,\r\n hasCancelPayoutExclusion: this.hasCancelPayoutExclusion\r\n }),\r\n });\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Models/PayoutModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Data/CustomValidators',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary'\r\n], function (m, Model, customValidators, ValidationModel, Dictionary) {\r\n 'use strict';\r\n\r\n var PayoutModel = Model('PayoutModel', new ValidationModel(function (content) {\r\n\r\n customValidators.add();\r\n var d = Dictionary.get.bind({ prefix: 'PlayerTransactions/Payout/' });\r\n\r\n this.fields = {\r\n inputValue: m.prop(content.Amount || ''),\r\n MaxAmount: m.prop(content.MaxAmount || 0),\r\n MinAmount: m.prop(content.MinAmount || 0),\r\n AccountDisplayName: m.prop(content.AccountDisplayName || ''),\r\n BankAccountType: m.prop(content.BankAccountType || 'none'),\r\n PendingPayout: m.prop(content.PendingPayout || false),\r\n PendingPayoutAmount: m.prop(content.PendingPayoutAmount || 0),\r\n PendingPayoutExist: m.prop(content.PendingPayoutExist || 0),\r\n CreatedAt: m.prop(content.CreatedAt || null)\r\n };\r\n\r\n this.fieldrules = {\r\n inputValue: {\r\n format: {\r\n pattern: new RegExp('^(\\\\d)*(\\\\,\\\\d{1,2})? ' + d('Currency').replace('.', '\\\\.') + '$'),\r\n message: d('Validation/NotCurrencyFormat')\r\n },\r\n belowMinimumAmount: { MinAmount: this.fields.MinAmount, message: d('Validation/BelowMinAmount') },\r\n aboveMaximumAmount: {\r\n MaxAmount: this.fields.MaxAmount,\r\n message: d('Validation/AboveMaxAmount', { amount: this.fields.MaxAmount() })\r\n }\r\n }\r\n };\r\n\r\n this.extendFields(this);\r\n\r\n this.toJSON = function () {\r\n return {\r\n Amount: this.fields.inputValue()\r\n };\r\n }.bind(this);\r\n }));\r\n\r\n return PayoutModel;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/VisualLimitWithCounter', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils'\r\n], function (m, Render, Utils) {\r\n\r\n var VisualLimitWithCounter = function (controller) {\r\n var render = Render();\r\n var d = controller.d;\r\n var model = controller.model;\r\n var currentInputValue = controller.model().fields.inputValue() || 0;\r\n var inputValue = typeof currentInputValue === 'string' ? parseFloat(currentInputValue.replace(',', '.')) : currentInputValue;\r\n var dictionaryString = null;\r\n var count = controller.transactionsCount();\r\n var limitExceeded = count >= controller.maxPaymentCount();\r\n\r\n var formatValue = function (limit) {\r\n return Utils.formatCurrency(limit).replace(',00', '');\r\n };\r\n\r\n const minimumLimitValue = () => {\r\n return Math.min(model().maxLimit(), model().limit());\r\n };\r\n\r\n\r\n if (limitExceeded) {\r\n dictionaryString = 'VisualLimitWithCounter/PaymentCounterExceeded';\r\n } else if (count >= controller.maxPaymentCountFinalWarning()) {\r\n dictionaryString = 'VisualLimitWithCounter/PaymentCounterWarning2';\r\n } else if (count >= controller.maxPaymentCountWarning()) {\r\n dictionaryString = 'VisualLimitWithCounter/PaymentCounterWarning1';\r\n }\r\n\r\n render.ready.then(function (nodes) {\r\n var progression = nodes['progression'];\r\n var label = nodes['label'];\r\n\r\n if (progression && progression.rendered) {\r\n const limit = Math.min(model().limit(), model().maxLimit());\r\n var width = ((((limit - (model().maxAmount() - inputValue))) / limit) * 100);\r\n progression.$element.style.width = width > 1 ? width + '%' : '0%'; // Fixes visual bug\r\n progression.$element.classList.remove('visual-limit__progression--full', 'visual-limit__progression--breached');\r\n if ((model().maxAmount() - inputValue) === 0) {\r\n progression.$element.classList.add('visual-limit__progression--full');\r\n }\r\n if ((model().maxAmount() - inputValue) < 0) {\r\n progression.$element.classList.add('visual-limit__progression--breached');\r\n }\r\n }\r\n\r\n if (label && label.rendered) {\r\n label.$element.style.opacity = 1;\r\n }\r\n\r\n if (label && !label.rendered) {\r\n // Force a redraw on first run\r\n setTimeout(function () {\r\n m.redraw();\r\n }, 0);\r\n }\r\n });\r\n\r\n if (controller.infoRibbon()) {\r\n return;\r\n }\r\n\r\n if (!model().userHasSetLimit() && !dictionaryString) {\r\n return;\r\n }\r\n\r\n return [\r\n m('.visual-limit', { class: 'visual-limit--with-counter', config: render.depend() }, [\r\n m('.visual-limit__content', [\r\n m('.visual-limit__content-inner', [\r\n model().userHasSetLimit() && !limitExceeded ?\r\n [\r\n m('p.abstract', m.trust(d('VisualLimitWithCounter/Description', {\r\n PERIOD: model().period()\r\n }))),\r\n m('.visual-limit__graphical-wrapper', [\r\n m('.visual-limit__progression', { config: render.depend('progression') }, [\r\n m('.visual-limit__current', {\r\n config: render.depend('label'),\r\n class: inputValue < 40 ? 'visual-limit__zero-value' : ''\r\n },\r\n (model().maxAmount() - inputValue) < 0 ? d('VisualLimitWithCounter/BreachedLimit') : formatValue(minimumLimitValue() - model().maxAmount() + inputValue))\r\n ]),\r\n m('.visual-limit__background'),\r\n m('.visual-limit__labels', [\r\n m('.visual-limit__low-bound', '0 kr.'),\r\n m('.visual-limit__high-bound', formatValue(minimumLimitValue()))\r\n ])\r\n ]),\r\n m('.visual-limit__text', m.trust(d('VisualLimitWithCounter/ChangeLimitText')))\r\n ]\r\n : null,\r\n typeof dictionaryString === 'string' ?\r\n m('.visual-limit__payment-counter', {\r\n class: !model().userHasSetLimit() || limitExceeded ? 'visual-limit__payment-counter--no-border' : ''\r\n }, m.trust(d(dictionaryString, {\r\n AMOUNT: count,\r\n REMAINING: controller.maxPaymentCount() - count,\r\n LIMIT: controller.maxPaymentCount(),\r\n PERIOD: model().period()\r\n }))\r\n )\r\n : null\r\n ])\r\n ])\r\n ])\r\n ];\r\n\r\n };\r\n\r\n return VisualLimitWithCounter;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentOption', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n], function (m, Svg) {\r\n\r\n var PaymentOption = function (controller, data, options) {\r\n const model = controller.model;\r\n const activeOption = model().fields.activeOption();\r\n const { iconWidth, iconName } = options;\r\n\r\n return [\r\n m('div', {\r\n class: ['button button--apps', activeOption === data().cardType ? 'button--active' : ' '].join(' '), onclick: function () {\r\n controller.model().fields.activeOption(data().cardType);\r\n }\r\n }, [\r\n m('div', { class: 'payment__cards-text' }, data().cardName),\r\n Svg(iconName, { class: `payment__icon payment__icon--${iconWidth ?? 'default'}` }),\r\n m('div', [\r\n m('input', {\r\n type: 'radio',\r\n id: data().cardName + 'Radio',\r\n checked: (activeOption === data().cardType ? 'checked' : false)\r\n }),\r\n m('label', { for: data().cardName + 'Radio' }, '')\r\n ])\r\n ])\r\n ];\r\n\r\n };\r\n\r\n return PaymentOption;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/RealityCheckOverlay',\r\n [\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils'\r\n ],\r\n function (Ensighten, m, Utils) {\r\n\r\n // Context:\r\n var RealityCheckOverlay = function (className, d, data) {\r\n\r\n // Variables:\r\n var context = DS.Config.CONTEXT === 'DLI' ? 'Blue' : 'Red';\r\n\r\n // Functions:\r\n var trackCSR = function () {\r\n Ensighten.pushGaEvent('indbetaling_pop_up', 'klik_paa_spil_med_omtanke', '{antal gange indbetalt}_{ beløb indbetalt }');\r\n };\r\n\r\n var trackAccountHistory = function () {\r\n Ensighten.pushGaEvent('indbetaling_pop_up', 'klik_paa_historik', '{antal gange indbetalt}_{ beløb indbetalt }');\r\n };\r\n\r\n // Return:\r\n return {\r\n class: m.prop(className + ' ' + className + '-' + DS.Config.CONTEXT.toLowerCase()),\r\n\r\n render: function (confirm, dismiss) {\r\n return m('div', { class: this.class() }, [\r\n m('div', { class: 'panel' }, [\r\n m('div', { class: 'panel-header' }, d('RealityCheckOverlay/Headline')),\r\n m('div', { class: 'panel-body' }, [\r\n m('p', { class: 'sub-headline' }, d('RealityCheckOverlay/NewPaymentStatusFor' + context + 'Account')),\r\n m('p', data.bodyText ? data.bodyText : d('RealityCheckOverlay/ByMakingThisPayment')),\r\n data.depositDisabled ? null : m('div', [\r\n m('div', { class: 'line' }),\r\n m('div', { class: 'description' }, [\r\n m('p', d('RealityCheckOverlay/Paid'), m('span', [\r\n m('strong', data.depositCountResult),\r\n d('RealityCheckOverlay/Count' + (data.depositCountResult !== 1 ? 'Pluralis' : 'Singular'))\r\n ])),\r\n m('p', d('RealityCheckOverlay/PaidInTotal' + context + 'Account'), m('span', [m('strong', Utils.numberFormat(data.depositResult / 100, 0, ',', '.')), d('RealityCheckOverlay/Currency')]))\r\n ]),\r\n m('div', { class: 'line' })\r\n ])\r\n ]),\r\n m('div', { class: 'panel-footer' }, [\r\n m('span', { class: 'cta-button cta-button-dismiss', onclick: dismiss }, data.depositDisabled ? d('RealityCheckOverlay/Close') : d('RealityCheckOverlay/Dismiss')),\r\n data.depositDisabled ? null : m('span', { class: 'cta-button cta-button-confirm', onclick: confirm }, d('RealityCheckOverlay/Confirm'))\r\n ]),\r\n m('div', { class: 'bottom-links' }, [\r\n m('a', { class: 'csr', href: data.responsibleGamingLink, onclick: trackCSR }, d('RealityCheckOverlay/ResponsibleGaming')),\r\n m('a', { class: 'account-history', href: data.accountHistoryLink, onclick: trackAccountHistory }, d('RealityCheckOverlay/AccountHistory')),\r\n m('div', { class: 'clear' })\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n\r\n // Public functions:\r\n return RealityCheckOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentStep3', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ReceiptPage',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, ReceiptPage, Ensighten) {\r\n\r\n function onStepRendered(ignoredElement, isInitialized) {\r\n if (!isInitialized) {\r\n Ensighten.pushHashAsVirtualPage('kvittering', 'accountCashFlowPage');\r\n }\r\n }\r\n\r\n var Step3 = function (controller) {\r\n var status = controller.getTransactionStatus();\r\n var state = status.state[0].toUpperCase() + status.state.toLowerCase().slice(1);\r\n\r\n return m('#step3', { config: onStepRendered }, [\r\n ReceiptPage({\r\n title: controller.d('Step3/' + state + '/Title', { amount: controller.model().amount() }),\r\n descriptionTemplate: m('div', [\r\n m('h3', m.trust(controller.d('Step3/' + state + '/SubTitle'))),\r\n controller.model().fields.bonusCode() ? m('p', controller.d('Step3/' + state + '/BonusCode', { code: controller.model().fields.bonusCode() })) : '',\r\n controller.model().savedCard() ? m('p', controller.d('Step3/' + state + '/SavedCard')) : ''\r\n ]),\r\n icon: status.restart ? 'round_big_alert' : 'round_big_check',\r\n noCountdown: true,\r\n redirectButtonText: controller.d('Step3/' + state + '/RedirectButton'),\r\n callback: function () {\r\n controller.receiptCallback(status.restart);\r\n },\r\n subTemplate: m('.info-ribbon .info-ribbon--notice .summary', [\r\n m('.summary__list', [\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Step3/' + state + '/OrderNumber')),\r\n m('.order-value.value', controller.model().orderId())\r\n ]),\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Step3/' + state + '/Amount')),\r\n m('.amount-value.value', controller.model().amount())\r\n ]),\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Step3/' + state + '/Fee')),\r\n m('.fee-value.value', controller.model().fee())\r\n ]),\r\n m('.line'),\r\n m('.summary__list__row.total', [\r\n m('.label', controller.d('Step3/' + state + '/Total')),\r\n m('.total-value.value', controller.model().total())\r\n ])\r\n ])\r\n ])\r\n })\r\n ]);\r\n };\r\n\r\n return Step3;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentStep2', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, Button, Ensighten) {\r\n\r\n function onStepRendered(ignoredElement, isInitialized) {\r\n if (!isInitialized) {\r\n Ensighten.pushHashAsVirtualPage('bekraeftelse', 'accountCashFlowPage');\r\n }\r\n }\r\n\r\n var Step2 = function (controller) {\r\n\r\n return [\r\n m('h1', controller.d('Title')),\r\n m('.subhead', controller.d('Step2/SubHeading', { cardtype: controller.currentSelection().cardName })),\r\n m('#step2', { config: onStepRendered }, [\r\n m('.content', [\r\n m('.column', [\r\n m('div', {\r\n class: 'cardinfo',\r\n 'data-uitest-id': 'pam-payment-cardNumber'\r\n }, [\r\n m('span', { class: 'cardinfo__left' }, controller.d('Step2/CardNumber')),\r\n m('div', { class: 'cardinfo__right' }, [\r\n controller.currentSelection().cardNumber\r\n ])\r\n ]),\r\n m('div', {\r\n class: 'cardinfo',\r\n 'data-uitest-id': 'pam-payment-expirationDate'\r\n }, [\r\n m('span', { class: 'cardinfo__left' }, controller.d('Step2/ExpirationDate')),\r\n m('span', { class: 'cardinfo__right' }, [\r\n controller.formatExpirationDate(controller.currentSelection().cardExpirationDate)\r\n ])\r\n ]),\r\n m('div', {\r\n class: 'cardinfo',\r\n 'data-uitest-id': 'pam-payment-expirationCode'\r\n }, [\r\n m('span', { class: 'cardinfo__left' }, controller.d('Step2/CCVCode')),\r\n m('span', { class: 'cardinfo__right' }, [\r\n 'XXX'\r\n ])\r\n ])\r\n ])\r\n ]),\r\n m('.summary', [\r\n m('.summary__list', [\r\n controller.model().orderId() !== 'UNKNOWN' ?\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Step3/Success/OrderNumber')),\r\n m('.order-value.value', controller.model().orderId())\r\n ]) : null,\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Step3/Success/Amount')),\r\n m('.amount-value.value', controller.model().amount())\r\n ]),\r\n m('.summary__list__row', [\r\n m('.label', controller.d('Step3/Success/Fee')),\r\n m('.fee-value.value', controller.model().fee())\r\n ]),\r\n m('.line'),\r\n m('.summary__list__row.total', [\r\n m('.label', controller.d('Step3/Success/Total')),\r\n m('.total-value.value', controller.model().total())\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: controller.d('Step2/ConfirmButton') },\r\n loading: controller.loadingProps.makePayment(),\r\n onclick: controller.gotoReceipt\r\n })\r\n ])\r\n ])\r\n ];\r\n };\r\n\r\n return Step2;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentStep1', [\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Mithril/Scripts/Templates/OverlayContainer',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Reepay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/RealityCheckOverlay',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/VisualLimitWithCounter',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentOption'\r\n], function (Ensighten, m, ApiRequest, Utils, OverlayContainer, Reepay, CustomInput, Button, Svg, RealityCheckOverlay, VisualLimitWithCounter, PaymentOption) {\r\n\r\n // HACK (Payment steps should have been written as components)\r\n var disabled = m.prop(true);\r\n var prefix = m.prop(null);\r\n var initialized = m.prop(false);\r\n var mobilePay = m.prop(null);\r\n var applePay = m.prop(null);\r\n var googlePay = m.prop(null);\r\n\r\n var Step1 = function (controller) {\r\n\r\n var self = this;\r\n var storedCards = controller.model().storedCards() || [];\r\n var activeOption = controller.model().fields.activeOption();\r\n var newCardFlow = Utils.getParameter('addNewCard');\r\n const missingAmount = Utils.getParameter('instantAmount') || controller.model().getMinimumDepositAmount();\r\n controller.isQuickDeposit = m.prop(document.body.classList.contains('quick-deposit') && document.body.classList.contains('dlo') && Utils.getParameter('instantAmount'));\r\n controller.showAllPaymentOptions = m.prop(Utils.getParameter('showAllPaymentOptions') === 'true');\r\n\r\n\r\n controller.primaryChoices().forEach(async function (choice) {\r\n const sanitizedCardName = choice.cardName.replace(/\\s/g, '').toLowerCase();\r\n if (sanitizedCardName === 'mobilepay') {\r\n mobilePay(choice);\r\n }\r\n if (sanitizedCardName === 'applepay' && Reepay.isApplePayAvailable()) {\r\n applePay(choice);\r\n }\r\n\r\n if (sanitizedCardName === 'googlepay') {\r\n if (await Reepay.isGooglePayAvailable()) {\r\n googlePay(choice);\r\n }\r\n }\r\n });\r\n\r\n\r\n self.usePaymentOption = function (option) {\r\n controller.model().fields.activeOption(option);\r\n }.bind(this);\r\n\r\n self.isDropdownChoiceCard = function (option) {\r\n return controller.dropdownChoices().some(function (choice) {\r\n return choice.cardType === option;\r\n });\r\n };\r\n\r\n self.maskPartialPan = function (partialPan) {\r\n var isMobile = document.querySelector('.is-mobile-detected');\r\n return isMobile || controller.isQuickDeposit() ? partialPan.replace(/x/ig, '●') : partialPan;\r\n };\r\n\r\n /**\r\n * Send gaEvent with details about any stored creditcards\r\n */\r\n self.trackInfoAboutStoredCards = function trackInfoAboutStoredCards() {\r\n // Prepare to track any saved cards\r\n var eventAction = controller.model().hasStoredCards() ? 'gemt_kort' : 'intet_kort';\r\n var eventLabel = 'intet_kort';\r\n\r\n if (controller.model().hasStoredCards()) {\r\n var arr = [];\r\n controller.model().storedCards().forEach(function (card) {\r\n switch (card.cardType) {\r\n case 'DK':\r\n arr.push('dankort');\r\n break;\r\n case 'V-DK':\r\n arr.push('visa_dankort');\r\n break;\r\n case 'MC(DK)':\r\n arr.push('mastercard');\r\n break;\r\n default:\r\n arr.push('ukendt');\r\n }\r\n eventLabel = arr.join(', ');\r\n });\r\n }\r\n // Track information about saved cards\r\n Ensighten.pushGaEvent('deposit', eventAction, eventLabel);\r\n };\r\n\r\n var curSel = controller.currentSelection();\r\n\r\n var minAmount = curSel && curSel.minimumAmount ? curSel.minimumAmount : 50;\r\n\r\n var x = minAmount > 0 ? minAmount : null;\r\n prefix(x ? { text: controller.d('Step1/InputPrefix', { value: x }), smaller: false, onclick: true } : '');\r\n\r\n /* check if user are permanentely barred or if his limit for today is already reached */\r\n this.canInput = (!controller.model().barredFromPayment() && controller.model().maxAmount() !== 0) || controller.canInput();\r\n\r\n disabled(!this.canInput);\r\n\r\n if (!initialized()) {\r\n initialized(true);\r\n if (controller.isUserAuthenticated()) {\r\n self.trackInfoAboutStoredCards();\r\n }\r\n }\r\n\r\n var gotoConfirm = function () {\r\n ApiRequest({\r\n url: '/' + DS.Config.CONTEXT.toLowerCase() + '/scapi/danskespil/realitycheck/v1/checkPaymentNotification/' + (controller.model().fields.inputValue() * 100)\r\n }).then(function (response) {\r\n var data = response.data;\r\n var amount = Utils.numberFormat(data.depositResult / 100, 0, ',', '.') + 'kr.';\r\n var count = data.depositCountResult;\r\n\r\n if (!data.displayNotification) {\r\n controller.gotoConfirm();\r\n } else {\r\n Ensighten.pushGaEvent('indbetaling_pop_up', 'blevet_vist', count + '_' + amount);\r\n\r\n new OverlayContainer(RealityCheckOverlay('player-payment-reality-check-overlay', controller.d, data)).show(function () {\r\n Ensighten.pushGaEvent('indbetaling_pop_up', 'klik_paa_fortsaet', count + '_' + amount);\r\n\r\n controller.gotoConfirm();\r\n }, function () {\r\n Ensighten.pushGaEvent('indbetaling_pop_up', 'klik_paa_afslut', count + '_' + amount);\r\n });\r\n }\r\n });\r\n };\r\n\r\n var renderCtaButton = function (ctaText) {\r\n return m(Button, {\r\n id: 'payment-step1-button',\r\n disabled: disabled(),\r\n text: { default: ctaText },\r\n loading: controller.loadingProps.createPayment(),\r\n onclick: function () {\r\n if (controller.needsLimit()) {\r\n controller.limitsMissingModal().show();\r\n } else {\r\n gotoConfirm();\r\n }\r\n }\r\n });\r\n };\r\n\r\n return [\r\n function () {\r\n if (controller.userCannotMakePayments()) return null;\r\n if (controller.visualizeLimit()) return VisualLimitWithCounter(controller);\r\n return null;\r\n }(),\r\n m('.pam-view__headline-container', [\r\n controller.isQuickDeposit() ? [\r\n controller.isQuickDeposit() ? m('.pam-view__headline-container--logo', '') : null,\r\n m('h1', controller.d('Step1/TitleQuickDeposit')),\r\n m('p.abstract', controller.d('Step1/SubHeadingQuickDeposit', { balance: controller.userInfo().customerInfo.balance, missingAmount: missingAmount }))\r\n ] : [\r\n m('h1', controller.d('Title')),\r\n m('p.abstract', controller.d('Step1/SubHeading'))\r\n ]\r\n ]),\r\n m('#step1', [\r\n m('.content', [\r\n m('.column', [\r\n m('fieldset.select-button-row', [\r\n [].concat.apply([], controller.model().inputChoices().map(function (value) {\r\n\r\n var isDisabled = !this.canInput || value > controller.model().maxAmount() || value > controller.model().limit();\r\n\r\n return [\r\n m('input', {\r\n disabled: isDisabled,\r\n type: 'radio',\r\n id: 'amount-option-' + value,\r\n name: 'amount-option',\r\n value: value,\r\n onchange: m.withAttr('value', function (value) {\r\n controller.model().fields.selectedInputChoice(value);\r\n controller.model().fields.inputValue(value);\r\n }.bind(this)),\r\n checked: controller.model().fields.selectedInputChoice() == value\r\n }),\r\n m('label', {\r\n for: 'amount-option-' + value,\r\n class: [\r\n 'button button--medium',\r\n (isDisabled ? ' button--disabled' : ''),\r\n (controller.model().fields.selectedInputChoice() == value ? ' button--white' : '')\r\n ].join(' ')\r\n }, value + ' KR')\r\n ];\r\n }.bind(this)))\r\n ]),\r\n mobilePay() ? m('div', { class: 'help__text help__text--amount' }, controller.d('Step1/ChooseAmount')) : null,\r\n m(CustomInput, {\r\n id: 'input-amount',\r\n name: 'input-amount',\r\n model: controller.model().fields.inputValue,\r\n onkeyup: function (e) {\r\n controller.formatInputValue(e);\r\n controller.resetSelectedInputChoice(e);\r\n },\r\n prefix: prefix,\r\n postfix: controller.d('Step1/InputPostfix'),\r\n type: 'text',\r\n forceNumeric: true,\r\n class: 'search-input custom-input__amount',\r\n disabled: disabled,\r\n align: 'right',\r\n maxlength: '9',\r\n rightpad: true\r\n }, 'kr.'),\r\n !controller.model().isLoggedInWithNemID() && controller.model().mustVerifyPassword()\r\n ? m(CustomInput, {\r\n model: controller.model().fields.password,\r\n class: 'custom-input--last',\r\n type: 'password',\r\n required: 'required',\r\n disabled: disabled,\r\n placeholder: controller.d('Step1/Password'),\r\n id: 'password'\r\n }, '') : null,\r\n m('.bonus-save-group', [\r\n controller.isDLIContext() ? m('p', [\r\n m('a', {\r\n class: 'pam-page__link',\r\n id: 'link-bonuscode',\r\n onclick: controller.initiateBonusCodeFlow\r\n }, !controller.model().fields.bonusCode() ? controller.d('Step1/BonusCode') : controller.d('Step1/BonusCodeAdded', { code: controller.model().fields.bonusCode() })\r\n )\r\n ]) : null\r\n ]),\r\n controller.isQuickDeposit() ? null : m('p.abstract', controller.d('Step1/ChoosePaymentMethod')),\r\n m('div', { class: 'mobile__payments' }, [\r\n controller.isQuickDeposit() ? null : [\r\n storedCards.length > 0 ? m('div', { class: 'payment__manage-stored-cards' }, [\r\n m('a', { href: controller.manageStoredCards() }, controller.d('Step1/AdministerSavedCards')),\r\n ]) : null,\r\n ],\r\n function () {\r\n if (newCardFlow) return null;\r\n let activeStoredCards = storedCards.filter((card) => !card.cardExpirationDate.expired);\r\n\r\n if (controller.isQuickDeposit() && !controller.showAllPaymentOptions()) {\r\n activeStoredCards = activeStoredCards.sort((a, b) => (b.preferedCard - a.preferedCard));\r\n activeStoredCards = activeStoredCards.slice(0, 1);\r\n }\r\n\r\n return m('div', { class: 'payment__stored' }, [\r\n activeStoredCards.map(function (card) {\r\n return m('div', {\r\n class: ['button button--stored', card.cardId === activeOption ? 'button--active' : ' ',].join(' '), onclick: function () {\r\n self.usePaymentOption(card.cardId);\r\n }\r\n }, [\r\n m('.payment__card-preview',\r\n m('.payment__card-preview-icon', {\r\n style: `background-image: url(/Components/DanskeSpil/Framework/PlayerAccountManagement/Graphics/SpriteSheets/creditcards/${card.cardName.toLowerCase()}.svg)`\r\n })),\r\n m('div', { class: 'payment__card-preview-text' }, [\r\n m('div', { class: 'payment__card-name' }, [\r\n m('span', card.cardName)\r\n ]),\r\n m('div', { class: 'payment__card-number' }, self.maskPartialPan(card.cardNumber.toUpperCase())),\r\n m('div', { class: 'payment__card-date' }, controller.formatExpirationDate(card.cardExpirationDate)),\r\n ]),\r\n m('div', [\r\n m('input', {\r\n name: 'stored-card-' + card.cardId,\r\n type: 'radio',\r\n id: 'storedRadio-' + card.cardId,\r\n value: card.cardId,\r\n checked: (card.cardId === activeOption ? 'checked' : false)\r\n }),\r\n m('label', { for: 'storedCard-' + card.cardId }, '')\r\n ])\r\n ]);\r\n })\r\n ]);\r\n }(),\r\n (storedCards.length === 0 || (!controller.isQuickDeposit()) || controller.showAllPaymentOptions()) ? [\r\n m('div', {\r\n class: ['button button--cards', activeOption === 'newCard' ? 'button--active' : ' '].join(' '), onclick: function () {\r\n self.usePaymentOption('newCard');\r\n }\r\n }, [\r\n m('div', { class: 'payment__cards-text' }, controller.d('Step1/PaymentCards')),\r\n Svg('payment_cards', { class: 'payment__cards' }),\r\n m('div', [\r\n m('input', {\r\n type: 'radio',\r\n id: 'cardRadio',\r\n value: 'card',\r\n checked: (activeOption === 'newCard' ? 'checked' : false)\r\n }),\r\n m('label', { for: 'cardRadio' }, '')\r\n ])\r\n ]),\r\n m('div', { class: 'payment__apps' }, [\r\n applePay() && !newCardFlow ? PaymentOption(controller, applePay, { iconName: 'applepay', iconWidth: 'narrow' }) : null,\r\n googlePay() && !newCardFlow ? PaymentOption(controller, googlePay, { iconName: 'googlepay', iconWidth: 'narrow' }) : null,\r\n mobilePay() && !newCardFlow ? PaymentOption(controller, mobilePay, { iconName: 'mobilepay', iconWidth: 'wide' }) : null\r\n ])\r\n ] : null\r\n ]),\r\n !controller.model().fields.activeOption.validState() && !activeOption ? m('div', { class: 'custom-input__error' }, controller.d('Step1/MissingPaymentMethod')) : null,\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n controller.currentSelection() && controller.currentSelection().hasOwnProperty('cardId') ? m('div', { class: 'stored-card__cta' },\r\n renderCtaButton(controller.d('Step1/TransferStoredCardButton'))\r\n ) : renderCtaButton(controller.d('Step1/TransferButton'))\r\n ]),\r\n (!controller.showAllPaymentOptions() && controller.isQuickDeposit() && storedCards.length > 0) ? [\r\n m('.payment__manage-stored-cards', m('a', {\r\n href: '#',\r\n onclick: (event) => {\r\n event.preventDefault();\r\n window.location.href = window.location.href + (window.location.href.indexOf('?') === -1 ? '?' : '&') + 'showAllPaymentOptions=true';\r\n }\r\n }, controller.d('Step1/ButtonChooseAnotherPaymentMethod')))\r\n ] : null\r\n ];\r\n };\r\n\r\n return Step1;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Models/PaymentModel',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Data/CustomValidators',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils'\r\n ], function (m, Model, GlobalUtils, customValidators, ValidationModel, Dictionary, Utils) {\r\n 'use strict';\r\n\r\n var Payment = Model('Payment', new ValidationModel(function (content) {\r\n\r\n customValidators.add();\r\n\r\n var d = Dictionary.get.bind({ prefix: 'PlayerTransactions/Payment/' });\r\n\r\n this.fields = {\r\n inputValue: m.prop(content.inputValue || null),\r\n selectedInputChoice: m.prop(null),\r\n activeOption: m.prop(content.activeOption || null),\r\n username: m.prop(''),\r\n password: m.prop(''),\r\n bonusCode: m.prop(content.bonusCode || null),\r\n bonusCodeValid: m.prop(content.bonusCodeValid || null),\r\n bonusCodeMinimumDeposit: m.prop(content.bonusCodeMinimumDeposit || 0),\r\n amountPeriod: content.amountPeriod || { value: m.prop([]), list: m.prop([]) },\r\n amountPeriodValue: m.prop(content.amountPeriodValue || null)\r\n };\r\n\r\n this.resetBonusCode = function () {\r\n this.fields.bonusCode(null);\r\n this.fields.bonusCodeValid(null);\r\n this.fields.bonusCodeMinimumDeposit(0);\r\n }.bind(this);\r\n\r\n this.convertCentsToKroner = function (value) {\r\n return Utils.convertCentsToKronerAndFormat(value);\r\n };\r\n\r\n var maxAmount = Infinity;\r\n if (content.maxAmount <= 0) {\r\n maxAmount = 0;\r\n } else {\r\n maxAmount = Utils.convertCentsToKroner(content.maxAmount);\r\n }\r\n\r\n this.inputChoices = m.prop(content.inputChoices || [200, 300, 500]);\r\n this.waitTime = m.prop(content.waitTime || 5000);\r\n this.barredFromPayment = m.prop(content.barredFromPayment || false);\r\n this.maxAmount = m.prop(maxAmount);\r\n this.userHasSetLimit = m.prop(typeof content.hasSetLimit !== 'undefined' ? content.hasSetLimit : true);\r\n this.savedCard = m.prop(false);\r\n this.limit = m.prop(content.limit !== null && content.limit > -1 ? Utils.convertCentsToKroner(content.limit) : Infinity);\r\n this.maxLimit = m.prop(content.maxLimit !== null && content.maxLimit > -1 ? Utils.convertCentsToKroner(content.maxLimit) : null);\r\n this.period = m.prop(content.period || null);\r\n this.storedCards = m.prop(content.storedCards || []);\r\n this.maxNumberOfCreditCards = m.prop(content.maxNumberOfCreditCards);\r\n this.cardTypes = m.prop(content.cardTypes || []);\r\n this.minimumAmount = m.prop(content.minimumAmount || 0);\r\n this.saveCard = m.prop(content.saveCard || false);\r\n this.orderId = m.prop(content.orderId || '');\r\n this.externalId = m.prop(content.externalId || '');\r\n this.amount = m.prop(content.amount || 0);\r\n this.fee = m.prop(content.fee || 0);\r\n this.status = m.prop('');\r\n this.isLoggedInWithNemID = m.prop(content.isLoggedInWithNemID || false);\r\n this.isFromFaroe = m.prop(content.isFromFaroe || false);\r\n this.mustVerifyNemID = m.prop(content.mustVerifyNemID || false);\r\n this.mustVerifyPassword = m.prop(content.mustVerifyPassword || false);\r\n this.checkResponsibleGaming = m.prop(content.checkResponsibleGaming || false);\r\n this.showInfoMessage = m.prop(content.showInfoMessage || false);\r\n this.daily = {\r\n max: m.prop(content.daily.max || null)\r\n };\r\n this.weekly = {\r\n max: m.prop(content.weekly.max || null)\r\n };\r\n this.monthly = {\r\n max: m.prop(content.monthly.max || null)\r\n };\r\n\r\n this.total = function () {\r\n var total = parseFloat(this.getNumberFromAmount(this.amount()) + this.getNumberFromAmount(this.fee())).toFixed(2);\r\n return String(total).replace('.', ',');\r\n }.bind(this);\r\n\r\n this.isSavedCard = function (option) {\r\n return this.storedCards().map(function (card) {\r\n return card.cardId;\r\n }).indexOf(option) > -1;\r\n }.bind(this);\r\n\r\n this.hasStoredCards = function () {\r\n return this.storedCards().length > 0;\r\n }.bind(this);\r\n\r\n this.getCardTypesMapped = function () {\r\n return this.cardTypes() ? this.cardTypes().filter(function (cardType) {\r\n // Filter if dibs cards is still available in sitecore content.\r\n return cardType.provider === 'reepay';\r\n }.bind(this)).map(function (cardType) {\r\n cardType.value = cardType.cardType;\r\n cardType.text = cardType.cardName;\r\n return cardType;\r\n }) : [];\r\n }.bind(this);\r\n\r\n this.getMinimumDepositAmount = function () {\r\n var minimumDepositAmount = 0;\r\n\r\n this.cardTypes().map(function (cardType) {\r\n if (minimumDepositAmount < cardType.minimumAmount) {\r\n minimumDepositAmount = cardType.minimumAmount;\r\n }\r\n });\r\n\r\n return minimumDepositAmount;\r\n }.bind(this);\r\n\r\n var sortCardsList = function (cardsList) {\r\n return cardsList.sort(function (a, b) {\r\n if (a.preferedCard || (b.cardExpirationDate && b.cardExpirationDate.expired)) return -1;\r\n if (b.preferedCard || (a.cardExpirationDate && a.cardExpirationDate.expired)) return 1;\r\n return 0;\r\n });\r\n };\r\n\r\n this.getStoredCardsMapped = function () {\r\n sortCardsList(this.storedCards());\r\n var returnArr = this.storedCards().map(function (item) {\r\n var expiredText = item.cardExpirationDate.expired ? d('Step1/CardExpiredShort') : '';\r\n return GlobalUtils.extend(true, { value: item.cardId, disabled: item.cardExpirationDate && item.cardExpirationDate.expired, text: { left: item.cardName + expiredText, right: item.cardNumber } }, item);\r\n });\r\n return returnArr;\r\n }.bind(this);\r\n\r\n this.getCardsMapped = m.prop(this.getStoredCardsMapped().concat(this.getCardTypesMapped()));\r\n\r\n this.inputValueCents = function (value) {\r\n if (!value) return;\r\n return Math.round(this.getNumberFromAmount(value) * 100); // Fixing rounding error for javascript\r\n }.bind(this);\r\n\r\n this.getFloatFromAmount = function (value) {\r\n if (typeof value === 'string') {\r\n value = value.replace('.', '');\r\n }\r\n return parseFloat(value);\r\n };\r\n\r\n this.getNumberFromAmount = function (value) {\r\n if (typeof value === 'string') {\r\n value = value.replace('.', ''); // Remove any thousand seperators\r\n value = value.replace(',', '.');\r\n }\r\n return Number(value);\r\n };\r\n\r\n this.validateCard = function (card) {\r\n return (card && !(card.cardBarred || (card.cardExpirationDate && card.cardExpirationDate.expired)));\r\n }.bind(this);\r\n\r\n this.fieldrules = {\r\n activeOption: {\r\n presence: { message: d('Validation/NoCardSelected') }\r\n },\r\n amountPeriod: {\r\n presence: { message: d('Validation/AmountPeriod') }\r\n },\r\n amountPeriodValue: function () {\r\n return {\r\n presence: { message: d('Validation/AmountIsEmpty') },\r\n minimumDepositAmount: {\r\n cards: this.getCardsMapped,\r\n message: d('Validation/BelowDepositLimit')\r\n },\r\n isAboveDailyGlobalLimit: {\r\n limit: this.daily.max,\r\n message: d('Validation/AboveDailyGlobalLimit', { AMOUNT: this.daily.max() })\r\n },\r\n isAboveWeeklyGlobalLimit: {\r\n limit: this.weekly.max,\r\n message: d('Validation/AboveWeeklyGlobalLimit', { AMOUNT: this.weekly.max() })\r\n },\r\n isAboveMonthlyGlobalLimit: {\r\n limit: this.monthly.max,\r\n message: d('Validation/AboveMonthlyGlobalLimit', { AMOUNT: this.monthly.max() })\r\n }\r\n };\r\n }.bind(this),\r\n inputValue: function () {\r\n return {\r\n presence: { message: d('Validation/AmountIsEmpty') },\r\n minimumCardAmount: {\r\n card: this.fields.activeOption,\r\n cards: this.getCardsMapped,\r\n message: d('Validation/LowerThanCardMinimum')\r\n },\r\n minimumBonusCodeDepositAmount: {\r\n bonusCodeMinimumDeposit: this.fields.bonusCodeMinimumDeposit,\r\n message: d('Validation/LowerThanBonusCodeMinimum', { AMOUNT: this.fields.bonusCodeMinimumDeposit() })\r\n },\r\n maxAmount: { maxAmount: this.maxAmount, message: d('Validation/HigherThanAmountLimit', { AMOUNT: this.maxAmount() % 1 === 0 ? this.maxAmount() : this.maxAmount().toFixed(2) }) }\r\n };\r\n }.bind(this),\r\n password: function () {\r\n if (\r\n (this.mustVerifyNemID() && this.isLoggedInWithNemID()) ||\r\n (this.mustVerifyPassword() && !this.isLoggedInWithNemID())\r\n ) {\r\n return {\r\n isPasswordValid: true\r\n };\r\n }\r\n }.bind(this),\r\n };\r\n\r\n this.extendFields(this);\r\n\r\n this.toJSON = function () {\r\n return {\r\n id: this.id(),\r\n inputValue: this.fields.inputValue(),\r\n inputChoices: this.inputChoices(),\r\n waitTime: this.waitTime(),\r\n barredFromPayment: this.barredFromPayment(),\r\n activeOption: this.fields.activeOption(),\r\n cardTypes: this.cardTypes(),\r\n storedCards: this.storedCards(),\r\n hasStoredCards: this.hasStoredCards(),\r\n saveCard: this.saveCard(),\r\n bonusCode: this.fields.bonusCode(),\r\n bonusCodeValid: this.fields.bonusCodeValid(),\r\n orderId: this.orderId(),\r\n amount: this.amount(),\r\n maxAmount: this.maxAmount(),\r\n limit: this.limit(),\r\n maxLimit: this.maxLimit(),\r\n period: this.period(),\r\n fee: this.fee(),\r\n isLoggedInWithNemID: this.isLoggedInWithNemID(),\r\n isFromFaroe: this.isFromFaroe(),\r\n showInfoMessage: this.showInfoMessage(),\r\n mustVerifyNemID: this.mustVerifyNemID(),\r\n mustVerifyPassword: this.mustVerifyPassword(),\r\n amountPeriod: this.fields.amountPeriod,\r\n amountPeriodValue: this.fields.amountPeriodValue(),\r\n password: this.fields.password(),\r\n username: this.fields.username(),\r\n getCardsMapped: this.getCardsMapped(),\r\n inputValueCents: this.inputValueCents(),\r\n convertCentsToKroner: this.convertCentsToKroner()\r\n };\r\n }.bind(this);\r\n }));\r\n\r\n return Payment;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Data/PaymentApi',\r\n [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n ],\r\n function (Request) {\r\n\r\n var baseUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement';\r\n\r\n var getAmountLimits = function () {\r\n return Request({\r\n method: 'GET',\r\n url: baseUrl + '/GetAmountLimits',\r\n background: true\r\n });\r\n };\r\n\r\n var getAmountLimitPeriods = function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetAmountLimitPeriods',\r\n background: true\r\n });\r\n };\r\n\r\n var getDeposit = function (depositId) {\r\n return Request({\r\n method: 'GET',\r\n url: baseUrl + '/GetDeposit/' + depositId,\r\n background: true\r\n });\r\n };\r\n\r\n var verifyBonusCode = function (code, amount) {\r\n return Request({\r\n method: 'POST',\r\n url: baseUrl + '/CheckBonusCode',\r\n background: true,\r\n data: {\r\n Code: code,\r\n // Either use amount in cents or set amount high, as SG has bug where they will throw wrong error if amount is lower than required by bonus code..\r\n Amount: (amount ? amount * 100 : 100000000)\r\n }\r\n }).then(function (response) {\r\n if (response.MinimumDepositAmount != null) {\r\n response.MinimumDepositAmount = response.MinimumDepositAmount / 100;\r\n }\r\n if (response.RequiredDepositAmount != null) {\r\n response.RequiredDepositAmount = response.RequiredDepositAmount / 100;\r\n }\r\n return response;\r\n });\r\n };\r\n\r\n var claimBonusCode = function (code, amount) {\r\n return Request({\r\n method: 'POST',\r\n url: baseUrl + '/ClaimNoDepositBonusCode',\r\n background: true,\r\n data: {\r\n Code: code,\r\n // Either use amount in cents or set amount high, as SG has bug where they will throw wrong error if amount is lower than required by bonus code..\r\n Amount: (amount ? amount * 100 : 100000000)\r\n }\r\n }).then(function (response) {\r\n response.MinimumDepositAmount = response.MinimumDepositAmount / 100;\r\n return response;\r\n });\r\n };\r\n\r\n return {\r\n getAmountLimits: getAmountLimits,\r\n getAmountLimitPeriods: getAmountLimitPeriods,\r\n getDeposit: getDeposit,\r\n verifyBonusCode: verifyBonusCode,\r\n claimBonusCode: claimBonusCode\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Card/CardCCVModal', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n], function (m, Overlay, ModalDialog) {\r\n\r\n var CardCCVModal = function (d, pageBox) {\r\n return new Overlay(ModalDialog([\r\n m('h1', d('Step2/CardCCVModal/Title')),\r\n m('p', d('Step2/CardCCVModal/Text')),\r\n m('img', {\r\n class: 'payment-card-image',\r\n src: '/Components/DanskeSpil/Domain/PlayerAccountManagement/Graphics/Images/cardinfo_ccv.png'\r\n })\r\n ], { buttons: [{ text: d('Step2/CloseModal') }] }), pageBox);\r\n };\r\n\r\n return CardCCVModal;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Card/CardExpirationModal', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n], function (m, Overlay, ModalDialog) {\r\n\r\n var CardExpirationModal = function (d, pageBox) {\r\n return new Overlay(ModalDialog([\r\n m('h1', d('Step2/CardExpirationModal/Title')),\r\n m('p', d('Step2/CardExpirationModal/Text')),\r\n m('img', {\r\n class: 'payment-card-image',\r\n src: '/Components/DanskeSpil/Domain/PlayerAccountManagement/Graphics/Images/cardinfo_expiration.png'\r\n })\r\n ], { buttons: [{ text: d('Step2/CloseModal') }] }), pageBox);\r\n };\r\n\r\n return CardExpirationModal;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Card/CardNumberModal', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n], function (m, Overlay, ModalDialog) {\r\n\r\n var CardNumberModal = function (d, pageBox) {\r\n return new Overlay(ModalDialog([\r\n m('h1', d('Step2/CardNumberModal/Title')),\r\n m('p', d('Step2/CardNumberModal/Text')),\r\n m('img', {\r\n class: 'payment-card-image',\r\n src: '/Components/DanskeSpil/Domain/PlayerAccountManagement/Graphics/Images/cardinfo_cardnumber.png'\r\n })\r\n ], { buttons: [{ text: d('Step2/CloseModal') }] }), pageBox);\r\n };\r\n\r\n return CardNumberModal;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Retail/UpgradeAccountModal', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog'\r\n], function (m, Overlay, ModalDialog) {\r\n\r\n var UpgradeAccountModal = function (d, firstName, url) {\r\n return new Overlay(ModalDialog([\r\n m('h1', d('Step1/UpgradeAccountModal/Title', { FIRSTNAME: firstName })),\r\n m('p', m.trust(d('Step1/UpgradeAccountModal/Text')))\r\n ], {\r\n buttons: [{\r\n text: d('Step1/LimitsMissingModal/ButtonText'),\r\n callback: function () {\r\n window.location.href = url;\r\n }\r\n }], closable: false\r\n }));\r\n };\r\n\r\n return UpgradeAccountModal;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Limits/LimitsMissingModal', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog'\r\n], function (m, Overlay, Utils, ModalDialog) {\r\n\r\n var LimitsMissingModal = function (d, userInfo, url) {\r\n return new Overlay(ModalDialog([\r\n m('h1', d('Step1/LimitsMissingModal/Title', { FIRSTNAME: userInfo() && !(Object.keys(userInfo()).length === 0 && userInfo().constructor === Object) ? userInfo().customerInfo.firstName : '' })),\r\n m('p', m.trust(d('Step1/LimitsMissingModal/Text')))\r\n ], {\r\n readMore: {\r\n url: d('Step1/LimitsMissingModal/ReadMoreUrl'),\r\n title: d('Step1/LimitsMissingModal/ReadMoreTitle')\r\n },\r\n buttons: [{\r\n text: d('Step1/LimitsMissingModal/ButtonText'),\r\n callback: function () {\r\n window.location.href = Utils.getRedirectUrlWithDsApplicationIdAndReturnUrl(url);\r\n }\r\n }], closable: false\r\n }));\r\n };\r\n\r\n return LimitsMissingModal;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Transaction/TransactionDeclinedModal', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog'\r\n], function (m, Overlay, ModalDialog) {\r\n\r\n // Reepay Error Mapping https://help.reepay.com/en/knowledge/can-i-test-my-integration-to-reepay\r\n var errorCodeMapping = {\r\n 'error.http.200.acquirer_communication_error': 'AcquirerCommunicationError',\r\n 'error.http.200.acquirer_error': 'AcquirerError',\r\n 'error.http.200.acquirer_integration_error': 'AcquirerIntegrationError',\r\n 'error.http.200.acquirer_authentication_error': 'AcquirerAuthenticationError',\r\n 'error.http.200.acquirer_configuration_error': 'AcquirerConfigurationError',\r\n 'error.http.200.acquirer_rejected_error': 'AcquirerRejectedError',\r\n 'error.http.200.insufficient_funds': 'InsufficientFunds',\r\n 'error.http.200.settle_blocked': 'SettleBlocked',\r\n 'error.http.200.credit_card_expired': 'CreditCardExpired',\r\n 'error.http.200.declined_by_acquirer': 'DeclinedByAcquirer',\r\n 'error.http.200.credit_card_lost_or_stolen': 'CreditCardLostOrStolen',\r\n 'error.http.200.credit_card_suspected_fraud': 'CreditCardSuspectedFraud',\r\n 'error.http.200.authorization_expired': 'AuthorizationExpired',\r\n 'error.http.200.authorization_amount_exceeded': 'AuthorizationAmountExceeded',\r\n 'error.http.200.authorization_voided': 'AuthorizationVoided',\r\n 'error.http.200.sca_required': 'ScaRequired',\r\n };\r\n\r\n\r\n var TransactionDeclinedModal = function (d, errorCode) {\r\n var status = errorCodeMapping[errorCode];\r\n var dictionaryPath = 'Modal/TransactionDeclined/';\r\n var dictionary = d(dictionaryPath);\r\n if (dictionary[status]) { // Lookup if we have made a special mapping for the specific error. If not default texts is used.\r\n dictionaryPath = dictionaryPath + status + '/';\r\n }\r\n\r\n return new Overlay(ModalDialog([\r\n m('h1', d(dictionaryPath + 'Title')),\r\n m('p', m.trust(d(dictionaryPath + 'Text')))\r\n ], {\r\n buttons: [{\r\n text: d(dictionaryPath + 'ButtonText')\r\n }], closable: true\r\n }));\r\n };\r\n\r\n return TransactionDeclinedModal;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/BonusCodeImmediateDepositReceipt', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData'\r\n], function (m, Receipt, ReceiptData) {\r\n\r\n\r\n var BonusCodeImmediateDepositReceipt = function (controller) {\r\n\r\n var receiptData = new ReceiptData({\r\n title: controller.d('BonusCode/BonusCodeImmediateDepositReceipt/Title'),\r\n bodyText: controller.d('BonusCode/BonusCodeImmediateDepositReceipt/Abstract', { bonusCode: controller.model().fields.bonusCode() }),\r\n redirectButtonText: controller.d('BonusCode/BonusCodeImmediateDepositReceipt/ButtonText'),\r\n callback: controller.receiptCallback,\r\n uiTestId: 'pam-payment-receiptBonusCodeImmediateDeposit',\r\n noCountdown: true\r\n });\r\n\r\n return m('#bonusCodeImmediateDepositReceipt', [\r\n m(Receipt, {\r\n options: receiptData\r\n })\r\n ]);\r\n };\r\n\r\n return BonusCodeImmediateDepositReceipt;\r\n\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Helpers/BonusCodeFlow', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Data/PaymentApi',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, Overlay, Dictionary, ModalDialog, CustomInput, PaymentApi, Ensighten) {\r\n\r\n\r\n var getErrorCodeOptions = function (dictionary, errorCode, bonusCode) {\r\n\r\n var d = dictionary;\r\n\r\n switch (errorCode) {\r\n case 101:\r\n return {\r\n title: d('Errors/InvalidCode/Title', { bonusCode: bonusCode }),\r\n description: d('Errors/InvalidCode/Description', { bonusCode: bonusCode }),\r\n button: d('Errors/InvalidCode/CancelButton')\r\n };\r\n case 102:\r\n return {\r\n title: d('Errors/BonusOfferNotExist/Title', { bonusCode: bonusCode }),\r\n description: d('Errors/BonusOfferNotExist/Description', { bonusCode: bonusCode }),\r\n button: d('Errors/BonusOfferNotExist/CancelButton')\r\n };\r\n case 103:\r\n return {\r\n title: d('Errors/MaxNumberOfAwards/Title', { bonusCode: bonusCode }),\r\n description: d('Errors/MaxNumberOfAwards/Description', { bonusCode: bonusCode }),\r\n button: d('Errors/MaxNumberOfAwards/CancelButton')\r\n };\r\n case 105:\r\n return {\r\n title: d('Errors/BonusNotApplicable/Title', { bonusCode: bonusCode }),\r\n description: d('Errors/BonusNotApplicable/Description', { bonusCode: bonusCode }),\r\n button: d('Errors/BonusNotApplicable/CancelButton')\r\n };\r\n case 108:\r\n return {\r\n title: d('Errors/PlayerOptedOut/Title', { bonusCode: bonusCode }),\r\n description: d('Errors/PlayerOptedOut/Description', { bonusCode: bonusCode }),\r\n button: d('Errors/PlayerOptedOut/CancelButton')\r\n };\r\n case 109:\r\n return {\r\n title: d('Errors/NotValidUser/Title', { bonusCode: bonusCode }),\r\n description: d('Errors/NotValidUser/Description', { bonusCode: bonusCode }),\r\n button: d('Errors/NotValidUser/CancelButton')\r\n };\r\n default:\r\n return {\r\n title: d('Errors/General/Title', { bonusCode: bonusCode }),\r\n description: d('Errors/General/Description', { bonusCode: bonusCode }),\r\n button: d('Errors/General/CancelButton')\r\n };\r\n }\r\n\r\n };\r\n\r\n\r\n var BonusCodeFlow = function (model, route) {\r\n\r\n var d = Dictionary.get.bind({ prefix: 'PlayerTransactions/Payment/BonusCode/' });\r\n\r\n // API logic\r\n var verifyBonusCode = function (code, amount) {\r\n return PaymentApi.verifyBonusCode(code, amount).then(function (response) {\r\n\r\n if (response.IsValid && (!response.ErrorCode || response.ErrorCode == 0)) {\r\n\r\n model().fields.bonusCodeValid(true);\r\n\r\n if (response.MinimumDepositAmount != null) {\r\n model().fields.bonusCodeMinimumDeposit(response.MinimumDepositAmount);\r\n }\r\n\r\n return response;\r\n\r\n } else {\r\n\r\n var invalidBonusCode = model().fields.bonusCode();\r\n model().resetBonusCode();\r\n\r\n var errorTexts = getErrorCodeOptions(d, response.ErrorCode, invalidBonusCode);\r\n\r\n spawnBonusCodeErrorModal(errorTexts);\r\n\r\n return false;\r\n }\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var claimBonusCode = function (code, amount) {\r\n return PaymentApi.claimBonusCode(code, amount).then(function (response) {\r\n return response.IsValid;\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n\r\n // Generalized error modal for the different error scenarios\r\n\r\n var spawnBonusCodeErrorModal = function (options) {\r\n var overlay = new Overlay(ModalDialog([\r\n m('h1', options.title, [\r\n m('p', options.description)\r\n ]),\r\n ], {\r\n id: 'bonuscodeerrordialog',\r\n buttons: [\r\n {\r\n id: 'bonuscodeerrorcancelbutton',\r\n text: options.button,\r\n callback: function (close) {\r\n if (options.callback) {\r\n options.callback(close);\r\n } else {\r\n close();\r\n }\r\n }.bind(this)\r\n }\r\n ]\r\n }));\r\n overlay.show();\r\n return overlay;\r\n };\r\n\r\n var createBonusCodeImmediateModal = function () {\r\n var overlay = new Overlay(ModalDialog([\r\n m('h1', d('BonusCodeImmediateDepositModal/Title')),\r\n m('p', d('BonusCodeImmediateDepositModal/Description', { bonusCode: model().fields.bonusCode() })),\r\n ],\r\n {\r\n id: 'bonuscodeimmediatedepositdialog',\r\n iosPositionFix: true,\r\n buttons: [\r\n {\r\n id: 'bonuscodeimmediatedepositaddbutton',\r\n text: d('BonusCodeImmediateDepositModal/AcceptButton'),\r\n color: 'secondary',\r\n callback: function (close) {\r\n claimBonusCode(model().fields.bonusCode()).then(function (success) {\r\n if (success) {\r\n close();\r\n route('/bonusCodeImmediateDepositReceipt')();\r\n Ensighten.pushGaEvent('bonuscode', 'immediate_bonus_claimed', model().fields.bonusCode());\r\n }\r\n });\r\n Ensighten.pushGaEvent('bonuscode', 'immediate_bonus_attempt_claim', model().fields.bonusCode());\r\n },\r\n disabled: function () {\r\n return !model().fields.bonusCode();\r\n }.bind(this)\r\n },\r\n {\r\n id: 'bonuscodeimmediatedepositcancelbutton',\r\n text: d('BonusCodeImmediateDepositModal/CancelButton'),\r\n callback: function (close) {\r\n close();\r\n Ensighten.pushGaEvent('bonuscode', 'immediate_bonus_selected_payment', model().fields.bonusCode());\r\n }.bind(this)\r\n },\r\n ],\r\n subText: d('BonusCodeImmediateDepositModal/FinePrint')\r\n }));\r\n overlay.show();\r\n return overlay;\r\n };\r\n\r\n var submitLoading = m.prop(false);\r\n\r\n var createBonusCodeModal = function () {\r\n\r\n var overlay = new Overlay(ModalDialog([\r\n m('h1', d('BonusCodeModal/Title')),\r\n m('p', d('BonusCodeModal/Description')),\r\n m(CustomInput, {\r\n id: 'bonuscodeinput',\r\n model: model().fields.bonusCode,\r\n placeholder: d('BonusCodeModal/InputPlaceholder'),\r\n size: 'bigger',\r\n align: 'center'\r\n })\r\n ],\r\n {\r\n shouldBeComponent: true,\r\n iosPositionFix: true,\r\n id: 'bonuscodedialog',\r\n buttons: [\r\n {\r\n id: 'bonuscodecancelbutton',\r\n text: d('BonusCodeModal/CancelButton'),\r\n color: 'secondary',\r\n callback: function (close) {\r\n model().resetBonusCode();\r\n close();\r\n Ensighten.pushGaEvent('bonuscode', 'typing_cancelled', model().fields.bonusCode());\r\n }.bind(this)\r\n },\r\n {\r\n id: 'bonuscodeaddbutton',\r\n text: d('BonusCodeModal/AddButton'),\r\n loading: submitLoading(),\r\n disabled: function () {\r\n return !model().fields.bonusCode();\r\n }.bind(this),\r\n callback: function (close) {\r\n submitLoading(true);\r\n verifyBonusCode(model().fields.bonusCode(), model().fields.inputValue()).then(function (response) {\r\n if (response.ErrorCode == 0) {\r\n close().then(function () {\r\n if (response.MinimumDepositAmount == 0) {\r\n createBonusCodeImmediateModal();\r\n Ensighten.pushGaEvent('bonuscode', 'immediate_bonus_presented', model().fields.bonusCode());\r\n } else {\r\n Ensighten.pushGaEvent('bonuscode', 'typed_and_added', model().fields.bonusCode());\r\n }\r\n });\r\n } else {\r\n submitLoading(false);\r\n m.redraw();\r\n }\r\n });\r\n }.bind(this)\r\n }\r\n ],\r\n subText: d('BonusCodeModal/FinePrint')\r\n }));\r\n overlay.show();\r\n return overlay;\r\n };\r\n\r\n return {\r\n start: createBonusCodeModal\r\n };\r\n\r\n };\r\n\r\n return BonusCodeFlow;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Payment', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/QuickLink',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/InfoRibbon',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Payment',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Reepay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Data/PaymentApi',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Models/PaymentModel',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentStep1',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentStep2',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/PaymentStep3',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Card/CardNumberModal',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Card/CardExpirationModal',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Card/CardCCVModal',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Retail/UpgradeAccountModal',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Limits/LimitsMissingModal',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Transaction/TransactionDeclinedModal',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Helpers/BonusCodeFlow',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/BonusCodeImmediateDepositReceipt',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'Common/Framework/EventHandling/Scripts/CrossWindowEvents',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n],\r\nfunction (DSUtils, Component, ApiRequest, QuickLink, Storage,\r\n InfoRibbon, LoadDots, NavigationHeader, PaymentHelper, Reepay, Utils, Dictionary, PaymentUtils,\r\n PaymentApi, PaymentModel, Step1, Step2, Step3,\r\n CardNumberModal, CardExpirationModal, CardCCVModal, UpgradeAccountModal, LimitsMissingModal, TransactionDeclinedModal,\r\n BonusCodeFlow, BonusCodeImmediateDepositReceipt, LoginCache, LoginController, CrossWindowEvents, Ensighten) {\r\n 'use strict';\r\n\r\n var pageBox = document.querySelector('.page-box');\r\n var isWebview = document.querySelector('body').classList.contains('app-web-view');\r\n var QuickLinks = new QuickLink('/AccountOverview');\r\n var dsPrettyPrefix = DS.Config.PRETTYPREFIX || '';\r\n\r\n Component('player-payment', [QuickLinks, Dictionary], function (m, route, settings) {\r\n var root = {\r\n\r\n controller: function () {\r\n var d = Dictionary.get.bind({ prefix: 'PlayerTransactions/Payment/' });\r\n this.d = d;\r\n this.redirectLinks = QuickLinks.get;\r\n this.settings = settings;\r\n this.isQuickDeposit = m.prop(document.body.classList.contains('quick-deposit') && document.body.classList.contains('dlo'));\r\n\r\n this.routeMap = {\r\n '/': Step1,\r\n '/step1': Step1,\r\n '/step2': Step2,\r\n '/step3': Step3,\r\n '/step3/confirm': Step3,\r\n '/step3/cancel': Step3,\r\n '/bonusCodeImmediateDepositReceipt': BonusCodeImmediateDepositReceipt\r\n };\r\n\r\n this.loadingProps = {\r\n createPayment: m.prop(false),\r\n makePayment: m.prop(false),\r\n paymentDone: m.prop(false)\r\n };\r\n\r\n this.allowStoredCards = m.prop(true);\r\n this.syncApiCalls = m.prop([]);\r\n this.infoRibbon = m.prop(null);\r\n this.loading = m.prop(true);\r\n this.hasShownRibbon = m.prop(false);\r\n this.userInfo = m.prop(LoginCache.getUserObj());\r\n this.alwaysShowVisualLimit = m.prop(window.DS.Config.CONTEXT === 'DLI');\r\n this.maxPaymentCount = m.prop(settings.payment.maxPaymentCount);\r\n this.maxPaymentCountWarning = m.prop(settings.payment.maxPaymentCountWarning);\r\n this.maxPaymentCountFinalWarning = m.prop(settings.payment.maxPaymentCountFinalWarning);\r\n this.isUserAuthenticated = m.prop(settings.isUserAuthenticated || false);\r\n this.needsLimit = m.prop(false);\r\n this.manageStoredCards = m.prop(settings.manageStoredCards ? settings.manageStoredCards : dsPrettyPrefix + '/mine-oplysninger#/cards');\r\n this.transactionStatuses = m.prop(settings.transactionStatuses);\r\n this.transactionsCount = m.prop(null);\r\n this.amountLimitsExceeded = m.prop(false);\r\n this.transactionsCountExceeded = m.prop(false);\r\n this.canInput = () => !this.amountLimitsExceeded() && !this.transactionsCountExceeded();\r\n\r\n this.model = m.prop(PaymentModel.new({\r\n inputChoices: settings.inputChoices,\r\n barredFromPayment: settings.payment.barredFromPayment,\r\n cardTypes: settings.cardTypes,\r\n minimumAmount: settings.minimumAmount,\r\n storedCards: settings.storedCards,\r\n maxNumberOfCreditCards: settings.maxNumberOfCreditCards,\r\n maxAmount: settings.payment.maxAmount, // max amount that may be paid before limit is reached\r\n limit: settings.payment.limit,\r\n maxLimit: settings.payment.maxLimit,\r\n hasSetLimit: settings.payment.hasSetLimit,\r\n period: settings.payment.limitPeriod,\r\n isLoggedInWithNemID: settings.payment.isLoggedInWithNemID,\r\n isFromFaroe: settings.payment.isFromFaroe,\r\n mustVerifyNemID: settings.payment.mustVerifyNemID,\r\n mustVerifyPassword: settings.payment.mustVerifyPassword,\r\n checkResponsibleGaming: settings.payment.checkResponsibleGaming,\r\n showInfoMessage: settings.payment.showInfoMessage,\r\n amountPeriod: {\r\n value: m.prop(null),\r\n list: m.prop(null)\r\n },\r\n daily: {\r\n max: null\r\n },\r\n weekly: {\r\n max: null\r\n },\r\n monthly: {\r\n max: null\r\n }\r\n }));\r\n\r\n this.userCannotMakePayments = m.prop(this.model().barredFromPayment() || (this.model().maxAmount() - this.model().minimumAmount() < 0));\r\n\r\n this.isDLIContext = function () {\r\n return DS.Config.CONTEXT === 'DLI';\r\n };\r\n\r\n this.denyAccess = function () {\r\n history.replaceState('paymentDone', null, window.location.pathname + '#player-payment=/step1');\r\n this.loadingProps.paymentDone(false);\r\n history.go(0);\r\n }.bind(this);\r\n\r\n this.getAmountLimits = function () {\r\n return PaymentApi.getAmountLimits().then(function (response) {\r\n var limits = response.SavedUserDepositLimits?.limits;\r\n var limitFound = response.SavedUserDepositLimits?.PlayerDefinedDepositLimitFound;\r\n\r\n if (limits) {\r\n limits.forEach((limit) => {\r\n this.model()[limit.Type]?.max(limit.Value ? this.model().convertCentsToKroner(limit.Value) : null);\r\n });\r\n }\r\n\r\n if (!limits || !limitFound) {\r\n this.needsLimit(true);\r\n this.limitsMissingModal().show();\r\n }\r\n const barredFromPayments = limits?.some((limit) => {\r\n return limit?.RemainingValue === 0;\r\n });\r\n\r\n this.amountLimitsExceeded(barredFromPayments);\r\n\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.getDeposit = function () {\r\n // Reepay variation based on query param.\r\n var depositId = Utils.getParameter('invoice', window.location.hash);\r\n if (!depositId) { // NETS fallback - should be deleted once we are done with NETS\r\n if (settings.receiptInfo && settings.receiptInfo.orderId && settings.receiptInfo.orderId.length > 0) {\r\n depositId = settings.receiptInfo.orderId;\r\n }\r\n }\r\n if (depositId) {\r\n if (depositId.indexOf('_') > -1) {\r\n depositId = depositId.substring(depositId.indexOf('_') + 1);\r\n }\r\n var cardSaved = Utils.getParameter('payment_method', window.location.hash);\r\n return PaymentApi.getDeposit(depositId).then(function (response) {\r\n this.model().orderId(response.orderId || '-');\r\n this.model().externalId(response.externalId || '');\r\n this.model().amount(response.amount ? this.model().convertCentsToKroner(response.amount) : 0);\r\n this.model().fee(response.fee ? this.model().convertCentsToKroner(response.fee) : 0);\r\n this.model().savedCard(!!cardSaved);\r\n this.model().status(response.status);\r\n this.model().save();\r\n var paymentInfo = JSON.parse(Storage.get('pam-payment-purchase-complete'));\r\n\r\n if (paymentInfo) {\r\n if (this.model().savedCard()) paymentInfo[0] = paymentInfo[0] + '_gemt';\r\n Ensighten.pushGaEvent('deposit', paymentInfo[0], paymentInfo[1], response.orderId);\r\n }\r\n }.bind(this));\r\n }\r\n return Promise.resolve();\r\n }.bind(this);\r\n\r\n // Default API calls, load reepay, check deposit status.\r\n this.syncApiCalls([Reepay.load(), this.getDeposit()]);\r\n\r\n if (this.model().checkResponsibleGaming() && settings.isUserAuthenticated) {\r\n var calls = this.syncApiCalls();\r\n this.syncApiCalls(calls.concat([this.getAmountLimits()]));\r\n }\r\n\r\n m.sync(this.syncApiCalls()).then(function () {\r\n this.loading(false);\r\n\r\n if (this.userInfo() && this.userInfo().customerInfo && this.userInfo().customerInfo.isRetailAccount) {\r\n this.upgradeAccountModal().show();\r\n }\r\n if (Utils.getParameter('transactionDeclined')) {\r\n TransactionDeclinedModal(this.d).show();\r\n }\r\n var errorCode = Utils.getParameter('error', window.location.hash);\r\n if (errorCode) {\r\n TransactionDeclinedModal(this.d, errorCode).show();\r\n }\r\n\r\n m.redraw();\r\n }.bind(this));\r\n\r\n this.primaryChoices = m.prop(this.model().getCardsMapped());\r\n\r\n this.dropdownChoices = m.prop(this.model().getCardsMapped().filter(function (card) {\r\n return !card.hidden && !(isWebview && card.webviewDisabled);\r\n }));\r\n\r\n this.cardTypesDropdown = this.model().hasStoredCards() ? m.prop({\r\n label: d('Step1/OtherCard'),\r\n items: this.model().getCardTypesMapped()\r\n }) : m.prop([]);\r\n\r\n this.availableCards = this.model() && this.model().storedCards().filter(function (card) {\r\n return !card.cardExpirationDate.expired && !card.isApplePay;\r\n });\r\n\r\n this.model().fields.activeOption(this.availableCards.length && !this.model().fields.activeOption() ? this.availableCards[0].cardId : this.model().fields.activeOption('newCard'));\r\n\r\n this.formatCardNumber = PaymentUtils.formatCardNumber;\r\n this.formatExpirationDate = PaymentUtils.formatExpirationDate;\r\n\r\n this.formatInputValue = function (e) {\r\n if (e && e.target && e.target.value.length > 0) {\r\n var formatInputValue = Utils.formatInputValue(e.target.value);\r\n this.model().fields['inputValue'](formatInputValue);\r\n }\r\n }.bind(this);\r\n\r\n this.resetSelectedInputChoice = function () {\r\n var value = this.model().fields.inputValue();\r\n var selectedInputChoice = this.model().fields.selectedInputChoice();\r\n if (value !== selectedInputChoice) {\r\n this.model().fields.selectedInputChoice(null);\r\n }\r\n }.bind(this);\r\n\r\n this.currentSelection = function () {\r\n return this.model().getCardsMapped().concat(this.model().storedCards()).filter(function (item) {\r\n return item.value === this.model().fields.activeOption() || item.cardId === this.model().fields.activeOption();\r\n }.bind(this))[0];\r\n }.bind(this);\r\n\r\n this.cardNumberModal = m.prop(CardNumberModal(this.d, pageBox));\r\n\r\n this.cardExpirationModal = m.prop(CardExpirationModal(this.d, pageBox));\r\n\r\n this.cardCCVModal = m.prop(CardCCVModal(this.d, pageBox));\r\n\r\n this.upgradeAccountModal = m.prop(UpgradeAccountModal(this.d, this.userInfo() && this.userInfo().customerInfo ? this.userInfo().customerInfo.firstName : '', settings.footer.upgradeAccountUrl));\r\n\r\n this.limitsMissingModal = m.prop(LimitsMissingModal(this.d, this.userInfo, settings.footer.selectLimitUrl));\r\n\r\n this.initiateBonusCodeFlow = function () {\r\n var flow = new BonusCodeFlow(this.model, route);\r\n flow.start();\r\n Ensighten.pushHashAsVirtualPage('tilfoej_bonuskode', 'accountCashFlowPage');\r\n }.bind(this);\r\n\r\n this.getBonusCode = function () {\r\n function lookForBonus(params) {\r\n var bonusCode = params.match(/ds-bonus=(\\w+)/);\r\n return bonusCode && bonusCode[1];\r\n }\r\n\r\n var urlParams = window.location.search;\r\n var bonusCode = lookForBonus(urlParams);\r\n\r\n // If bonus code is not found, look outside the iframe\r\n if (!bonusCode) {\r\n try {\r\n // If embedded in an iframe, we dont always have access, so we must to try/catch\r\n urlParams = window.parent.location.search;\r\n bonusCode = lookForBonus(urlParams);\r\n } catch (e) { }\r\n }\r\n\r\n if (bonusCode) {\r\n this.model().fields.bonusCode(bonusCode);\r\n this.initiateBonusCodeFlow();\r\n }\r\n }.bind(this);\r\n this.getBonusCode();\r\n\r\n this.getTransactionStatus = function () {\r\n var transactionStatus = this.transactionStatuses().map(function (transactionStatus) {\r\n return {\r\n state: transactionStatus.Id,\r\n restart: transactionStatus.RestartDepositFlow,\r\n label: transactionStatus.Name\r\n };\r\n }).find(function (transactionStatus) {\r\n return transactionStatus.state === this.model().status();\r\n }.bind(this));\r\n\r\n return transactionStatus ? transactionStatus : {\r\n state: 'PENDING',\r\n restart: false\r\n };\r\n }.bind(this);\r\n\r\n this.receiptCallback = function (restartFlow) {\r\n if (restartFlow) {\r\n // Recieved a state that indicates we need to restart the flow.\r\n route('/step1')();\r\n return;\r\n }\r\n var callbackUrl = window.location.origin;\r\n\r\n var noCurrentQueryParams = window.location.search == '';\r\n\r\n var queryParameters = Storage.get('pam-payment-query-parameters');\r\n var receiptFallback = this.redirectLinks('ReceiptFallback').Url;\r\n var currentBrandUrl = DSUtils.cookie(DS.Config.CONTEXT + 'currentBrandURL');\r\n\r\n /*\r\n Only restore query parameters if we don't have any in the URL but we do have some stored from earlier\r\n */\r\n if (noCurrentQueryParams && queryParameters) {\r\n var currentUrl = window.location.href;\r\n var parts = currentUrl.split('#');\r\n var url = parts[0];\r\n var hash = parts[1];\r\n\r\n var newUrl = url + '?' + queryParameters + '#' + hash;\r\n\r\n // Replace state, as we otherwise get a reload and we really only need this for\r\n history.replaceState(null, document.title, newUrl);\r\n }\r\n\r\n var returnUrl = Utils.getParameter('returnUrl');\r\n\r\n if (returnUrl) {\r\n callbackUrl = returnUrl;\r\n Storage.set('pam-payment-query-parameters', null);\r\n } else if (currentBrandUrl) {\r\n callbackUrl = currentBrandUrl;\r\n } else if (receiptFallback) {\r\n callbackUrl = receiptFallback;\r\n }\r\n\r\n window.location.href = decodeURIComponent(callbackUrl);\r\n }.bind(this);\r\n\r\n /**\r\n * Function to determine if we should show an InfoRibbon based on the set limit, maxAmount and period\r\n * Calling this function will populate controller.infoRibbon with the configuration for the ribbon to show\r\n */\r\n this.showInfoRibbon = function () {\r\n // Do not run this logic again if it has already been run\r\n if (this.hasShownRibbon()) {\r\n return;\r\n }\r\n\r\n var info = d('InfoMessage');\r\n var showingRibbon = false;\r\n\r\n if (this.model().limit() !== Infinity && this.model().maxAmount() !== Infinity && this.model().maxAmount() <= this.model().limit() * 0.2 && this.model().maxAmount() > 0 && (this.model().maxAmount() - this.model().minimumAmount() >= 0)) {\r\n // Moved visualization to PaymentStep1. Keeping tracking here for consistency\r\n Ensighten.pushGaEvent('Segment', 'payment:visuallimits', 'taet_paa_graense_potentielt_beloeb:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().maxAmount()))) + '_graense:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))) + '_per_' + this.model().period());\r\n Ensighten.pushGaEvent('beloebsgraense', 'closeToLimit', 'potentielt_beloeb:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().maxAmount()))) + '_graense:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))) + '_per_' + this.model().period());\r\n }\r\n if ((this.model().maxAmount() > 0 && (this.model().maxAmount() - this.model().minimumAmount()) < 0)) {\r\n this.infoRibbon({\r\n id: 'reachedLimitCardMinimum',\r\n text: d('Errors/ReachedLimitCardMinimum', {\r\n limit: Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))),\r\n period: this.model().period(),\r\n remaining: Utils.formatCurrency(Math.abs(parseFloat(this.model().maxAmount())))\r\n }),\r\n options: { type: 'info', hasIcon: false }\r\n });\r\n showingRibbon = true;\r\n Ensighten.pushGaEvent('Segment', 'payment:visuallimits', 'overskredet_kort_minimum_beloeb:_0_forskel:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().maxAmount()))) + '_graense:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))) + '_per_' + this.model().period());\r\n Ensighten.pushGaEvent('beloebsgraense', 'reachedLimitCardMinimum', 'beloeb:_0_forskel:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().maxAmount()))) + '_graense:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))) + '_per_' + this.model().period());\r\n Ensighten.pushGaEvent('beloebsgraense', 'funnel', 'limit_step_1');\r\n }\r\n if (this.model().maxAmount() <= 0) {\r\n let mostRestrictiveLimit = this.model().limit();\r\n if (this.model().maxLimit()) {\r\n mostRestrictiveLimit = Math.min(this.model().limit(), this.model().maxLimit());\r\n }\r\n this.infoRibbon({\r\n id: 'reachedLimit',\r\n text: d('Errors/ReachedLimit', {\r\n limit: Utils.formatCurrency(mostRestrictiveLimit),\r\n period: this.model().period()\r\n }),\r\n options: { type: 'info', hasIcon: false }\r\n });\r\n showingRibbon = true;\r\n Ensighten.pushGaEvent('Segment', 'payment:visuallimits', 'overskredet_graense:_0_forskel:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().maxAmount()))) + '_graense:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))) + '_per_' + this.model().period());\r\n Ensighten.pushGaEvent('beloebsgraense', 'reachedLimit', 'beloeb:_0_forskel:_0_graense:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))) + '_per_' + this.model().period());\r\n Ensighten.pushGaEvent('beloebsgraense', 'funnel', 'limit_step_1');\r\n }\r\n if (this.model().barredFromPayment() && !this.alwaysShowVisualLimit()) {\r\n this.infoRibbon({ id: 'barredFromPayment', text: d('Errors/BarredFromPayment'), options: { type: 'error', icon: 'round_big_alert_yellow' } });\r\n showingRibbon = true;\r\n }\r\n if (this.currentSelection()?.cardBarred) {\r\n this.infoRibbon({ id: 'cardBarred', text: d('Errors/CardBarred'), options: { type: 'error', icon: 'round_big_alert_yellow' } });\r\n showingRibbon = true;\r\n }\r\n if (this.model().showInfoMessage() && !showingRibbon && info && typeof info == 'string' && info.trim() != '') {\r\n this.infoRibbon({ id: 'generalError', text: info, options: { type: 'info', icon: 'round_big_alert_yellow', hasIcon: this.settings.showExclamationMarkIcon } });\r\n }\r\n\r\n this.hasShownRibbon(true);\r\n\r\n }.bind(this);\r\n\r\n this.paymentMethodTracking = function () {\r\n let paymentType = 'goToReepay';\r\n const activeOption = this.model().fields.activeOption()?.toLowerCase();\r\n\r\n switch (activeOption) {\r\n case 'mobilepay':\r\n paymentType = 'goToMobilepay';\r\n break;\r\n case 'dkw':\r\n paymentType = 'goToDankortApp';\r\n break;\r\n case 'applepay':\r\n paymentType = 'goToApplePay';\r\n break;\r\n case 'googlepay':\r\n paymentType = 'goToGooglePay';\r\n break;\r\n }\r\n\r\n // If using stored card overload paymentType\r\n if (this.currentSelection() && this.currentSelection().cardId) {\r\n paymentType = 'goToGemtkort';\r\n }\r\n\r\n Ensighten.pushGaEventOnPageRedirect('deposit', paymentType, 'fortsaet');\r\n }.bind(this);\r\n\r\n this.purchaseComplete = function () {\r\n var paymentType = this.currentSelection() ? this.currentSelection().cardName.replace(' ', '_') : 'betalingskort';\r\n if (this.model().fields.activeOption() === 'mobilepay') { // mobilepay from CardTypeTypeId (sitecore)\r\n paymentType = 'mobile_pay';\r\n } else if (this.model().fields.activeOption() === 'DKW') { // DKW from CardTypeTypeId (sitecore)\r\n paymentType = 'dankort_app';\r\n }\r\n\r\n if (this.model().fields.selectedInputChoice()) {\r\n // Track that a predefined payment amount have been selected.\r\n // If predefined values are 1, 2, 3 and the selected value is 2 the tracked format will be:\r\n // 1 KR, 2 KR, 3 KR, 2 KR\r\n // Where the first 3 values are the available values and the last value is the one selected.\r\n var predefinedPaymentAmount = this.model().fields.inputValue();\r\n return [paymentType + '_predefined', predefinedPaymentAmount];\r\n } else {\r\n return [paymentType + '_not_predefined', this.model().fields.inputValue()];\r\n }\r\n }.bind(this);\r\n\r\n this.visualizeLimit = () => {\r\n if (this.alwaysShowVisualLimit()) {\r\n return true;\r\n }\r\n\r\n if ((this.maxPaymentCount() - this.transactionsCount()) < this.maxPaymentCountWarning()) {\r\n return true;\r\n }\r\n\r\n return this.isUserAuthenticated() && this.model().limit() !== Infinity && this.model().maxAmount() !== Infinity && this.model().maxAmount() <= this.model().limit() * 0.2;\r\n };\r\n\r\n this.gotoConfirm = function () {\r\n var stepFields = ['activeOption', 'inputValue', 'password', 'selectedInputChoice'];\r\n this.loadingProps.createPayment(true);\r\n m.redraw();\r\n\r\n this.model().validate(stepFields, true).then(function () {\r\n if (this.model().getStepState(stepFields).state) {\r\n\r\n // If specified we want game verticals to be able to return them back to their own flow\r\n var queryParameters = window.location.search.slice(1);\r\n\r\n if (queryParameters) {\r\n Storage.set('pam-payment-query-parameters', queryParameters, 60 * 10);\r\n }\r\n\r\n var data = {\r\n amount: this.model().inputValueCents(this.model().fields.inputValue()),\r\n };\r\n\r\n if (this.currentSelection()) {\r\n data.cardType = this.currentSelection().cardType;\r\n if (this.currentSelection().cardId) { // Only ad cardId if we know it.\r\n data.cardId = this.currentSelection().cardId;\r\n }\r\n\r\n if (this.currentSelection().provider) {\r\n data.provider = this.currentSelection().provider;\r\n }\r\n }\r\n\r\n if (this.model().fields.password()) {\r\n data.password = this.model().fields.password();\r\n }\r\n\r\n if (this.model().fields.bonusCode()) {\r\n data.bonusCode = this.model().fields.bonusCode();\r\n }\r\n Storage.set('pam-payment-purchase-complete', JSON.stringify(this.purchaseComplete()), 60 * 20); // stores this for 20 minutes in localStorage\r\n this.paymentMethodTracking();\r\n\r\n PaymentHelper.capture(data.amount, PaymentHelper.types.CARD_PAYMENT, data).catch(function () {\r\n this.loadingProps.createPayment(false);\r\n }.bind(this));\r\n } else {\r\n this.loadingProps.createPayment(false);\r\n\r\n // Check if excess max amount\r\n if (!isNaN(parseInt(this.model().fields.inputValue(), 10)) && parseInt(this.model().fields.inputValue(), 10) > this.model().maxAmount()) {\r\n Ensighten.pushGaEvent('beloebsgraense', 'reachedLimitOnInput', 'beloeb:_' + this.model().fields.inputValue() + '_forskel:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().maxAmount()))) + '_graense:_' + Utils.formatCurrency(Math.abs(parseFloat(this.model().limit()))) + '_per_' + this.model().period());\r\n Ensighten.pushGaEvent('beloebsgraense', 'funnel', 'onInput_step_1');\r\n }\r\n\r\n m.redraw();\r\n Utils.scrollToError();\r\n }\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.gotoReceipt = function () {\r\n if (this.loadingProps.makePayment()) {\r\n return;\r\n }\r\n\r\n var paymentInfo = JSON.parse(Storage.get('pam-payment-purchase-complete'));\r\n if (paymentInfo) Ensighten.pushGaEvent('deposit', paymentInfo[0], paymentInfo[1]);\r\n var data = {\r\n amount: this.model().inputValueCents(this.model().fields.inputValue()),\r\n capture: true,\r\n orderId: this.model().orderId(),\r\n externalId: this.model().externalId(),\r\n cardType: this.currentSelection().cardType,\r\n cardId: this.currentSelection().cardId,\r\n password: this.model().fields.password()\r\n };\r\n\r\n if (this.model().fields.password()) {\r\n data.password = this.model().fields.password();\r\n }\r\n\r\n if (this.model().fields.bonusCode()) {\r\n data.bonusCode = this.model().fields.bonusCode();\r\n }\r\n\r\n this.loadingProps.makePayment(true);\r\n m.redraw(true);\r\n\r\n PaymentHelper.capture(data.amount, PaymentHelper.types.CARD_PAYMENT, data).then(function (response) {\r\n CrossWindowEvents.fire('ds.event.balanceUpdated', {});\r\n CrossWindowEvents.fire('ds.event.paymentCompleted');\r\n\r\n this.model().orderId(response.PaymentData.orderId || '-');\r\n this.model().externalId(response.PaymentData.externalId || '');\r\n this.model().amount(response.PaymentData.amount ? this.model().convertCentsToKroner(response.PaymentData.amount) : 0);\r\n this.model().fee(response.PaymentData.fee ? this.model().convertCentsToKroner(response.PaymentData.fee) : 0);\r\n this.model().save();\r\n\r\n this.infoRibbon(null);\r\n\r\n this.loadingProps.makePayment(false);\r\n m.redraw();\r\n this.loadingProps.paymentDone(true);\r\n route('/step3/confirm')();\r\n }.bind(this)).catch(function () {\r\n // Dibs failed with an error, reset payment\r\n this.loadingProps.makePayment(false);\r\n m.redraw();\r\n route('/step1')();\r\n }.bind(this));\r\n\r\n }.bind(this);\r\n\r\n // INITIALIZATION:\r\n\r\n // Used if game vertical wants to prefill an amount\r\n var prefillAmount = Utils.getParameter('instantAmount');\r\n\r\n if (prefillAmount && prefillAmount.includes(',')) {\r\n prefillAmount = prefillAmount.replace(',', '.');\r\n }\r\n\r\n var formattedAmount = Math.ceil(prefillAmount);\r\n\r\n if (!isNaN(formattedAmount) && formattedAmount > 0) {\r\n var minimumAmount = this.model().getMinimumDepositAmount();\r\n // Make sure the amount is higher than the mini minimum amount set\r\n var setAmount = formattedAmount > minimumAmount ? formattedAmount : minimumAmount;\r\n\r\n this.model().fields.inputValue(setAmount);\r\n }\r\n\r\n var addNewCard = Utils.getParameter('addNewCard');\r\n if (addNewCard) {\r\n this.currentSelection(null);\r\n this.model().fields.activeOption('newCard');\r\n }\r\n\r\n if (route() === '/step3/confirm') {\r\n if (settings.receiptInfo && settings.receiptInfo.orderId && settings.receiptInfo.orderId.length > 0) {\r\n var receiptInfo = settings.receiptInfo;\r\n var paymentInfo = JSON.parse(Storage.get('pam-payment-purchase-complete'));\r\n\r\n this.model().orderId(receiptInfo.orderId || '-');\r\n this.model().amount(receiptInfo.amount || 0);\r\n this.model().fee(receiptInfo.fee || 0);\r\n this.model().fields.activeOption(receiptInfo.payType || null);\r\n this.model().savedCard(receiptInfo.savedCard || false);\r\n this.model().save();\r\n if (paymentInfo) Ensighten.pushGaEvent('deposit', paymentInfo[0], paymentInfo[1]);\r\n }\r\n\r\n this.infoRibbon(null);\r\n\r\n // Fire cross window event to header with updated balance + hooks for payment completed in Game Verticals\r\n // Do repeat this every second second 4 times every 2.5s (10 seconds) since the balance update might take some time and is not updated on first attempt on the event update\r\n var i = 0;\r\n var timer = null;\r\n var oldBalance = LoginCache.isLoggedIn() ? LoginCache.getUserObj().customerInfo.balance : null;\r\n\r\n var updateBalance = function () {\r\n CrossWindowEvents.fire('ds.event.paymentCompleted');\r\n\r\n var newBalance = LoginCache.isLoggedIn() ? LoginCache.getUserObj().customerInfo.balance : null;\r\n if (++i > 4 || (oldBalance != null && newBalance != null && newBalance > oldBalance)) {\r\n // Stop timer after 4 tries or if balance increase is detected\r\n clearInterval(timer);\r\n timer = null;\r\n return;\r\n }\r\n\r\n CrossWindowEvents.fire('ds.event.balanceUpdated', {}); // Poll new balance\r\n };\r\n\r\n timer = setInterval(updateBalance, 2500); // Set to 2.5s, because cache is 2sec (and can vary a tiny bit)\r\n Storage.set('pam-payment-storecard', null);\r\n }\r\n\r\n if (!settings.isUserAuthenticated && !window.sitecoreEnv) {\r\n LoginController.openLogin();\r\n }\r\n\r\n const fetchLimitCount = () => {\r\n const amountSpent = Utils.formatCurrency(Math.abs(parseFloat(this.model().limit() - this.model().maxAmount())));\r\n const limit = Utils.formatCurrency(Math.abs(parseFloat(this.model().limit())));\r\n Ensighten.pushGaEvent('Segment', 'payment:visuallimits', 'shown');\r\n Ensighten.pushGaEvent('Segment', 'payment:visuallimits', 'indbetalt_' + amountSpent + '_graense:_' + limit + '_per_' + this.model().period());\r\n\r\n ApiRequest({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/realitycheck/v1/checkPaymentNotification/1'\r\n }).then((response) => {\r\n const data = response.data;\r\n const count = data.depositCountResult === 0 ? 0 : (data.depositCountResult - 1); // Backend appends +1, so we need -1 to have actual count\r\n const limitCount = this.maxPaymentCount();\r\n const remainingCount = limitCount - count;\r\n this.transactionsCount(count);\r\n\r\n Ensighten.pushGaEvent('Segment', 'payment:visuallimits', 'antal_indbetalinger_tilbage_' + remainingCount + '_fra_limit_' + limitCount);\r\n\r\n if (remainingCount <= 0) {\r\n this.model().barredFromPayment(true);\r\n this.transactionsCountExceeded(true);\r\n }\r\n }).then(function () {\r\n m.redraw(true);\r\n });\r\n };\r\n\r\n fetchLimitCount();\r\n },\r\n\r\n view: function (controller) {\r\n\r\n var d = controller.d;\r\n if (controller.loading()) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n\r\n if ((route() === '/step1' || route() === '/') && controller.isUserAuthenticated()) {\r\n // Determine if and what infoRibbon to show\r\n controller.showInfoRibbon();\r\n }\r\n\r\n return m('div', {\r\n class: [\r\n 'payment',\r\n 'payment-' + (route() === '/' ? 'step1' : route().replace('/', ''))\r\n ].join(' '),\r\n 'data-uitest-id': 'pam-payment' + (route() !== '/' ? route().split('/').join('-') : '-step1')\r\n }, [\r\n route() === '/step2' ?\r\n (controller.loadingProps.paymentDone()) ? controller.denyAccess() :\r\n NavigationHeader(route('/'), false, d('Step2/SubPageBackButton')) : null,\r\n route() === '/step1' || route() === '/' ?\r\n (controller.infoRibbon() ? InfoRibbon(m.trust(controller.infoRibbon().text), controller.infoRibbon().options) : '')\r\n : null,\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n controller.routeMap[route()](controller, route)\r\n ])\r\n ]),\r\n (route() === '/step1' || route() === '/') ?\r\n m('.footer', [\r\n m('.links', [\r\n m('a', {\r\n class: 'pam-page__link',\r\n id: 'link-how-to-transfer',\r\n href: controller.settings.footer.transferUrl,\r\n title: d('Step1/HowToTransfer')\r\n }, d('Step1/HowToTransfer')),\r\n m('a', {\r\n class: 'pam-page__link',\r\n id: 'link-conditions-for-saved-cards',\r\n href: controller.settings.footer.conditionsUrl,\r\n title: controller.d('Step1/ConditionsForSavedCards')\r\n }, controller.d('Step1/ConditionsForSavedCards')),\r\n m('p', controller.settings.footer.bottomText)\r\n ])\r\n ]) : null\r\n ]);\r\n }\r\n };\r\n\r\n route('/', root);\r\n route('/step1', root);\r\n route('/step2', root);\r\n route('/step3/confirm', root);\r\n route('/step3/cancel', root);\r\n route('/bonusCodeImmediateDepositReceipt', root);\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Templates/FileUploadItem', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/CustomUpload',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg'\r\n], function (m, Dictionary, Utils, CustomUpload, Svg) {\r\n\r\n var FileUploadItem = function (controller, purpose, index) {\r\n\r\n var d = Dictionary.get.bind({ prefix: 'PlayerRegister/FileUpload/' });\r\n var file = purpose.files().length > 0 ? purpose.files()[0] : null;\r\n var purposes = controller.model.fields.UploadFilePurpose();\r\n\r\n var prettifyName = function (name) {\r\n return name.substring(0, name.lastIndexOf('.'));\r\n };\r\n\r\n var prettifySize = function (size) {\r\n return (size / 1024 / 1024).toFixed(2) + 'MB';\r\n };\r\n\r\n return m('.file-upload__wrapper', [\r\n !purpose.identifier || !controller.purposeSelected(purpose.identifier) ? m('select.file-upload__dropdown', {\r\n onchange: function (event) {\r\n controller.selectPurpose(event.target.value, true, index, true);\r\n event.target.selectedIndex = 0;\r\n }\r\n }, [\r\n m('option', { selected: 'selected', disabled: 'disabled' }, d('SelectPurpose')),\r\n purposes.filter(function (item) {\r\n return item.VisibleInDropdown;\r\n }).map(function (item) {\r\n return m('option', {\r\n value: item.Identifier\r\n }, item.Purpose);\r\n })\r\n ]) : m('.file-upload__item', purpose.hasError() ? { class: 'file-upload__item--has-error' } : '', [\r\n m('.file-upload__details', [\r\n m('.file-upload__icon', Svg('unknown_file', { class: 'file-upload__icon--svg' })),\r\n m('.file-upload__content', [\r\n m('.file-upload__header', [\r\n m('span', purpose.header),\r\n purpose.required ? '' : m('span.file-upload__header--optional', d('Optional'))\r\n ]),\r\n m('.file-upload__description', purpose.description),\r\n !file ? m('.file-upload__cta', {\r\n onclick: function () {\r\n controller.selectFiles(purpose.identifier, index);\r\n }\r\n }, d('CtaButton')) : null,\r\n CustomUpload(purpose.files, {\r\n id: purpose.identifier + '-' + index,\r\n name: purpose.identifier,\r\n appendFiles: false,\r\n hideSelect: true,\r\n hideSave: true,\r\n uploadState: controller.uploadState(),\r\n onchange: function () { controller.filesSelected(index); },\r\n triggerFileSelection: function () { controller.selectFiles(purpose.identifier, index); }\r\n }),\r\n purpose.allowClose ? Svg('close', {\r\n class: 'sprite-symbol file-upload__close',\r\n onclick: function () {\r\n controller.error = '';\r\n controller.removePurpose(index);\r\n }\r\n }) : null\r\n ]),\r\n ]),\r\n file ? m('.file-upload__file', [\r\n m('.file-upload__file-preview', [\r\n typeof file.src !== 'undefined' ? m('img', {\r\n src: file.src,\r\n alt: file.name\r\n }) : Svg(file.svg, { class: 'sprite-symbol file-item__svg' })\r\n ]),\r\n m('.file-upload__file-details', [\r\n m('p.file-upload__file-name', { title: file.name }, [\r\n m('span.file-upload__file-name--truncated', prettifyName(file.name))\r\n ]),\r\n Svg('trash', {\r\n class: 'sprite-symbol file-upload__delete',\r\n onclick: function (e) {\r\n e.preventDefault();\r\n purpose.files([]);\r\n purpose.hasError(false);\r\n controller.clearFiles(purpose.identifier, index);\r\n }\r\n }),\r\n m('.file-upload__file-info', [\r\n m('.file-upload__file-type', [\r\n m('.file-upload__file-type-label', d('Filetype')),\r\n m('.file-upload__file-type-value', Utils.fileExtension(file.name))\r\n ]),\r\n m('.file-upload__file-size', [\r\n m('.file-upload__file-size-label', d('Size')),\r\n m('.file-upload__file-size-value', prettifySize(file.size))\r\n ])\r\n ])\r\n ])\r\n ]) : null\r\n ])\r\n ]);\r\n };\r\n\r\n return FileUploadItem;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Limit', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n],\r\nfunction (m, Utils, CustomInput, StepGuide, Button, Ensighten) {\r\n var root = {\r\n\r\n controller: function (rootctrl) {\r\n\r\n var self = this;\r\n\r\n this.model = rootctrl.model();\r\n this.dictionary = rootctrl.dictionary;\r\n\r\n this.submitLoading = m.prop(false);\r\n\r\n this.stepMax = rootctrl.stepMax;\r\n\r\n this.stepFields = [\r\n 'Amount',\r\n 'AmountPeriod'\r\n ];\r\n\r\n self.tryContinue = function () {\r\n self.submitLoading(true);\r\n self.model.validate(self.stepFields, true).then(function () {\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n if (self.model.getStepState(self.stepFields).state) {\r\n\r\n Ensighten.pushGaEvent(\r\n 'signup',\r\n 'signup_step2b_din_indbetalingsgrænse',\r\n window.dataLayer?.[0]?.page?.brand || '',\r\n );\r\n\r\n const amount = self.model.fields.Amount();\r\n const amountPeriod = self.model.fields.AmountPeriod()?.toLowerCase();\r\n\r\n if (amount && amountPeriod) {\r\n Ensighten.pushGaEvent(\r\n 'account_creation',\r\n 'period_amount',\r\n `${amountPeriod}_${amount}`,\r\n );\r\n }\r\n\r\n // If allow no limits has been enabled skip directly to step3.\r\n m.route('/step3');\r\n }\r\n });\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n\r\n if (e.keyCode == 13) {\r\n self.tryContinue();\r\n }\r\n };\r\n\r\n self.formatInputValue = function (e) {\r\n var input = e.target;\r\n // Only allow digits and discard all other values. SG does not support decimal deposit limits.\r\n input.value = input.value.replace(/\\D+/g, '');\r\n // Strip leading zeros from input field\r\n input.value = input.value.match(/\\d+/g) ? String(parseInt(input.value, 10)) : input.value;\r\n self.model.fields.Amount(input.value);\r\n };\r\n\r\n const getAgeGroup = (age) => {\r\n if (age <= 19) return '18-19';\r\n if (age <= 24) return '20-24';\r\n return '25-99';\r\n };\r\n\r\n self.selectLimit = function (period) {\r\n const ageGroup = getAgeGroup(Utils.calculateAge(self.model.fields.CprNumber()));\r\n self.model.fields.CustomerAgeGroup(ageGroup);\r\n self.model.fields.AmountPeriod(period);\r\n var stepFields = ['AmountPeriod'];\r\n if (self.model.fields.Amount()) {\r\n stepFields.push('Amount');\r\n }\r\n self.model.validate(stepFields, true);\r\n };\r\n\r\n self.stylePeriod = function (period) {\r\n var classes = '';\r\n\r\n if (period === 'Daily' && self.model.fields.AmountPeriod() === 'Daily') {\r\n classes += 'amount-limit__period--selected';\r\n }\r\n if (period === 'Weekly' && self.model.fields.AmountPeriod() === 'Weekly') {\r\n classes += 'amount-limit__period--selected';\r\n }\r\n if (period === 'Monthly' && self.model.fields.AmountPeriod() === 'Monthly') {\r\n classes += 'amount-limit__period--selected';\r\n }\r\n if (!self.model.getStepState('AmountPeriod').state) {\r\n classes = 'amount-limit__period--error';\r\n }\r\n\r\n return classes;\r\n };\r\n\r\n self.formatAmountPeriodLabel = function () {\r\n if (self.model.fields.AmountPeriod() === 'Daily') {\r\n return self.dictionary('Step3/DailyLimit');\r\n }\r\n if (self.model.fields.AmountPeriod() === 'Weekly') {\r\n return self.dictionary('Step3/WeeklyLimit');\r\n }\r\n if (self.model.fields.AmountPeriod() === 'Monthly') {\r\n return self.dictionary('Step3/MonthlyLimit');\r\n }\r\n };\r\n Ensighten.pushHashAsVirtualPage('/step2b');\r\n },\r\n\r\n view: function (ctrl) {\r\n\r\n var d = ctrl.dictionary;\r\n var model = ctrl.model;\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-register-limit'\r\n }, [\r\n m('div', { class: 'pam-page__content pam-register-limit' }, [\r\n StepGuide(2, ctrl.stepMax, model.stepRoutes()),\r\n m('.pam-page__inner-content', [\r\n m('.amount-limit', [\r\n m('h1', d('Step3/HeadlineLimits')),\r\n d('Step3/TooltipLimits').length > 0 ? m('.amount-limit__tooltip', { tooltip: d('Step3/TooltipLimits') }, '?') : null,\r\n m('p.abstract', d('Step3/DescriptionLimits')),\r\n m('h5', d('Step3/HeadlinePeriod')),\r\n m('.amount-limit__periods', [\r\n m('.amount-limit__period', {\r\n class: ctrl.stylePeriod('Daily'),\r\n onclick: function () { ctrl.selectLimit('Daily'); }\r\n }, d('Step3/Daily')),\r\n m('.amount-limit__period', {\r\n class: ctrl.stylePeriod('Weekly'),\r\n onclick: function () { ctrl.selectLimit('Weekly'); }\r\n }, d('Step3/Weekly')),\r\n m('.amount-limit__period', {\r\n class: ctrl.stylePeriod('Monthly'),\r\n onclick: function () { ctrl.selectLimit('Monthly'); }\r\n }, d('Step3/Monthly'))\r\n ]),\r\n !model.getStepState('AmountPeriod').state ? m('.amount-limit__period-error', 'Du mangler at vælge en grænse') : '',\r\n ctrl.model.fields.AmountPeriod() ?\r\n m('.amount-limit__period-amount', [\r\n m('.amount-limit__period-header', d('Step3/HeadlineAmountPeriod')),\r\n m('.amount-limit__period-suffix', ctrl.formatAmountPeriodLabel()),\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/AmountLimit'),\r\n model: ctrl.model.fields.Amount,\r\n onkeyup: function (e) {\r\n ctrl.formatInputValue(e);\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n rightpad: true,\r\n class: 'amount-limit__input',\r\n align: 'right',\r\n postfix: 'kr.',\r\n id: 'amountLimit',\r\n uiTestId: 'pam-register-amountLimitInput',\r\n maxlength: 10,\r\n })\r\n ]) : ''\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n uiTestId: 'pam-register-tryContinue',\r\n text: { default: d('ButtonLabels/Next') },\r\n loading: ctrl.submitLoading(),\r\n onclick: ctrl.tryContinue,\r\n onkeydown: ctrl.checkEnter\r\n })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Upload', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Templates/FileUploadItem',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Data/PlayerRegisterDocumentsApi',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/InfoRibbon',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader'\r\n], function (m, Utils, Button, FileUploadItem, Api, InfoRibbon, StepGuide, Ensighten, NavigationHeader) {\r\n\r\n return {\r\n controller: function (rootctrl) {\r\n var self = this;\r\n var allowed = ['png', 'jpeg', 'jpg', 'gif', 'tif', 'tiff', 'bmp', 'pdf', 'odt'];\r\n self.model = rootctrl.model();\r\n self.d = rootctrl.dictionary;\r\n self.error = '';\r\n self.stepMax = rootctrl.stepMax;\r\n self.isRegisterFlow = rootctrl.stepMax > 0;\r\n self.previews = m.prop([]);\r\n self.uploadState = m.prop(0); // 0: select file, 1: file selected, 2: uploading, 3: finished\r\n self.uploadProgress = m.prop(false);\r\n self.uploadCheck = m.prop(false);\r\n self.hasPending = m.prop(null);\r\n self.selectedPurposes = m.prop([]);\r\n self.dropdownVisible = m.prop(false);\r\n self.requires = m.prop([]);\r\n self.paramsLoaded = m.prop(false);\r\n self.headline = m.prop(self.d('Upload/Headline'));\r\n self.description = m.prop(self.d('Upload/Description'));\r\n self.proofRequest = m.prop(false);\r\n\r\n if (self.isRegisterFlow) {\r\n Ensighten.pushGaEvent('account_creation', 'upload_documents');\r\n }\r\n\r\n self.shouldSelectBeDisabled = function () {\r\n var files = self.getFiles();\r\n var hasTooManyFiles = files.length >= self.model.uploadDocumentSettings().MaxNumberOfFiles;\r\n return hasTooManyFiles;\r\n };\r\n\r\n self.shouldUploadBeDisabled = function () {\r\n var files = self.getFiles();\r\n var anyFilesAboveLimit = files.some(function (file) {\r\n return file.size > self.model.uploadDocumentSettings().MaxFileSize;\r\n });\r\n var hasTooManyFiles = files.length > self.model.uploadDocumentSettings().MaxNumberOfFiles;\r\n return anyFilesAboveLimit || hasTooManyFiles;\r\n };\r\n\r\n self.getFiles = function () {\r\n return self.selectedPurposes().filter(function (purpose) {\r\n return purpose.files().length > 0;\r\n }).map(function (purpose) {\r\n return self.extendFile(purpose.files()[0], purpose.identifier);\r\n });\r\n };\r\n\r\n self.extendFile = function (file, identifier) {\r\n var purpose = self.model.fields.UploadFilePurpose().filter(function (purpose) {\r\n return purpose.Identifier === identifier;\r\n })[0];\r\n file.purpose = purpose.Purpose;\r\n file.group = purpose.Type;\r\n\r\n return file;\r\n };\r\n\r\n self.filesSelected = function (index) {\r\n self.uploadProgress(true);\r\n var purpose = self.selectedPurposes()[index];\r\n var files = purpose.files();\r\n\r\n // Load image previews\r\n if (files.length > 0) {\r\n for (var j = 0; j < files.length; j++) {\r\n\r\n var file = files[j];\r\n\r\n if (file.type.split('/')[0] === 'image') {\r\n var url = URL.createObjectURL(file);\r\n file.src = url;\r\n } else {\r\n switch (file.name.split('.')[file.name.split('.').length - 1]) {\r\n case 'odt':\r\n file.svg = 'odt';\r\n break;\r\n case 'pdf':\r\n file.svg = 'pdf';\r\n break;\r\n default:\r\n file.svg = 'unknown_file';\r\n }\r\n }\r\n self.uploadProgress(false);\r\n m.redraw();\r\n }\r\n }\r\n\r\n if (self.validatePurpose(purpose)) {\r\n self.uploadState(1);\r\n } else {\r\n self.displayErrors();\r\n }\r\n };\r\n\r\n self.validatePurpose = function (purpose) {\r\n if (!purpose.required) {\r\n purpose.hasError(false);\r\n return true;\r\n }\r\n var allFiles = self.selectedPurposes().filter(function (purpose) {\r\n return purpose.files().length > 0;\r\n });\r\n var file = purpose.files().length > 0 ? purpose.files()[0] : null;\r\n if (file && allFiles.length <= self.model.uploadDocumentSettings().MaxNumberOfFiles) {\r\n purpose.error(null);\r\n // The file is empty\r\n if (file.size === 0) {\r\n purpose.error(self.d('Validation/MinFileSizeExceeded', {\r\n FAILEDFILE: file.name\r\n }));\r\n purpose.hasError(true);\r\n return false;\r\n }\r\n if (file.size > self.model.uploadDocumentSettings().MaxFileSize) {\r\n purpose.error(self.d('Validation/MaxFileSizeExceeded', {\r\n MAXFILESIZE: (self.model.uploadDocumentSettings().MaxFileSize / 1024 / 1024).toFixed(2),\r\n FAILEDFILE: file.name\r\n }));\r\n purpose.hasError(true);\r\n return false;\r\n }\r\n\r\n var fileTypeFound = allowed.some(function (fileType) {\r\n return fileType === Utils.fileExtension(file.name);\r\n });\r\n if (!fileTypeFound) {\r\n purpose.error(self.d('Validation/DisallowedFileTypes'));\r\n purpose.hasError(true);\r\n return false;\r\n }\r\n } else {\r\n if (!file) {\r\n purpose.error(self.d('Validation/NoFiles'));\r\n purpose.hasError(true);\r\n } else {\r\n purpose.error(self.d('Validation/MaxNumberOfFilesExceeded', {\r\n MAXFILES: self.model.uploadDocumentSettings().MaxNumberOfFiles,\r\n USERFILES: allFiles.length\r\n }));\r\n }\r\n return false;\r\n }\r\n purpose.hasError(false);\r\n return true;\r\n };\r\n\r\n self.getDescription = function () {\r\n return self.d(self.model.fields.CprNumber() && self.model.fields.CprNumber().length != 11 ? 'Step4b/Description' : 'Step4b/danishCprDescription');\r\n };\r\n\r\n self.displayErrors = function () {\r\n self.error = '';\r\n self.selectedPurposes().forEach(function (purpose) {\r\n if (purpose.hasError()) {\r\n self.error = purpose.error();\r\n }\r\n });\r\n };\r\n\r\n self.selectFiles = function (identifier, index) {\r\n self.displayErrors();\r\n var id = identifier + '-' + index;\r\n document.getElementById(id).click();\r\n };\r\n\r\n self.clearFiles = function (identifier, index) {\r\n self.displayErrors();\r\n var id = identifier + '-' + index;\r\n document.getElementById(id).value = null;\r\n };\r\n\r\n self.getPurposeByIdentifier = function (identifier) {\r\n var matchingPurpose;\r\n self.model.fields.UploadFilePurpose().forEach(function (uploadFilePurpose) {\r\n if (uploadFilePurpose.Identifier === identifier) {\r\n matchingPurpose = uploadFilePurpose;\r\n }\r\n });\r\n return matchingPurpose;\r\n };\r\n\r\n self.purposeSelected = function (identifier) {\r\n var selected = false;\r\n self.selectedPurposes().forEach(function (purpose) {\r\n if (purpose.identifier === identifier) {\r\n selected = true;\r\n }\r\n });\r\n return selected;\r\n };\r\n\r\n self.selectPurpose = function (identifier, closeable, index, required) {\r\n var fileUploadPurpose = self.getPurposeByIdentifier(identifier);\r\n if (index && index >= 0) {\r\n var selectedPurpose = self.selectedPurposes()[index];\r\n selectedPurpose.identifier = identifier;\r\n selectedPurpose.header = fileUploadPurpose ? fileUploadPurpose.Header : self.d('Upload/DefaultItemHeader');\r\n selectedPurpose.description = fileUploadPurpose ? fileUploadPurpose.Description : self.d('Upload/DefaultItemDescription');\r\n self.dropdownVisible(false);\r\n } else {\r\n self.selectedPurposes().push({\r\n identifier: identifier,\r\n files: m.prop([]),\r\n allowClose: closeable,\r\n required: required,\r\n hasError: m.prop(false),\r\n error: m.prop(null),\r\n header: fileUploadPurpose ? fileUploadPurpose.Header : self.d('Upload/DefaultItemHeader'),\r\n description: fileUploadPurpose ? fileUploadPurpose.Description : self.d('Upload/DefaultItemDescription')\r\n });\r\n self.displayErrors();\r\n }\r\n };\r\n\r\n self.removePurpose = function (index) {\r\n self.selectedPurposes().splice(index, 1);\r\n };\r\n\r\n self.loadPending = function () {\r\n Api.hasDocuments().then(function (response) {\r\n self.hasPending(response.HasDocuments);\r\n m.redraw();\r\n });\r\n };\r\n\r\n self.saveFiles = function () {\r\n if (self.selectedPurposes().length <= 0) {\r\n self.error = self.d('Validation/NoPurposeSelected');\r\n return;\r\n }\r\n var files = self.getFiles();\r\n if (files.length <= 0) {\r\n self.error = self.d('Validation/NoFiles');\r\n return;\r\n }\r\n\r\n var required = self.selectedPurposes().filter(function (purpose) {\r\n return purpose.required;\r\n });\r\n\r\n if (files.length < required.length) {\r\n self.error = self.d('Validation/MissingFile');\r\n return;\r\n }\r\n\r\n var foundInvalidPurpose = false;\r\n\r\n self.selectedPurposes().forEach(function (purpose) {\r\n if (!self.validatePurpose(purpose)) {\r\n self.error = purpose.error();\r\n foundInvalidPurpose = true;\r\n }\r\n });\r\n\r\n if (!foundInvalidPurpose) {\r\n self.error = '';\r\n self.uploadState(2);\r\n\r\n // Track purposes selected\r\n self.selectedPurposes().forEach(function (purpose) {\r\n Ensighten.pushGaEvent('upload_dokumentation', 'PAM', purpose.identifier);\r\n });\r\n\r\n var data = new FormData();\r\n for (var l = 0; l < files.length; l++) {\r\n data.append(files[l].group, files[l], files[l].purpose + '_' + files[l].name);\r\n }\r\n\r\n data.append('identificationNumber', self.model.fields.CprNumber() || '');\r\n\r\n Api.uploadDocument(data).then(function () {\r\n self.uploadCheck(true);\r\n self.uploadState(3);\r\n rootctrl.receiptData.assign({\r\n title: self.d('Step4b/Receipt/Headline'),\r\n bodyHtml: self.d('Step4b/Receipt/BodyHtml'),\r\n redirectButtonText: self.d('Step4b/Receipt/ButtonText'),\r\n callback: function () {\r\n Utils.getValidAppRedirectUrl();\r\n },\r\n uiTestId: 'pam-register-upload-receipt'\r\n });\r\n if (window.dataLayer) {\r\n window.dataLayer.push({\r\n event: 'gaEvent',\r\n eventSyntax: {\r\n action: 'signup_step4b_upload-dokumentation-for-din-tilmelding',\r\n category: 'signup',\r\n label: window.dataLayer[0]?.page?.brand || ''\r\n }\r\n });\r\n }\r\n m.route('/receipt');\r\n }, function (response) {\r\n self.error = response.errors[0].Detail;\r\n self.uploadCheck(false);\r\n m.redraw();\r\n });\r\n }\r\n };\r\n\r\n self.extractParams = function () {\r\n var requiresParams = m.route.param('requires') || Utils.getParameter('requires');\r\n if (requiresParams) {\r\n decodeURIComponent(requiresParams).split(',').forEach(function (require) {\r\n self.requires().push(require);\r\n if (self.d('Upload/Require/' + require + 'Headline').length > 0) {\r\n self.headline(self.d('Upload/Require/' + require + 'Headline'));\r\n }\r\n if (self.d('Upload/Require/' + require + 'Description').length > 0) {\r\n self.description(self.d('Upload/Require/' + require + 'Description'));\r\n }\r\n if (require.indexOf('Proof') > -1) {\r\n self.proofRequest(true);\r\n }\r\n });\r\n }\r\n };\r\n\r\n self.populatePurposes = function () {\r\n // Only run this once\r\n if (self.model.fields.UploadFilePurpose().length > 0 && !self.paramsLoaded()) {\r\n self.paramsLoaded(true);\r\n self.requires().forEach(function (require) {\r\n self.model.fields.UploadFilePurpose().some(function (purpose) {\r\n if (require === purpose.Identifier) {\r\n self.selectPurpose(require, false, null, purpose.MandatoryIfPresent);\r\n }\r\n });\r\n });\r\n }\r\n };\r\n\r\n if (!self.isRegisterFlow) { // If user is registering no documents has been uploaded anyways.\r\n self.loadPending();\r\n }\r\n\r\n self.extractParams();\r\n if (self.requires().length > 0) {\r\n Ensighten.pushHashAsVirtualPage('upload_dokument/query_enriched');\r\n } else if (window.location.hash.indexOf('step4') > 0) {\r\n Ensighten.pushHashAsVirtualPage('step4/upload_dokument');\r\n } else {\r\n Ensighten.pushHashAsVirtualPage('upload_dokument');\r\n }\r\n },\r\n\r\n view: function (controller) {\r\n controller.populatePurposes();\r\n\r\n var d = controller.d;\r\n\r\n return m('.upload-document-container', [\r\n document.querySelector('body').classList.contains('app-web-view') ?\r\n NavigationHeader(DS.Config.PRETTYPREFIX + '/mine-oplysninger/', false) : '',\r\n controller.uploadProgress() ? m('.upload-document__spinner', [\r\n m('.upload-document__spinner-elements', [\r\n m('.upload-document__spinner-ring', [\r\n // Using CSS animation, need 4 empty childs to create spinner effect.\r\n m('div'),\r\n m('div'),\r\n m('div'),\r\n m('div')\r\n ]),\r\n m('.upload-document__spinner-text', d('Upload/WaitTextSpinner'))\r\n ])\r\n ]) : null,\r\n m('.pam-page__content', {\r\n 'data-uitest-id': controller.isRegisterFlow ? 'pam-register-upload' : 'pam-register-step4b'\r\n },\r\n [\r\n (controller.isRegisterFlow ? StepGuide(4, controller.stepMax) : null),\r\n m('.pam-page__inner-content', {\r\n class: controller.isRegisterFlow ? 'step4b' : 'upload'\r\n }, [\r\n controller.hasPending() ? InfoRibbon(d('Upload/PendingNotice'), {\r\n class: 'info-ribbon--pending-upload',\r\n type: 'info'\r\n }) : null,\r\n m('h1', controller.isRegisterFlow ? d('Step4b/Headline') : controller.headline()),\r\n m('p.abstract', controller.isRegisterFlow ? m.trust(controller.getDescription()) : m.trust(controller.description())),\r\n controller.model.uploadDocumentSettings().IsUploadEnabled ? m('.file-upload__list', [\r\n controller.selectedPurposes().length > 0 ?\r\n controller.selectedPurposes().map(function (purpose, index) {\r\n return new FileUploadItem(controller, purpose, index);\r\n }) : null,\r\n controller.model.fields.UploadFilePurpose().length > 0 ?\r\n controller.selectedPurposes().length === 0 ? new FileUploadItem(controller, {\r\n identifier: null,\r\n files: m.prop([]),\r\n hasError: m.prop(false),\r\n error: m.prop(null)\r\n }) :\r\n !controller.dropdownVisible() ? m('.file-upload__add-more', {\r\n onclick: function () {\r\n controller.selectPurpose(null, true, null, true);\r\n controller.dropdownVisible(true);\r\n }\r\n }, d('Upload/AddMore')) : null\r\n : null\r\n ]) : null,\r\n controller.error ? m('p.custom-input__error', controller.error) : null,\r\n controller.model.uploadDocumentSettings().IsUploadEnabled ? [\r\n m('.file-upload__buttons', [\r\n controller.proofRequest() ? m(Button, {\r\n uiTestId: 'pam-upload-skip',\r\n size: 'large',\r\n onclick: Utils.getValidAppRedirectUrl,\r\n classes: { default: 'pam__button pam__button--grey pam__button--proof' },\r\n text: {\r\n default: d('ButtonLabels/SkipSaveFiles')\r\n }\r\n }) : null,\r\n m(Button, {\r\n uiTestId: 'pam-register-confirm',\r\n loading: controller.uploadState() > 1,\r\n size: 'large',\r\n onclick: controller.saveFiles,\r\n classes: { default: 'pam__button pam__button--save' },\r\n text: {\r\n default: d('ButtonLabels/SaveFiles')\r\n }\r\n })\r\n ])\r\n ] : [\r\n m('p.abstract', controller.model.uploadDocumentSettings().NoUploadText),\r\n m(Button, {\r\n uiTestId: 'pam-register-confirm',\r\n size: 'large',\r\n href: controller.model.uploadDocumentSettings().NoUploadLink,\r\n text: {\r\n default: controller.model.uploadDocumentSettings().NoUploadButtonText\r\n }\r\n })\r\n ],\r\n m('p.abstract', { class: 'additional-information__abstract' }, m.trust(d('Upload/AdditionalInformation', { MAXFILESIZE: (controller.model.uploadDocumentSettings().MaxFileSize / 1024 / 1024).toFixed(2) }))),\r\n ])\r\n ]),\r\n ]);\r\n }\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/PostLogin', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Domain/Authentification/Scripts/SitecoreAuth'\r\n], function (m, Storage, Utils, Ensighten, SitecoreAuth) {\r\n\r\n var root = {\r\n controller: function (rootctrl) {\r\n var self = this;\r\n self.d = rootctrl.dictionary;\r\n self.model = rootctrl.model();\r\n rootctrl.stepMax = 4;\r\n var loginMethod = Utils.getParameter('loginMethod');\r\n var dsPrettyPrefix = DS.Config.PRETTYPREFIX || '';\r\n var lockedParams = m.route.param('locked') || Utils.getParameter('locked');\r\n\r\n self.isExistingPlayer = function (loginResponse) {\r\n var storedUserName = Storage.get('username');\r\n\r\n Storage.set('username', null);\r\n\r\n // When username typed in registration is not the same as customerInfo.userName from login, we already have an account\r\n return ((loginResponse.customerInfo.userName && loginResponse.customerInfo.userName.toLowerCase() !== storedUserName.toLowerCase()) || typeof loginResponse.customerInfo.prevLoginTime === 'string');\r\n };\r\n\r\n\r\n SitecoreAuth.getUserObj(function (response) {\r\n if (!response || !response.customerInfo) {\r\n // TODO: Maybe do something more meaningful here than redirect to step1\r\n window.location.href = window.location.origin + '/' + window.location.pathname;\r\n }\r\n var firstName = response.customerInfo.firstName || '';\r\n var userName = response.customerInfo.userName || '';\r\n\r\n Ensighten.pushGaEvent('signUp_verificeringsmetode', 'PAM', loginMethod);\r\n Ensighten.pushGaEvent('signup_step4_log_ind_med_NemID', 'signup', window.dataLayer[0]?.page?.brand || '');\r\n\r\n if (response.customerInfo.status == 'Pending') {\r\n m.route('/step4b', { requires: response.customerInfo.requiredParams });\r\n } else {\r\n var returnUrl;\r\n\r\n if (Storage.get('Subscription-verticalType')) {\r\n Ensighten.pushVirtualPage('success', dsPrettyPrefix + '/success', window.dataLayer[0]?.page?.type || '');\r\n returnUrl = Utils.getParameter('signupSuccessUrl');\r\n window.location.href = decodeURIComponent(returnUrl) + '&' + 'flowtype=registration';\r\n } else if (Utils.getParameter('teamsleaguesflow')) {\r\n Ensighten.pushVirtualPage('success', dsPrettyPrefix + '/success', window.dataLayer[0]?.page?.type || '');\r\n returnUrl = Utils.getParameter('returnUrl');\r\n window.location.href = decodeURIComponent(returnUrl);\r\n } else {\r\n if (self.isExistingPlayer(response) && lockedParams !== 'True') {\r\n if (response.customerInfo.isRetailAccount && self.model.upgradeLink()) {\r\n Ensighten.pushVirtualPage('retail_account_forsoegt_at_oprette', dsPrettyPrefix + '/retail_account_forsoegt_at_oprette', window.dataLayer[0]?.page?.type || '');\r\n window.location = self.model.upgradeLink();\r\n }\r\n\r\n rootctrl.receiptData.assign({\r\n icon: 'round_big_alert',\r\n uiTestId: 'pam-register-step4-warningReceipt',\r\n bodyHtml: self.d('ReceiptAlreadyRegistered/BodyHtml', { USERNAME: userName })\r\n });\r\n Ensighten.pushVirtualPage('du_har_allerede_en_konto', dsPrettyPrefix + '/du_har_allerede_en_konto', window.dataLayer[0]?.page?.type || '');\r\n } else {\r\n Ensighten.pushVirtualPage('success', dsPrettyPrefix + '/success', window.dataLayer[0]?.page?.type || '');\r\n\r\n returnUrl = Utils.getParameter('signupSuccessUrl') || Utils.getParameter('returnUrl') || self.d('Step4/ReturnUrl');\r\n\r\n if (Utils.checkEncodeURI(returnUrl)) {\r\n returnUrl = decodeURIComponent(returnUrl);\r\n }\r\n\r\n if (Utils.isAppUrl(returnUrl)) {\r\n returnUrl = Utils.appendParameter('returnUrl', encodeURIComponent(returnUrl), DS.Config.DSLOGINPREFIX + '/redirect/return-with-assertion');\r\n }\r\n\r\n rootctrl.receiptData.assign({\r\n title: self.d('Step4/Receipt/Headline', { USERNAME: firstName }),\r\n bodyHtml: self.d('Step4/Receipt/BodyHtml'),\r\n redirectButtonText: self.d('Step4/Receipt/PlayButtonText'),\r\n redirectButtonText2: self.d('Step4/Receipt/PaymentButtonText'),\r\n callback2: function () {\r\n Ensighten.pushGaEventOnPageRedirect('account_creation', 'cta_click', self.d('Step4/Receipt/PaymentButtonText'));\r\n var paymentLink = self.model.paymentLink();\r\n var redirectUrl = Utils.appendParameter('returnUrl', encodeURIComponent(returnUrl), paymentLink);\r\n\r\n window.location.href = redirectUrl;\r\n },\r\n callback: function () {\r\n Ensighten.pushGaEventOnPageRedirect('account_creation', 'cta_click', self.d('Step4/Receipt/PlayButtonText'));\r\n window.location.href = returnUrl;\r\n },\r\n uiTestId: 'pam-register-step4-receipt'\r\n });\r\n\r\n }\r\n m.route('/receipt');\r\n }\r\n }\r\n });\r\n },\r\n\r\n view: function (controller) {\r\n return m('div', {\r\n 'data-uitest-id': 'pam-register-postlogin'\r\n }, m('.pam-page__content',\r\n m('.pam-page__inner-content',\r\n m('h1', controller.d('PostLogin/Headline'))\r\n )\r\n ));\r\n }\r\n };\r\n\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Step3', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Dropdown',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, Storage, Utils, CustomInput, Dropdown, StepGuide, Request, Button, Ensighten) {\r\n var root = {\r\n\r\n controller: function (rootctrl) {\r\n\r\n window.history.forward();\r\n\r\n var self = this;\r\n\r\n this.model = rootctrl.model();\r\n this.dictionary = rootctrl.dictionary;\r\n\r\n this.submitLoading = m.prop(false);\r\n\r\n this.stepMax = rootctrl.stepMax;\r\n\r\n this.stepFields = [\r\n 'SecurityAnswer',\r\n 'SecurityQuestion',\r\n ];\r\n\r\n this.createAccount = function () {\r\n self.model.validate(self.stepFields, true).then(function () {\r\n if (self.model.getStepState(self.stepFields).state) {\r\n Storage.set('username', self.model.fields.Username());\r\n\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/CreatePlayer',\r\n data: self.model.toPlainObject()\r\n }).then(function (response) {\r\n if (response.OperationSuccess) {\r\n if (self.checkDanishCpr()) {\r\n\r\n var signupSuccessUrl = Utils.getParameter('signupsuccessurl');\r\n var sdkVersion = Utils.getParameter('sdkVersion');\r\n\r\n var callbackUrl = window.location.origin + window.location.pathname;\r\n if (signupSuccessUrl) {\r\n callbackUrl = Utils.appendParameter('signupSuccessUrl', signupSuccessUrl, callbackUrl);\r\n }\r\n callbackUrl = Utils.appendParameter('locked', response.Locked, callbackUrl);\r\n callbackUrl = callbackUrl + '#/postlogin';\r\n\r\n window.location.href = self.model.dsloginLink() + '?variant=Signup&encryptedData=' + response.EncryptedData + '&loginSuccessUrl=' + encodeURIComponent(callbackUrl) + (sdkVersion ? '&sdkVersion=' + sdkVersion : '');\r\n\r\n } else {\r\n if (response.ExistingFaeroe === 'True') {\r\n self.existingFaeroe();\r\n } else {\r\n m.route('/step4b', { requires: 'NameFaroe,Address' });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n self.existingFaeroe = function () {\r\n rootctrl.receiptData.assign({\r\n title: self.dictionary('Step3/FaeroeExists/Header'),\r\n bodyHtml: self.dictionary('Step3/FaeroeExists/Body'),\r\n uiTestId: 'pam-register-step3-faeroe-create-failed'\r\n });\r\n m.route('/receipt');\r\n\r\n };\r\n\r\n self.tryContinue = function () {\r\n self.submitLoading(true);\r\n self.model.validate(self.stepFields, true).then(function () {\r\n if (self.model.getStepState(self.stepFields).state) {\r\n if (window.dataLayer) {\r\n window.dataLayer.push({\r\n event: 'gaEvent',\r\n eventSyntax: {\r\n action: 'signup_step3_din_sikkerhedsspørgsmål',\r\n category: 'signup',\r\n label: window.dataLayer[0]?.page?.brand || ''\r\n }\r\n });\r\n }\r\n self.createAccount();\r\n } else {\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n }\r\n });\r\n };\r\n\r\n self.checkDanishCpr = function () {\r\n return self.model.fields.CprNumber() ? self.model.fields.CprNumber().replace(/\\D/g, '').length == 10 : false;\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n\r\n if (e.keyCode == 13) {\r\n self.tryContinue();\r\n }\r\n };\r\n Ensighten.pushHashAsVirtualPage('/step3');\r\n },\r\n\r\n view: function (ctrl) {\r\n\r\n var d = ctrl.dictionary;\r\n var model = ctrl.model;\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-register-step3'\r\n }, [\r\n m('div', { class: 'pam-page__content pam-register-step3' }, [\r\n StepGuide(3, ctrl.stepMax, model.stepRoutes()),\r\n m('.pam-page__inner-content', [\r\n m('h1', d('Step3/Headline')),\r\n m('p', d('Step3/Description')),\r\n m(Dropdown, {\r\n id: 'secquestion',\r\n model: model.fields.SecurityQuestion,\r\n defaultItem: { value: '', text: d('FieldLabels/SecurityQuestion') },\r\n placeholder: true,\r\n uiTestId: 'pam-register-securityQuestionDropdown',\r\n }),\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/SecurityAnswer'),\r\n model: ctrl.model.fields['SecurityAnswer'],\r\n placeholder: d('FieldLabels/SecurityAnswer'),\r\n onkeydown: ctrl.checkEnter,\r\n id: 'securityAnswer',\r\n uiTestId: 'pam-register-securityAnswerInput',\r\n }),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n uiTestId: 'pam-register-tryContinue',\r\n text: { default: d('ButtonLabels/CreateProfile') },\r\n loading: ctrl.submitLoading(),\r\n onclick: ctrl.tryContinue,\r\n onkeydown: ctrl.checkEnter\r\n })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Step2', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Dropdown',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/CustomCheckbox',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n],\r\nfunction (m, ApiRequest, Overlay, Utils, Dropdown, ModalDialog, Svg, CustomCheckbox, CustomInput, StepGuide, Button, Ensighten) {\r\n\r\n var root = {\r\n controller: function (rootctrl) {\r\n\r\n var self = this;\r\n var dawaApiBase = rootctrl.dawaBaseUrl || 'https://api.dataforsyningen.dk/';\r\n\r\n self.model = rootctrl.model();\r\n self.stepMax = rootctrl.stepMax;\r\n self.dictionary = rootctrl.dictionary;\r\n self.stepFields = [\r\n 'CprNumber',\r\n 'FirstName',\r\n 'LastName',\r\n 'HouseNumber',\r\n 'Road',\r\n 'PostNumber',\r\n 'City',\r\n 'Country',\r\n 'Phonenumber',\r\n 'AccecptGameScan',\r\n 'AcceptConditions'\r\n ];\r\n self.dawa = {\r\n road: m.prop([]),\r\n };\r\n self.isDLIContext = m.prop(DS.Config.CONTEXT === 'DLI');\r\n\r\n self.submitLoading = m.prop(false);\r\n\r\n self.splitAddress = function (address) {\r\n var match;\r\n self.dawa.road().forEach(function (roadEntry) {\r\n if (roadEntry.tekst === address) {\r\n match = roadEntry.adresse;\r\n }\r\n });\r\n\r\n if (match) {\r\n self.model.fields.Road(match.vejnavn);\r\n self.model.fields.HouseNumber(match.husnr);\r\n self.model.fields.PostNumber(match.postnr);\r\n self.model.fields.City(match.postnrnavn);\r\n }\r\n m.redraw(true);\r\n };\r\n\r\n self.splitDawaZipAndCity = function (el) {\r\n if (self.model.fields.Country.value() !== 'DK') {\r\n return false;\r\n }\r\n var ptext = el.value;\r\n if (ptext && ptext.length > 0) {\r\n var reg = /(\\d{4}) (.*)/g;\r\n var match = reg.exec(ptext);\r\n if (!match) {\r\n return;\r\n }\r\n self.model.fields.PostNumber(match[1].trim());\r\n self.model.fields.City(match[2].trim());\r\n m.redraw(true);\r\n }\r\n };\r\n\r\n self.getDawaRoad = function (el) {\r\n if (self.model.fields.Country.value() !== 'DK') {\r\n return false;\r\n }\r\n ApiRequest({\r\n url: dawaApiBase + 'adresser/autocomplete?q=' + el.value + '&fuzzy='\r\n }).then(function (response) {\r\n var roads = response.map(function (road) {\r\n return road;\r\n });\r\n self.dawa.road(roads);\r\n m.redraw();\r\n });\r\n };\r\n\r\n self.formatCpr = function () {\r\n var formattedCpr = self.model.fields['CprNumber']().replace(/(\\d{6})(\\d{3,})/, '$1-$2');\r\n self.model.fields['CprNumber'](formattedCpr);\r\n };\r\n\r\n self.tryContinue = function () {\r\n if (self.model.fields.Country.value() === 'DK') {\r\n // If zip code is not ONLY 4 digits, something is wrong (don't submit the form for now).\r\n // We will try to split zip and city in case of fx. a slow dom issue.\r\n var element = document.querySelector('#zip input');\r\n if (!RegExp(/^\\d{4}$/).test(element.value)) {\r\n self.splitDawaZipAndCity(element);\r\n }\r\n }\r\n\r\n self.submitLoading(true);\r\n self.model.validate(self.stepFields, true).then(function () {\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n if (self.model.getStepState(self.stepFields).state) {\r\n Ensighten.pushGaEvent(\r\n 'signup',\r\n 'signup_step2_brugerinformation',\r\n window.dataLayer?.[0]?.page?.brand || '',\r\n );\r\n\r\n Ensighten.pushGaEvent(\r\n 'account_creation',\r\n 'newsletter_signup',\r\n self.model.fields.AcceptNewsLetter() ? 'yes' : 'no',\r\n );\r\n\r\n self.model.allowNoLimitsSet() ? m.route('/step3') : m.route('/step2b');\r\n }\r\n });\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n if (!e) {\r\n e = window.event;\r\n }\r\n if (e.keyCode == 13) {\r\n self.tryContinue();\r\n }\r\n };\r\n\r\n self.getPhoneCountryCode = function (val) {\r\n var arr = self.model.countries();\r\n var code = '+45';\r\n for (var i = 0; i < arr.length; i++) {\r\n if (arr[i].value == val && (val === 'DK' || val === 'GL' || val === 'FO')) {\r\n code = '+' + arr[i].phoneCountryCode;\r\n }\r\n }\r\n return code;\r\n };\r\n\r\n Ensighten.pushHashAsVirtualPage('/step2');\r\n\r\n /*\r\n Creating fragment as we need to render custom HTML + attach event listeners.\r\n Do it here to avoid recreating the node tree and reattaching event listeners later on rerenders.\r\n Do NOT replicate this code unless absolutely necessary\r\n */\r\n var newsletterFragment = document.createElement('div');\r\n newsletterFragment.innerHTML = self.isDLIContext() ? self.dictionary('Step2/Newsletter') : self.dictionary('Step2/NewsletterDLO');\r\n var elements = newsletterFragment.querySelectorAll('.consent-popover');\r\n for (var i = 0; i < elements.length; i++) {\r\n var element = elements[i];\r\n\r\n element.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n\r\n var target = e.target;\r\n var headline = target.getAttribute('data-content-headline');\r\n var text = target.getAttribute('data-content');\r\n var overlay = new Overlay(ModalDialog([\r\n Svg('gdpr', {\r\n width: 70,\r\n height: 70,\r\n class: 'sprite-symbol sprite-symbol--badge'\r\n }),\r\n m('h3', headline),\r\n m('p', text)\r\n ], {\r\n buttons: [{\r\n color: 'yellow',\r\n text: self.dictionary('Step2/NewsletterPopupBackButton')\r\n }]\r\n }));\r\n\r\n overlay.show();\r\n\r\n });\r\n }\r\n\r\n self.newsletterContent = newsletterFragment;\r\n\r\n\r\n\r\n },\r\n\r\n view: function (ctrl) {\r\n\r\n var d = ctrl.dictionary;\r\n var model = ctrl.model;\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-register-step2'\r\n }, [\r\n m('div', { class: 'pam-page__content pam-register-step2' }, [\r\n m('', [ // This hack is to fix rendering issue, because Mithril cannot see changes to the Virtual DOM\r\n StepGuide(2, ctrl.stepMax, model.stepRoutes()),\r\n ]),\r\n m('.pam-page__inner-content', [\r\n\r\n m('h1', d('Step2/Headline')),\r\n\r\n m('p.abstract', d('Step2/Description')),\r\n\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/CprNumber'),\r\n model: model.fields.CprNumber,\r\n onblur: function () {\r\n if (model.fields.CprNumber()) {\r\n if (model.fields.CprNumber().replace(/\\D/g, '').length == 9) {\r\n model.fields.Country.value('FO');\r\n model.fields.Phonenumber('+298');\r\n }\r\n if (model.fields.CprNumber().replace(/\\D/g, '').length == 10) {\r\n model.fields.Country.value('DK');\r\n model.fields.Phonenumber('+45');\r\n }\r\n model.validate('CprNumber', 'Country');\r\n }\r\n },\r\n onkeyup: ctrl.formatCpr,\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/CprNr'),\r\n id: 'cprNumber'\r\n }),\r\n\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/FirstName'),\r\n model: model.fields.FirstName,\r\n onblur: function () {\r\n if (model.fields.FirstName()) {\r\n model.validate('FirstName');\r\n }\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/FirstName'),\r\n id: 'firstName'\r\n }),\r\n\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/LastName'),\r\n model: model.fields.LastName,\r\n onblur: function () {\r\n if (model.fields.LastName()) {\r\n model.validate(['LastName']);\r\n }\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/Surname'),\r\n id: 'lastName'\r\n }),\r\n\r\n m(CustomInput, {\r\n onkeyup: function (ev) {\r\n if (ev.target.value.length > 1) {\r\n ctrl.getDawaRoad(ev.target);\r\n } else {\r\n ctrl.dawa.road([]);\r\n }\r\n },\r\n onblur: function () {\r\n setTimeout(function () {\r\n ctrl.splitAddress(model.fields.Road());\r\n }, 0);\r\n },\r\n autocompleteItems: function () {\r\n return ctrl.dawa.road().map(function (road) {\r\n return road.tekst;\r\n });\r\n },\r\n helptext: d('FieldInputHelp/Road'),\r\n model: model.fields.Road,\r\n size: 'street',\r\n placeholder: d('FieldLabels/Street'),\r\n id: 'street',\r\n class: 'street-selector'\r\n }),\r\n\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/HouseNumber'),\r\n model: model.fields.HouseNumber,\r\n size: 'house-number',\r\n placeholder: d('FieldLabels/HouseNumber'),\r\n maxlength: 12,\r\n id: 'houseNumber'\r\n }),\r\n\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/PostNumber'),\r\n model: model.fields.PostNumber,\r\n size: 'post-number',\r\n placeholder: d('FieldLabels/PostNumber'),\r\n id: 'zip'\r\n }),\r\n\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/City'),\r\n model: model.fields.City,\r\n size: 'city',\r\n placeholder: d('FieldLabels/City'),\r\n id: 'city'\r\n }),\r\n\r\n m(Dropdown, {\r\n id: 'countrydropdown',\r\n uiTestId: 'pam-register-countryDropdown',\r\n model: model.fields.Country,\r\n validate: function () {\r\n model.validate('CprNumber', 'Country');\r\n },\r\n defaultItem: { value: '', text: d('FieldLabels/Country') },\r\n placeholder: true,\r\n onchange: function (val) {\r\n model.fields.Phonenumber(ctrl.getPhoneCountryCode(val));\r\n }\r\n }),\r\n\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/PhoneNumber'),\r\n model: model.fields.Phonenumber,\r\n onblur: function () {\r\n var currentCountryCode = ctrl.getPhoneCountryCode(model.fields.Country.value());\r\n model.fields.Phonenumber(model.fields.Phonenumber().replace(/ /g, ''));\r\n\r\n if (model.fields.Phonenumber() && model.fields.Phonenumber() != currentCountryCode) {\r\n model.validate(['Phonenumber']);\r\n }\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/PhoneNumber'),\r\n id: 'phone'\r\n }),\r\n\r\n CustomCheckbox({\r\n align: 'left',\r\n color: 'color-grey',\r\n items: [{\r\n model: model.fields.AcceptNewsLetter,\r\n id: 'checkboxA',\r\n value: 'nyhedsbrev',\r\n config: function (el, init) {\r\n if (!init) {\r\n el.innerHTML = '';\r\n el.appendChild(ctrl.newsletterContent);\r\n }\r\n },\r\n onchange: function (checked) {\r\n Ensighten.pushGaEvent('permission', checked ? 'checkBoxActivated' : 'checkBoxUnchecked', 'email_permission', false);\r\n }\r\n }, {\r\n model: model.fields.AccecptGameScan,\r\n id: 'checkboxB',\r\n value: 'spilscanner',\r\n text: d('Step2/Spilscanner'),\r\n onchange: function (checked) {\r\n if (checked) {\r\n this.model.validate([this.id]);\r\n }\r\n }\r\n }, {\r\n model: model.fields.AcceptConditions,\r\n id: 'checkboxC',\r\n value: 'betingelser',\r\n text: d('Step2/Disclaimer'),\r\n onchange: function (checked) {\r\n if (checked) {\r\n this.model.validate([this.id]);\r\n }\r\n }\r\n }]\r\n }),\r\n\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' },\r\n m(Button, {\r\n uiTestId: 'pam-register-tryContinue',\r\n text: { default: d('ButtonLabels/Next') },\r\n loading: ctrl.submitLoading(),\r\n onclick: ctrl.tryContinue,\r\n onkeydown: ctrl.checkEnter\r\n })\r\n )\r\n\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Step1', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Recaptcha',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController'\r\n], function (m, Ensighten, Utils, CustomInput, StepGuide, Button, Recaptcha, LoginController) {\r\n\r\n var root = {\r\n\r\n controller: function (rootctrl) {\r\n var self = this;\r\n self.rootctrl = rootctrl;\r\n self.stepMax = rootctrl.stepMax;\r\n self.model = rootctrl.model();\r\n\r\n self.dictionary = rootctrl.dictionary;\r\n self.stepFields = [\r\n 'Email',\r\n 'Username',\r\n 'Password',\r\n 'PasswordRepeat',\r\n 'Recaptcha',\r\n 'UsernameAndEmail'\r\n ];\r\n\r\n self.submitLoading = m.prop(false);\r\n\r\n self.tryContinue = function () {\r\n self.submitLoading(true);\r\n self.model.validate(self.stepFields, true).then(function () {\r\n\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n\r\n if (self.model.getStepState(self.stepFields).state) {\r\n if (window.dataLayer) {\r\n window.dataLayer.push({\r\n event: 'gaEvent',\r\n eventSyntax: {\r\n action: 'signup_step1_opret_konto',\r\n category: 'signup',\r\n label: window.dataLayer[0]?.page?.brand || ''\r\n }\r\n });\r\n }\r\n m.route('/step2');\r\n }\r\n });\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n if (e.keyCode == 13) { // return key\r\n self.tryContinue();\r\n }\r\n };\r\n\r\n self.gotoLogin = function () {\r\n Ensighten.pushGaEventOnPageRedirect('account_creation', 'login', 'link');\r\n\r\n LoginController.openLogin({\r\n source: 'signupAlreadyRegisteredLink'\r\n });\r\n\r\n };\r\n },\r\n\r\n view: function (ctrl) {\r\n var d = ctrl.dictionary;\r\n var model = ctrl.model;\r\n return m('div', {\r\n 'data-uitest-id': 'pam-register-step1'\r\n }, [\r\n m('div', { class: 'pam-page__content pam-register-step1' }, [\r\n StepGuide(1, ctrl.stepMax, model.stepRoutes()),\r\n m('.pam-page__inner-content', [\r\n m('h1', d('Step1/Headline')),\r\n m('p.abstract', d('Step1/Description')),\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/Email'),\r\n model: model.fields.Email,\r\n onblur: function () {\r\n model.validate(['Email']);\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/Email'),\r\n type: 'email',\r\n id: 'email',\r\n spellcheck: false\r\n }),\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/UserName'),\r\n model: model.fields.Username,\r\n onblur: function () {\r\n model.validate(['Username']);\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/Username'),\r\n id: 'username'\r\n }),\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/Password'),\r\n model: model.fields.Password,\r\n onblur: function () {\r\n model.validate(['Username', 'Password']);\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/Password'),\r\n type: 'password',\r\n id: 'password'\r\n }),\r\n m(CustomInput, {\r\n helptext: d('FieldInputHelp/PasswordRepeat'),\r\n model: model.fields.PasswordRepeat,\r\n onblur: function () {\r\n model.validate(['Password', 'PasswordRepeat']);\r\n },\r\n onkeydown: ctrl.checkEnter,\r\n placeholder: d('FieldLabels/PasswordRepeat'),\r\n type: 'password',\r\n id: 'passwordRepeat'\r\n }),\r\n model.recaptchaEnabled() ? m(Recaptcha, {\r\n model: model.fields.Recaptcha,\r\n id: 'recaptchafield'\r\n }) : null,\r\n m('div', {\r\n class: 'pam__button-container pam__button-container--large-spacing'\r\n }, [\r\n m(Button, {\r\n text: {\r\n default: d('ButtonLabels/Next')\r\n },\r\n uiTestId: 'pam-register-tryContinue',\r\n loading: ctrl.submitLoading(),\r\n onkeydown: ctrl.checkEnter,\r\n onclick: ctrl.tryContinue\r\n })\r\n ]),\r\n m('p', [\r\n m.trust(d('Step1/AlreadyRegistered') + ' '),\r\n m('a', {\r\n class: 'pam-page__link',\r\n href: '#',\r\n onclick: ctrl.gotoLogin\r\n }, [\r\n m('strong', [\r\n m.trust(d('Step1/LoginText')),\r\n ])\r\n ])\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileRestrictAccountData', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils'\r\n], function (Request, Utils) {\r\n var _date = null;\r\n var confirmChecksum = Utils.getParameter('confirmChecksum');\r\n\r\n var setDate = function (date) {\r\n _date = date;\r\n };\r\n\r\n var formatDate = function (date) {\r\n var month = '' + (date.getMonth() + 1);\r\n var day = '' + date.getDate();\r\n var year = date.getFullYear();\r\n\r\n if (month.length < 2) month = '0' + month;\r\n if (day.length < 2) day = '0' + day;\r\n\r\n return [year, month, day].join('-');\r\n };\r\n\r\n var restrictAccount = function (date) {\r\n if (!date) {\r\n date = _date;\r\n }\r\n\r\n var todayDate = new Date();\r\n var formattedTodayDate = formatDate(todayDate);\r\n var formattedDate = formatDate(date);\r\n\r\n if (formattedTodayDate === formattedDate) {\r\n todayDate.setDate(todayDate.getDate() + 1);\r\n formattedDate = formatDate(todayDate);\r\n }\r\n\r\n var timezoneOffset = date.getTimezoneOffset() * -1; // should be set as a negated minute offset\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 Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/restrictaccount',\r\n data: {\r\n RestrictAccountEndDate: formattedDate,\r\n UtcMinutesOffset: timezoneOffset\r\n },\r\n headers: headersObj\r\n });\r\n };\r\n\r\n var closeAccount = function () {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/closeaccount',\r\n headers: {\r\n 'X-Checksum': confirmChecksum\r\n }\r\n });\r\n };\r\n\r\n return {\r\n restrictAccount: restrictAccount,\r\n closeAccount: closeAccount,\r\n setDate: setDate\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/ConfirmRestriction', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button'\r\n], function (m, NavigationHeader, Button) {\r\n\r\n var ConfirmRestriction = {\r\n controller: function (args) {\r\n this.d = args.confirmDictionary;\r\n this.pageSettings = args.pageSettings;\r\n\r\n this.loadingProps = {\r\n confirm: m.prop(false),\r\n };\r\n\r\n this.cancel = function () {\r\n if (args.cancelCallback) {\r\n args.cancelCallback();\r\n }\r\n m.route('/');\r\n };\r\n\r\n this.confirmCallback = function () {\r\n this.loadingProps.confirm(true);\r\n args.confirmCallback();\r\n }.bind(this);\r\n },\r\n\r\n view: function (controller) {\r\n var confirmContent = function () {\r\n return [\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n uiTestId: 'pam-restriction-abort',\r\n text: { default: controller.d('AbortButtonText') },\r\n classes: { default: 'pam__button pam__button--grey' },\r\n onclick: controller.cancel\r\n }),\r\n m(Button, {\r\n uiTestId: 'pam-restriction-confirm',\r\n text: { default: controller.d('ConfirmButtonText') },\r\n loading: controller.loadingProps.confirm(),\r\n onclick: controller.confirmCallback\r\n })\r\n ])\r\n ];\r\n };\r\n\r\n return m('.restrict-account-page', {\r\n 'data-uitest-id': 'pam-playerProfile-confirmRestriction'\r\n }, [\r\n NavigationHeader(controller.cancel, true, controller.d('BackButton')),\r\n\r\n m('.pam-page__content', {\r\n class: 'verify'\r\n }, [\r\n m('.pam-page__inner-content', [\r\n m('h1', { 'data-uitest-id': 'confirmRestriction-title' }, controller.d('Title')),\r\n m('p.abstract', { 'data-uitest-id': 'confirmRestriction-description' }, controller.d('Abstract')),\r\n confirmContent()\r\n ])\r\n ]),\r\n\r\n m('.pam-page__ribbon', [\r\n m('.info-ribbon.info-ribbon--notice', [\r\n m('.info-ribbon__text.restrict-account-page__rofus', [\r\n m('p', { 'data-uitest-id': 'confirmRestriction-rofus-description' }, m.trust(controller.d('ROFUSDescription'))),\r\n m('a', {\r\n href: controller.pageSettings().RofusLink ? controller.pageSettings().RofusLink : window.location.origin,\r\n target: controller.pageSettings().RofusLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'confirmRestriction-rofus-link'\r\n }, controller.d('ROFUSLinkText')),\r\n m('a', {\r\n href: controller.pageSettings().TreatmentLink ? controller.pageSettings().TreatmentLink : window.location.origin,\r\n target: controller.pageSettings().TreatmentLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'confirmRestriction-treatment-link'\r\n }, controller.d('TreatmentLinkText'))\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return ConfirmRestriction;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileCloseAccountApi', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n],\r\nfunction (Request, Utils) {\r\n var confirmChecksum = Utils.getParameter('confirmChecksum');\r\n\r\n var lockAccount = function () {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/lockaccount',\r\n headers: {\r\n 'X-Checksum': confirmChecksum\r\n }\r\n });\r\n };\r\n\r\n return {\r\n lockAccount: lockAccount\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/SelectLimitsModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/CustomValidators',\r\n], function (m, Model, ValidationModel, customValidators) {\r\n 'use strict';\r\n\r\n var SelectLimitsModel = Model('SelectLimitsModel', new ValidationModel(function (content) {\r\n\r\n var self = this;\r\n\r\n var d = content.dictionary;\r\n\r\n customValidators.add();\r\n\r\n this.fields = {\r\n newDaily: m.prop(null),\r\n newWeekly: m.prop(null),\r\n newMonthly: m.prop(null),\r\n dictionary: m.prop(content.dictionary),\r\n day: {\r\n value: m.prop(null),\r\n min: m.prop(content.min || null),\r\n max: m.prop(content.day.max || null),\r\n isSelected: m.prop(false)\r\n },\r\n week: {\r\n value: m.prop(null),\r\n min: m.prop(content.min || null),\r\n max: m.prop(content.week.max || null),\r\n isSelected: m.prop(false)\r\n },\r\n month: {\r\n value: m.prop(null),\r\n min: m.prop(content.min || null),\r\n max: m.prop(content.month.max || null),\r\n isSelected: m.prop(false)\r\n }\r\n };\r\n\r\n var f = self.fields;\r\n\r\n this.fieldrules = {\r\n newDaily: function () {\r\n return {\r\n isBelowGlobalLimit: {\r\n limit: f.day.min,\r\n message: d('ValidationMessages/BelowGlobalLimit', { AMOUNT: f.day.min() })\r\n },\r\n isAboveGlobalLimit: {\r\n limit: f.day.max,\r\n message: d('ValidationMessages/AboveGlobalLimit', { AMOUNT: f.day.max() })\r\n },\r\n isLimitEmpty: {\r\n message: d('ValidationMessages/MissingDailyLimit')\r\n }\r\n };\r\n },\r\n newWeekly: function () {\r\n return {\r\n isBelowGlobalLimit: {\r\n limit: f.week.min,\r\n message: d('ValidationMessages/BelowGlobalLimit', { AMOUNT: f.week.min() })\r\n },\r\n isAboveGlobalLimit: {\r\n limit: f.week.max,\r\n message: d('ValidationMessages/AboveGlobalLimit', { AMOUNT: f.week.max() })\r\n },\r\n isLimitEmpty: {\r\n message: d('ValidationMessages/MissingWeeklyLimit')\r\n }\r\n };\r\n },\r\n newMonthly: function () {\r\n return {\r\n isBelowGlobalLimit: {\r\n limit: f.month.min,\r\n message: d('ValidationMessages/BelowGlobalLimit', { AMOUNT: f.month.min() })\r\n },\r\n isAboveGlobalLimit: {\r\n limit: f.month.max,\r\n message: d('ValidationMessages/AboveGlobalLimit', { AMOUNT: f.month.max() })\r\n },\r\n isLimitEmpty: {\r\n message: d('ValidationMessages/MissingMonthlyLimit')\r\n }\r\n };\r\n }\r\n };\r\n\r\n this.extendFields(this);\r\n\r\n // TODO: cache (local storage) optimization:\r\n this.toJSON = function () {\r\n return {};\r\n };\r\n }));\r\n\r\n\r\n return SelectLimitsModel;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/AmountLimitsModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/CustomValidators',\r\n], function (m, Model, ValidationModel, customValidators) {\r\n 'use strict';\r\n\r\n var AmountLimitsModel = Model('AmountLimitsModel', new ValidationModel(function (content) {\r\n\r\n var self = this;\r\n\r\n var d = content.dictionary;\r\n var emptyText = d('ValidationMessages/AtLeastOne');\r\n\r\n customValidators.add();\r\n\r\n this.fields = {\r\n allowNoLimitsSet: m.prop(content.allowNoLimitsSet),\r\n dictionary: m.prop(content.dictionary),\r\n hasLimits: m.prop((content.day.initial > 0 || content.week.initial > 0 || content.month.initial > 0) || false),\r\n maxDaily: m.prop(content.day.initial || ''),\r\n maxWeekly: m.prop(content.week.initial || ''),\r\n maxMonthly: m.prop(content.month.initial || ''),\r\n day: {\r\n initial: m.prop(content.day.initial || null),\r\n min: m.prop(content.day.min || null),\r\n max: m.prop(content.day.max || null),\r\n future: m.prop(content.day.future || null),\r\n futureDate: m.prop(content.day.futureDate ? new Date(content.day.futureDate) : null),\r\n isGlobal: m.prop(content.day.isGlobal || null),\r\n isOperator: m.prop(content.day.isOperator || null),\r\n isOperatorButLoweredByUser: m.prop(content.day.isOperatorButLoweredByUser || false),\r\n isActive: m.prop(content.day.initial > 0 || null),\r\n othersActive: m.prop((content.week.initial > 0 || content.month.initial > 0) || null),\r\n storedValue: m.prop(content.day.isGlobal ? null : content.day.initial || null),\r\n plannedValue: m.prop(content.day.isGlobal ? null : content.day.future || null),\r\n isNew: m.prop(false),\r\n isPending: m.prop(content.day.future > 0 || false),\r\n isDeleting: m.prop((!content.day.future && !!content.day.futureDate) || false),\r\n isEdit: m.prop(false),\r\n isReverting: m.prop(false)\r\n },\r\n week: {\r\n initial: m.prop(content.week.initial || null),\r\n min: m.prop(content.week.min || null),\r\n max: m.prop(content.week.max || null),\r\n future: m.prop(content.week.future || null),\r\n futureDate: m.prop(content.week.futureDate ? new Date(content.week.futureDate) : null),\r\n isGlobal: m.prop(content.week.isGlobal || null),\r\n isOperatorButLoweredByUser: m.prop(content.week.isOperatorButLoweredByUser || false),\r\n isOperator: m.prop(content.week.isOperator || null),\r\n isActive: m.prop(content.week.initial > 0 || null),\r\n othersActive: m.prop((content.day.initial > 0 || content.month.initial > 0) || null),\r\n storedValue: m.prop(content.week.isGlobal ? null : content.week.initial || null),\r\n plannedValue: m.prop(content.week.isGlobal ? null : content.week.future || null),\r\n isNew: m.prop(false),\r\n isPending: m.prop(content.week.future > 0 || false),\r\n isDeleting: m.prop((!content.week.future && !!content.week.futureDate) || false),\r\n isEdit: m.prop(false),\r\n isReverting: m.prop(false)\r\n },\r\n month: {\r\n initial: m.prop(content.month.initial || null),\r\n min: m.prop(content.month.min || null),\r\n max: m.prop(content.month.max || null),\r\n future: m.prop(content.month.future || null),\r\n futureDate: m.prop(content.month.futureDate ? new Date(content.month.futureDate) : null),\r\n isGlobal: m.prop(content.month.isGlobal || null),\r\n isOperator: m.prop(content.month.isOperator || null),\r\n isOperatorButLoweredByUser: m.prop(content.month.isOperatorButLoweredByUser || false),\r\n isActive: m.prop(content.month.initial > 0 || null),\r\n othersActive: m.prop((content.day.initial > 0 || content.week.initial > 0) || null),\r\n storedValue: m.prop(content.month.isGlobal ? null : content.month.initial || null),\r\n plannedValue: m.prop(content.month.isGlobal ? null : content.month.future || null),\r\n isNew: m.prop(false),\r\n isPending: m.prop(content.month.future > 0 || false),\r\n isDeleting: m.prop((!content.month.future && !!content.month.futureDate) || false),\r\n isEdit: m.prop(false),\r\n isReverting: m.prop(false)\r\n }\r\n };\r\n\r\n var f = self.fields;\r\n\r\n const periodMappings = {\r\n day: 'Daily',\r\n week: 'Weekly',\r\n month: 'Monthly'\r\n };\r\n\r\n const userHasDefinedMax = (period) => {\r\n const mappedPeriod = periodMappings[period];\r\n const maxFunc = f[`max${mappedPeriod}`];\r\n\r\n let isOperatorButUserHasLoweredTheAmount = false;\r\n\r\n if (f[period].isOperator()) {\r\n // Check to see if user has already changed the value set previously by operator.\r\n if (f[period].isOperatorButLoweredByUser()) {\r\n isOperatorButUserHasLoweredTheAmount = true;\r\n }\r\n\r\n // Check to see if user has (just now) changed the value set previously by operator.\r\n if (!f[period].isOperatorButLoweredByUser() && maxFunc() && Number(maxFunc()) !== f[period].max()) {\r\n isOperatorButUserHasLoweredTheAmount = true;\r\n }\r\n }\r\n\r\n return !!maxFunc() && (!f[period].isOperator() || isOperatorButUserHasLoweredTheAmount);\r\n };\r\n\r\n\r\n const dailyPresence = () => (\r\n !f.allowNoLimitsSet()\r\n && f.day.initial()\r\n && !(userHasDefinedMax('week') || userHasDefinedMax('month'))\r\n );\r\n\r\n const weeklyPresence = () => (\r\n !f.allowNoLimitsSet()\r\n && f.week.initial()\r\n && !(userHasDefinedMax('day') || userHasDefinedMax('month'))\r\n );\r\n\r\n const monthlyPresence = () => (\r\n !f.allowNoLimitsSet()\r\n && f.month.initial()\r\n && !(userHasDefinedMax('day') || userHasDefinedMax('week'))\r\n );\r\n\r\n this.fieldrules = {\r\n maxDaily: function () {\r\n return {\r\n isDailyValidRelatively: {\r\n weekly: {\r\n current: f.maxWeekly,\r\n max: f.week.max,\r\n isOperator: f.week.isOperator\r\n },\r\n monthly: {\r\n current: f.maxMonthly,\r\n max: f.month.max,\r\n isOperator: f.month.isOperator\r\n },\r\n message: d('ValidationMessages/DayLessThan')\r\n },\r\n presence: dailyPresence() ? { message: emptyText } : null,\r\n isBelowGlobalLimit: {\r\n limit: f.day.min,\r\n message: d('ValidationMessages/BelowGlobalLimit', { AMOUNT: f.day.min() })\r\n },\r\n isAboveGlobalLimit: {\r\n limit: f.day.max,\r\n message: d('ValidationMessages/AboveGlobalimit', { AMOUNT: f.day.max() })\r\n },\r\n isEqualToFuture: { future: f.day.plannedValue, message: d('ValidationMessages/EqualToFuture') },\r\n isAlreadyDeleting: { isDeleting: f.day.isDeleting, message: d('ValidationMessages/AlreadyPendingDeletion') },\r\n canDailyBeUnset: !f.allowNoLimitsSet() ? { fields: f, message: d('ValidationMessages/AtLeastOne') } : null\r\n };\r\n },\r\n maxWeekly: function () {\r\n return {\r\n isWeeklyValidRelatively: {\r\n daily: {\r\n current: f.maxDaily,\r\n max: f.day.max,\r\n isOperator: f.day.isOperator\r\n },\r\n monthly: {\r\n current: f.maxMonthly,\r\n max: f.month.max,\r\n isOperator: f.month.isOperator\r\n },\r\n message: d('ValidationMessages/WeekLessThan')\r\n },\r\n presence: weeklyPresence() ? { message: emptyText } : null,\r\n isBelowGlobalLimit: {\r\n limit: f.week.min,\r\n message: d('ValidationMessages/BelowGlobalLimit', { AMOUNT: f.week.min() })\r\n },\r\n isAboveGlobalLimit: {\r\n limit: f.week.max,\r\n message: d('ValidationMessages/AboveGlobalimit', { AMOUNT: f.week.max() })\r\n },\r\n isEqualToFuture: { future: f.week.plannedValue, message: d('ValidationMessages/EqualToFuture') },\r\n isAlreadyDeleting: { isDeleting: f.week.isDeleting, message: d('ValidationMessages/AlreadyPendingDeletion') },\r\n canWeeklyBeUnset: !f.allowNoLimitsSet() ? { fields: f, message: d('ValidationMessages/AtLeastOne') } : null\r\n };\r\n },\r\n maxMonthly: function () {\r\n return {\r\n isMonthlyValidRelatively: {\r\n daily: {\r\n current: f.maxDaily,\r\n max: f.day.max,\r\n isOperator: f.day.isOperator\r\n },\r\n weekly: {\r\n current: f.maxWeekly,\r\n max: f.week.max,\r\n isOperator: f.week.isOperator\r\n },\r\n message: d('ValidationMessages/MonthLessThan')\r\n },\r\n presence: monthlyPresence() ? { message: emptyText } : null,\r\n isBelowGlobalLimit: {\r\n limit: f.month.min,\r\n message: d('ValidationMessages/BelowGlobalLimit', { AMOUNT: f.month.min() })\r\n },\r\n isAboveGlobalLimit: {\r\n limit: f.month.max,\r\n message: d('ValidationMessages/AboveGlobalimit', { AMOUNT: f.month.max() })\r\n },\r\n isEqualToFuture: { future: f.month.plannedValue, message: d('ValidationMessages/EqualToFuture') },\r\n isAlreadyDeleting: { isDeleting: f.month.isDeleting, message: d('ValidationMessages/AlreadyPendingDeletion') },\r\n canMonthlyBeUnset: !f.allowNoLimitsSet() ? { fields: f, message: d('ValidationMessages/AtLeastOne') } : null\r\n };\r\n }\r\n };\r\n\r\n this.extendFields(this);\r\n\r\n // TODO: cache (local storage) optimization:\r\n this.toJSON = function () {\r\n return {};\r\n };\r\n }));\r\n\r\n\r\n return AmountLimitsModel;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileAmountLimitsApi', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n],\r\nfunction (Request) {\r\n var setAmountLimits = function (settings) {\r\n return Request({\r\n method: 'POST',\r\n data: settings,\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/SetAmountLimits',\r\n background: true\r\n });\r\n };\r\n\r\n var setWagerLimits = function (settings) {\r\n return Request({\r\n method: 'POST',\r\n data: settings,\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/retail/SetLimits',\r\n background: true\r\n });\r\n };\r\n\r\n var setLimits = function (settings, type) {\r\n if (type && type.indexOf('Wager') > -1) {\r\n return setWagerLimits(settings);\r\n } else {\r\n return setAmountLimits(settings);\r\n }\r\n };\r\n\r\n return {\r\n setLimits: setLimits\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileAcknowledgementApi', [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n],\r\nfunction (Request) {\r\n var acknowledge = function (messageIds) {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/AcknowledgeMessage',\r\n background: true,\r\n data: {\r\n Messages: messageIds\r\n }\r\n });\r\n };\r\n\r\n return {\r\n acknowledge: acknowledge\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageAccount', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n], function (m, Dictionary, NavigationHeader, LoadDots, Ensighten, Overlay, ModalDialog, Svg, LoginCache, ApiRequest) {\r\n\r\n var root = {\r\n controller: function (args) {\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/MyPage/' });\r\n this.model = args.model;\r\n this.blockPayout = false;\r\n this.blockPayoutDisabledByDS = false;\r\n this.userObj = null;\r\n this.exclusion = null;\r\n this.exclusionCooldown = null;\r\n this.blockPayoutExclusionTimer = args.blockPayoutExclusionTimer;\r\n\r\n Ensighten.pushHashAsVirtualPage('kontooplysninger');\r\n\r\n // Get exclusions\r\n ApiRequest({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/api/GetExclusions',\r\n method: 'GET',\r\n }).then(function (response) {\r\n var exclusions = response.data;\r\n var withdrawalExclusions = exclusions.filter(function (exclusion) {\r\n return exclusion.Type === 'Withdrawalcancellation';\r\n });\r\n this.exclusion = withdrawalExclusions[withdrawalExclusions.length - 1];\r\n if (this.exclusion) {\r\n if (this.exclusion.AppliedUntil) {\r\n this.exclusionCooldown = new Date(this.exclusion.AppliedUntil);\r\n } else {\r\n this.blockPayout = true;\r\n }\r\n\r\n if (this.exclusion.Reason !== 'requested-by-player-via-frontend') {\r\n this.blockPayoutDisabledByDS = true;\r\n Ensighten.pushGaEvent('withdraw', 'cancel_withdraw_blocked_by_ds', 'kontooplysninger');\r\n }\r\n }\r\n }.bind(this));\r\n\r\n this.getHoursBetweenDates = function (a, b) {\r\n return Math.abs(a - b) / 36e5;\r\n }.bind(this);\r\n\r\n this.toggleExclusion = function () {\r\n if (!this.blockPayout) {\r\n // Turn on exclusion\r\n ApiRequest({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/WithdrawalCancellationExclusion',\r\n method: 'GET',\r\n })\r\n .then(function (response) {\r\n if (response.status !== 'success') {\r\n return Promise.reject('Could not create exclusion');\r\n }\r\n this.exclusion = response.data;\r\n this.blockPayout = true;\r\n Ensighten.pushGaEvent('withdraw', 'toggle_cancel_withdraw', 'reactivate');\r\n }.bind(this))\r\n .catch(function (error) {\r\n console.error(error);\r\n });\r\n } else if (this.blockPayout) {\r\n // Turn off exclusion\r\n ApiRequest({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/RemoveWithdrawalCancellationExclusion/' + this.exclusion.ExclusionId,\r\n }).then(function (response) {\r\n if (response.status !== 'success') {\r\n return Promise.reject('Could not remove exclusion');\r\n }\r\n this.exclusionCooldown = new Date();\r\n this.exclusionCooldown.setDate(this.exclusionCooldown.getDate() + 1);\r\n this.blockPayout = false;\r\n Ensighten.pushGaEvent('withdraw', 'toggle_cancel_withdraw', 'deactivate');\r\n }.bind(this));\r\n }\r\n }.bind(this);\r\n\r\n this.showModal = function (event) {\r\n var modal = Overlay(ModalDialog([\r\n Svg('round_big_alert_blue', { modifiers: ['center'] }),\r\n m('h1.center', this.d('ChangeAccount/CancellationOfPayout/PopupHeader')),\r\n m('p', m.trust(this.d('ChangeAccount/CancellationOfPayout/PopupText')))\r\n ], {\r\n closable: false,\r\n stackButtons: true,\r\n buttons: [\r\n {\r\n class: 'pam-button--round',\r\n text: this.d('ChangeAccount/CancellationOfPayout/PrimaryButton'),\r\n uiTestId: 'pam-myPage-account-block-modal-accept',\r\n callback: function (close) {\r\n this.toggleExclusion(event);\r\n close();\r\n }.bind(this)\r\n }, {\r\n size: 'small',\r\n color: 'link',\r\n uiTestId: 'pam-myPage-account-block-modal-cancel',\r\n text: this.d('ChangeAccount/CancellationOfPayout/SecondaryButton'),\r\n callback: function (close) {\r\n close();\r\n }\r\n }\r\n ]\r\n }));\r\n modal.show();\r\n }.bind(this);\r\n\r\n this.getExclusionEndtimeString = function () {\r\n return this.exclusionCooldown.toLocaleDateString('da-DK', { weekday: 'long' }) + ' ' + ('0' + this.exclusionCooldown.getHours()).slice(-2) + ':' + ('0' + this.exclusionCooldown.getMinutes()).slice(-2);\r\n }.bind(this);\r\n },\r\n\r\n view: function (controller) {\r\n if (!controller.userObj || Object.keys(controller.userObj.length === 0)) {\r\n controller.userObj = LoginCache.getUserObj();\r\n }\r\n\r\n var model = controller.model();\r\n var d = controller.d;\r\n\r\n if (!model) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n\r\n var subheader = model.fields['Account']() === 'NemKonto' ?\r\n d('ChangeAccount/SubHeadline_NemKonto') : d('ChangeAccount/SubHeadline');\r\n\r\n return m('.js-ctrl-account ctrl-account', {\r\n 'data-uitest-id': 'pam-myPage-account'\r\n }, [\r\n NavigationHeader('/', true, d('SubPageBackButton')),\r\n m('div', {\r\n class: 'step1'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('h1.pam-view__headline', d('ChangeAccount/Headline')),\r\n d('ChangeAccount/Headline2') ? m('h2', d('ChangeAccount/Headline2')) : '',\r\n m('p.pam-view__headline--sub', subheader),\r\n m('.pam-view__account', [\r\n m('p.pam-view__account-description', 'Udbetalingskonto:'),\r\n m('p.pam-view__account-name', model.fields['Account']())\r\n ]),\r\n m('.pam-view__sub', m.trust(d('ChangeAccount/InfoText'))),\r\n m('h2', d('ChangeAccount/CancellationOfPayout/Header')),\r\n m('p.pam-view__headline--sub', d('ChangeAccount/CancellationOfPayout/SubHeader')),\r\n m('.pam-view__blocker-wrapper', {\r\n class: controller.exclusionCooldown ? 'pam-view__blocker-wrapper--small-padding' : null\r\n }, [\r\n m('.pam-view__blocker-text-wrapper', [\r\n m('p.pam-view__blocker-text', d('ChangeAccount/CancellationOfPayout/FeatureToggleText')),\r\n controller.exclusionCooldown && !controller.blockPayout ? m('p.pam-view__blocker-sub-text', d('ChangeAccount/CancellationOfPayout/FeatureToggleSubText', { dato: controller.getExclusionEndtimeString })) : null\r\n ]),\r\n m('.pam-view__blocker-radio-wrapper', [\r\n m('.pam-view__blocker-radio-slider', {\r\n onclick: controller.blockPayout ? controller.showModal : controller.toggleExclusion,\r\n class: (controller.blockPayout ? 'pam-view__blocker-radio-slider--on' : '') + ' ' + (controller.blockPayoutDisabledByDS ? 'pam-view__blocker-radio-slider--disabled' : ''),\r\n 'data-uitest-id': 'pam-myPage-account-slider'\r\n }, [\r\n m('.pam-view__blocker-radio-knob')\r\n ]),\r\n ])\r\n ]),\r\n controller.blockPayoutDisabledByDS\r\n ? m('.pam-view__block-explanation-wrapper', [\r\n m('.pam-view__block-explanation-mark'),\r\n m('p.pam-view__block-explanation-text', d('ChangeAccount/CancellationOfPayout/FeatureBlockedByDS'))\r\n ])\r\n : m('p.pam-view__sub', d('ChangeAccount/CancellationOfPayout/SubFeatureToggleText'))\r\n ])\r\n ]),\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageCards', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Params',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/MyPageData',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Card',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Payment',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/InfoRibbon',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Alerts'\r\n], function (m, Params, Dictionary, MyPageData, Overlay, Utils, Card, Payment, ModalDialog, InfoRibbon, NavigationHeader, Svg, LoadDots, Ensighten, Alerts) {\r\n\r\n // Controllers:\r\n var root = {\r\n controller: function (args) {\r\n\r\n // Variables:\r\n this.d = Dictionary.get.bind({\r\n prefix: 'PlayerProfile/MyPage/'\r\n });\r\n this.loading = args.loading;\r\n this.loadingProps = { addCard: m.prop(false), deleteCard: m.prop(false) };\r\n this.model = args.model;\r\n this.servererror = m.prop('');\r\n this.slideClass = m.prop('');\r\n this.maxNumberOfCreditCards = m.prop(args.maxNumberOfCreditCards);\r\n this.shouldReturnToSubscriptionFlow = m.prop(Params.detect('create-subscription'));\r\n this.shouldReturnToSubscriptionFlowType = m.prop(Params.detect('jackpot') ? 'jackpot' : 'plus');\r\n this.createSubscriptionFlowLink = m.prop(args.createSubscriptionFlowLink);\r\n this.createSubscriptionFlowLabel = m.prop(args.createSubscriptionFlowLabel);\r\n this.mySubscriptionsUrl = args.mySubscriptionsUrl;\r\n\r\n this.alert = Alerts('warning').bind(this);\r\n\r\n Ensighten.pushHashAsVirtualPage('kort');\r\n\r\n\r\n this.requestAddNew = function () {\r\n var data = {\r\n acceptUrl: Utils.uniqueParams(window.location.href),\r\n cancelUrl: Utils.uniqueParams(window.location.href),\r\n preauth: true,\r\n saveCard: true\r\n };\r\n\r\n Payment.saveCard(data);\r\n }.bind(this);\r\n\r\n this.dialogAddNewCard = m.prop(new Overlay(ModalDialog([\r\n Svg('round_big_plus'),\r\n m('h1', this.d('ChangeCards/Dialogs/AddCard/Headline')),\r\n m('p', this.d('ChangeCards/Dialogs/AddCard/Abstract'))\r\n ], {\r\n buttons: [{\r\n text: this.d('ChangeCards/Dialogs/AddCard/CancelButton'),\r\n id: 'pam__button--add-card-cancel'\r\n }, {\r\n text: this.d('ChangeCards/Dialogs/AddCard/SubmitButton'),\r\n loading: this.loadingProps.addCard(),\r\n callback: function () {\r\n this.loadingProps.addCard(true);\r\n m.redraw(true);\r\n var urlParams = window.location.search.slice(1);\r\n var returnUrl = Utils.getParameter('returnUrl') ? '' : '&returnUrl=' + encodeURIComponent(window.location.href);\r\n window.location.href = args.paymentUrl + '?addNewCard=true&' + urlParams + returnUrl;\r\n }.bind(this),\r\n id: 'pam__button--add-card-confirm'\r\n }]\r\n }, document.querySelector('.page-box'))));\r\n\r\n this.addNew = function () {\r\n Ensighten.pushHashAsVirtualPage('opret_bekraeftelse');\r\n this.dialogAddNewCard().show();\r\n }.bind(this);\r\n\r\n this.dialogDeleteCard = function (card) {\r\n Ensighten.pushHashAsVirtualPage('slet_bekraeftelse');\r\n this.showDialog(card);\r\n }.bind(this);\r\n\r\n this.setPrimaryCard = function (cardId) {\r\n MyPageData.setData('SetPrimaryCard', cardId).then(function (cardId, response) {\r\n if (response.OperationSuccess) {\r\n this.model().fields.CardsList().forEach(function (el) {\r\n el.isPrimaryCard = el.cardId == cardId;\r\n });\r\n } else {\r\n this.servererror(response.ErrorMessage);\r\n }\r\n }.bind(this, cardId));\r\n }.bind(this);\r\n\r\n this.maskPartialPan = function (partialPan) {\r\n return partialPan.replace(/x/ig, '●');\r\n };\r\n\r\n this.deleteCard = function (cardid, close) {\r\n var cards = this.model().fields.CardsList();\r\n MyPageData.setData('DeleteCard', cardid).then(function (response) {\r\n if (!response.OperationSuccess) {\r\n this.servererror(response.ErrorMessage);\r\n }\r\n\r\n this.model().fields.CardsList(cards.filter(function (item) {\r\n return item.cardId !== cardid;\r\n }));\r\n\r\n if (this.model().fields.CardsList().length > 0) {\r\n cards.IsPrimaryCard = true;\r\n this.setPrimaryCard(cards[0].cardId);\r\n }\r\n\r\n close();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.showDialog = function (card) {\r\n var self = this;\r\n\r\n this.loadingProps.addCard(false);\r\n this.loadingProps.deleteCard(false);\r\n\r\n new Overlay(ModalDialog([\r\n Svg('trash', {\r\n class: 'modal-header-icon sprite-symbol'\r\n }),\r\n m('h1', self.d('ChangeCards/Dialogs/Delete/Headline')),\r\n m('p', self.d('ChangeCards/Dialogs/Delete/Abstract'))\r\n ], {\r\n buttons: [{\r\n text: self.d('ChangeCards/Dialogs/Delete/CancelButton')\r\n }, {\r\n text: self.d('ChangeCards/Dialogs/Delete/SubmitButton'),\r\n loading: self.loadingProps.deleteCard(),\r\n callback: function (close) {\r\n self.loadingProps.deleteCard(true);\r\n m.redraw();\r\n self.deleteCard(card.cardId, close);\r\n if (window.dataLayer) {\r\n window.dataLayer.push({\r\n event: 'gaEvent',\r\n eventSyntax: {\r\n action: 'slet_gemt_kort',\r\n category: 'payment',\r\n label: 'intet_abonnement_tilknyttet_kort'\r\n }\r\n });\r\n }\r\n\r\n },\r\n id: 'delete-card'\r\n }]\r\n }), document.querySelector('.page-box')).show();\r\n }.bind(this);\r\n\r\n // Here we manually redirect to the same page in order to reload data from backend\r\n this.backToOverview = () => (location.href = location.pathname + location.search);\r\n\r\n this.backToCreateSubscriptionFlow = () => (location.href = this.createSubscriptionFlowLink() + '?' + this.shouldReturnToSubscriptionFlowType());\r\n\r\n this.onStepRendered = function (ignoredElement, isInitialized) {\r\n if (!isInitialized) {\r\n if (this.model().fields.CardsList().length === 0) {\r\n Ensighten.pushGaEvent('payment', 'visible', 'ingen_gemte_kort_message', false);\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.handleNavigationHeader = (ev) => {\r\n ev.preventDefault();\r\n if (this.shouldReturnToSubscriptionFlow()) {\r\n this.backToCreateSubscriptionFlow();\r\n } else {\r\n this.backToOverview();\r\n }\r\n };\r\n\r\n this.getNavigationHeaderLabel = () => {\r\n if (this.shouldReturnToSubscriptionFlow()) {\r\n return this.createSubscriptionFlowLabel();\r\n }\r\n return this.d('SubPageBackButton');\r\n };\r\n\r\n },\r\n\r\n view: function (controller) {\r\n\r\n // Variables:\r\n var d = controller.d;\r\n\r\n // Loading:\r\n if (controller.loading() || !controller.model()) {\r\n return m('div', LoadDots({\r\n size: 'half-height',\r\n text: controller.d('LoadingText')\r\n }));\r\n }\r\n\r\n var cards = controller.model().fields.CardsList();\r\n var primaryCards = cards.filter(function (card) {\r\n return card.isPrimaryCard;\r\n });\r\n var additionalCards = cards.filter(function (card) {\r\n return !card.isPrimaryCard;\r\n });\r\n\r\n // cards[0].CardExpirationDate.Expired = true;\r\n var nocards = !cards || cards.length === 0;\r\n\r\n // View:\r\n return m('div', {\r\n class: 'js-ctrl-cards ctrl-cards',\r\n 'data-uitest-id': 'pam-myPage-cards'\r\n }, [\r\n NavigationHeader(controller.handleNavigationHeader, false, controller.getNavigationHeaderLabel()),\r\n m('div', {\r\n class: 'step1'\r\n }, [\r\n m('.pam-page__content', [\r\n cards.length >= controller.maxNumberOfCreditCards() ? m('.cards-alert-wrapper', [controller.alert('Alerts/MaxAmountOfCreditCardsReached/')]) : null,\r\n InfoRibbon(controller.servererror(), {\r\n type: 'error',\r\n class: [\r\n 'mypage-view__infobox',\r\n 'js-ServerError',\r\n (controller.servererror() !== '' ? 'is-visible' : '')\r\n ].join(' ')\r\n }),\r\n m('div', [\r\n m('h1.pam-view__headline', d('ChangeCards/Headline')),\r\n m('p.pam-view__headline--sub', d('ChangeCards/SubHeadline')),\r\n DS.Config.CONTEXT === 'DLO' ? m('p.pam-view__headline--sub', m.trust(d('ChangeCards/DloDescription', { mySubscriptionsUrl: controller.mySubscriptionsUrl }))) : null,\r\n nocards ? InfoRibbon(d('ChangeCards/NoCards'), {\r\n type: 'info',\r\n class: 'is-visible'\r\n }) : null,\r\n m('.cards-container', [\r\n primaryCards.length > 0 ? m('p.cards-primary-header', d('ChangeCards/PrimaryCard')) : null,\r\n m('.cards', { config: controller.onStepRendered }, [primaryCards.map(function (card) {\r\n return new Card({\r\n card: card,\r\n controller: controller,\r\n checkForSubscription: true,\r\n canDelete: !card.isAssociatedWithSubscription,\r\n expiredLabel: controller.d('ExpiredLabel')\r\n });\r\n })\r\n ]),\r\n ]),\r\n m('.cards-container', [\r\n additionalCards.length > 0 ? m('p.cards-additional-header', d('ChangeCards/AlternativeCard')) : null,\r\n m('.cards', { config: controller.onStepRendered }, [additionalCards.map(function (card) {\r\n return new Card({\r\n card: card,\r\n controller: controller,\r\n allowPrimarySelection: true,\r\n checkForSubscription: true,\r\n canDelete: !card.isAssociatedWithSubscription,\r\n expiredLabel: controller.d('ExpiredLabel'),\r\n onclick: function () {\r\n controller.setPrimaryCard(card.cardId);\r\n }\r\n });\r\n }), cards.length < controller.maxNumberOfCreditCards()\r\n ? new Card({\r\n isEmpty: true,\r\n showCardIcons: true,\r\n newCardLabel: controller.d('NewCardLabel'),\r\n controller: controller\r\n }) : null\r\n ]),\r\n ])\r\n ]),\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageAlias', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/MyPageData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/InfoRibbon',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n], function (m, MyPageData, Utils, CustomInput, InfoRibbon, NavigationHeader, Button, LoadDots) {\r\n\r\n var root = {\r\n controller: function (args) {\r\n\r\n var self = this;\r\n\r\n self.d = args.d;\r\n self.model = args.model;\r\n self.initialProps = args.initialProps;\r\n self.allowSetAlias = args.allowSetAlias;\r\n self.hasReturnUrl = Utils.getParameter('returnUrl') !== null;\r\n var isSaved = false;\r\n\r\n self.stepFields = ['Alias'];\r\n\r\n self.submitLoading = m.prop(false);\r\n\r\n if (!self.allowSetAlias()) {\r\n window.location.href = decodeURIComponent(Utils.getParameter('returnUrl')) || '';\r\n return;\r\n }\r\n\r\n if (self.model()) {\r\n self.model().clearErrors();\r\n }\r\n\r\n self.submit = function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n self.submitLoading(true);\r\n\r\n self.model().validate(self.stepFields, true).then(function () {\r\n if (!self.model().getStepState(self.stepFields).state) {\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n return;\r\n }\r\n self.save();\r\n });\r\n };\r\n\r\n self.onunload = function () {\r\n if (!isSaved) {\r\n self.model().fields.Alias(null);\r\n }\r\n };\r\n\r\n self.save = function () {\r\n MyPageData.setData('UpdateAlias', self.model().fields.Alias()).then(function (response) {\r\n if (!response.OperationSuccess) {\r\n self.model().fields.Alias.errorList([response.ErrorMessage]);\r\n self.submitLoading(false);\r\n m.redraw(true);\r\n Utils.scrollToError();\r\n return;\r\n } else {\r\n isSaved = true;\r\n }\r\n\r\n args.receiptData.assign({ title: response.Headline, uiTestId: 'pam-myPage-alias-receipt' });\r\n m.route('/receipt');\r\n }, function () {\r\n self.submitLoading(false);\r\n m.redraw();\r\n });\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n\r\n if (e.keyCode == 13) {\r\n self.submit(e);\r\n }\r\n };\r\n },\r\n view: function (controller) {\r\n var d = controller.d;\r\n var model = controller.model();\r\n\r\n if (!model) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-myPage-alias'\r\n }, [\r\n m('.js-ctrl-alias ctrl-alias', [\r\n NavigationHeader('/', true, d('SubPageBackButton')),\r\n m('div', {\r\n class: 'step1'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('h1', d('ChangeAlias/Headline')),\r\n // We use returnUrl to determine if GameVertical has requested the Set Alias page\r\n m('p.pam-view__headline--sub', controller.hasReturnUrl ?\r\n d('ChangeAlias/SubHeadlineGameVertical') :\r\n d('ChangeAlias/SubHeadline')),\r\n m('.pam-view__input', [\r\n m(CustomInput, {\r\n name: 'currentalias',\r\n model: model.fields['Alias'],\r\n align: 'center',\r\n placeholder: d('ChangeAlias/AliasLabel'),\r\n disabled: m.prop(controller.userHasAlias),\r\n helptext: d('ChangeAlias/HelpText'),\r\n onkeydown: controller.checkEnter,\r\n uiTestId: 'pam-myPage-alias-inputAlias'\r\n }),\r\n ]),\r\n m('.pam-view__input__info', [\r\n d('ChangeAlias/AliasInfoText')\r\n ])\r\n ])\r\n ]),\r\n InfoRibbon(m.trust(d('ChangeAlias/ErrorMessages/FieldNotValid')), {\r\n type: 'error',\r\n class: [\r\n 'mypage-view__infobox',\r\n 'js-FieldNotValid',\r\n (controller.userHasAlias) ? 'is-visible' : ''\r\n ].join(' ')\r\n }),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: d('ChangeAlias/SubmitChanges') },\r\n loading: controller.submitLoading(),\r\n onclick: controller.submit,\r\n onkeydown: controller.checkEnter\r\n })\r\n ])\r\n ]),\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPagePhone', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/MyPageData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, Utils, Dictionary, MyPageData, CustomInput, NavigationHeader, Button, LoadDots, Ensighten) {\r\n\r\n var root = {\r\n controller: function (args) {\r\n var self = this;\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/MyPage/' });\r\n self.model = args.model;\r\n self.initialProps = args.initialProps;\r\n self.stepFields = ['Phonenumber'];\r\n\r\n var isSaved = false;\r\n\r\n this.submitLoading = m.prop(false);\r\n\r\n Ensighten.pushHashAsVirtualPage('telefonnummer');\r\n\r\n if (self.model()) {\r\n self.model().clearErrors();\r\n }\r\n\r\n self.submit = function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n self.submitLoading(true);\r\n\r\n if (self.model().fields.Phonenumber() == self.initialProps().fields.Phonenumber()) {\r\n m.route('/');\r\n return;\r\n }\r\n\r\n self.model().validate(self.stepFields, true).then(function () {\r\n if (!self.model().getStepState(self.stepFields).state) {\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n return;\r\n }\r\n self.save();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n self.onunload = function () {\r\n if (!isSaved) {\r\n self.model().fields.Phonenumber(self.initialProps().fields.Phonenumber());\r\n }\r\n };\r\n\r\n self.save = function () {\r\n MyPageData.setData('UpdatePhone', self.model().fields.Phonenumber()).then(function (response) {\r\n if (!response.OperationSuccess) {\r\n self.model().fields.Phonenumber.errorList([response.ErrorMessage]);\r\n self.submitLoading(false);\r\n m.redraw(true);\r\n Utils.scrollToError();\r\n return;\r\n } else {\r\n isSaved = true;\r\n }\r\n\r\n args.receiptData.assign({ title: response.Headline, uiTestId: 'pam-myPage-phone-receipt' });\r\n m.route('/receipt');\r\n }.bind(this));\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n\r\n if (e.keyCode == 13) {\r\n self.submit(e);\r\n }\r\n };\r\n\r\n },\r\n\r\n view: function (controller) {\r\n var model = controller.model;\r\n var d = controller.d;\r\n\r\n if (!model()) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-myPage-phone'\r\n }, [\r\n m('.js-ctrl-phone ctrl-phone', [\r\n NavigationHeader('/', true, d('SubPageBackButton')),\r\n m('div', {\r\n class: 'step1'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('.pam-view__headline-container', [\r\n m('h1.pam-view__headline', d('ChangePhoneNumber/Headline')),\r\n m('p.pam-view__headline--sub', d('ChangePhoneNumber/SubHeadline'))\r\n ]),\r\n m('.pam-view__input', [\r\n m(CustomInput, {\r\n name: 'currentphone',\r\n model: model().fields['Phonenumber'],\r\n type: 'tel',\r\n align: 'center',\r\n placeholder: d('ChangePhoneNumber/PhonenumberLabel'),\r\n helptext: d('ChangePhoneNumber/HelpText'),\r\n onkeydown: controller.checkEnter,\r\n onblur: function () {\r\n model().fields.Phonenumber(model().fields.Phonenumber().replace(/ /g, ''));\r\n },\r\n uiTestId: 'pam-myPage-phone-inputPhone'\r\n }),\r\n ]),\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: d('ChangePhoneNumber/SubmitChanges') },\r\n loading: controller.submitLoading(),\r\n onclick: controller.submit,\r\n onkeydown: controller.checkEnter\r\n })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageEmail', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/MyPageData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, Utils, Dictionary, MyPageData, CustomInput, NavigationHeader, Button, LoadDots, Ensighten) {\r\n\r\n var root = {\r\n controller: function (args) {\r\n\r\n var self = this;\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/MyPage/' });\r\n self.model = args.model;\r\n self.initialProps = args.initialProps;\r\n self.stepFields = ['Email'];\r\n var isSaved = false;\r\n\r\n self.submitLoading = m.prop(false);\r\n\r\n Ensighten.pushHashAsVirtualPage('e_mail');\r\n\r\n if (self.model()) {\r\n self.model().clearErrors();\r\n }\r\n\r\n self.submit = function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n self.submitLoading(true);\r\n\r\n if (self.model().fields.Email().toLowerCase() == self.initialProps().fields.Email().toLowerCase()) {\r\n m.route('/');\r\n return;\r\n }\r\n\r\n self.model().validate(self.stepFields, true).then(function () {\r\n if (!self.model().getStepState(self.stepFields).state) {\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n return;\r\n }\r\n self.save();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n self.onunload = function () {\r\n if (!isSaved) {\r\n self.model().fields.Email(self.initialProps().fields.Email());\r\n }\r\n };\r\n\r\n self.save = function () {\r\n MyPageData.setData('UpdateEmail', this.model().fields.Email()).then(function (response) {\r\n if (!response.OperationSuccess) {\r\n self.model().fields.Email.errorList([response.ErrorMessage]);\r\n self.submitLoading(false);\r\n m.redraw(true);\r\n Utils.scrollToError();\r\n return;\r\n } else {\r\n isSaved = true;\r\n }\r\n\r\n args.receiptData.assign({\r\n title: response.Headline,\r\n uiTestId: 'pam-myPage-email-receipt'\r\n });\r\n m.route('/receipt');\r\n }.bind(this));\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n if (e.keyCode == 13) {\r\n self.submit(e);\r\n }\r\n };\r\n\r\n },\r\n\r\n view: function (controller) {\r\n var d = controller.d;\r\n var model = controller.model;\r\n\r\n if (!model()) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-myPage-email'\r\n }, [\r\n m('.js-ctrl-email ctrl-email', [\r\n NavigationHeader('/', true, d('SubPageBackButton')),\r\n m('div', {\r\n class: 'step1'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('h1.pam-view__headline', d('ChangeEmail/Headline')),\r\n m('p.pam-view__headline--sub', d('ChangeEmail/SubHeadline')),\r\n m('.pam-view__input', [\r\n m(CustomInput, {\r\n name: 'currentemail',\r\n model: model().fields['Email'],\r\n align: 'center',\r\n placeholder: d('ChangeEmail/EmailLabel'),\r\n helptext: d('ChangeEmail/HelpText'),\r\n onkeydown: controller.checkEnter,\r\n uiTestId: 'pam-myPage-email-inputEmail'\r\n })\r\n ]),\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: d('ChangeEmail/SubmitChanges') },\r\n loading: controller.submitLoading(),\r\n onclick: controller.submit,\r\n onkeydown: controller.checkEnter\r\n })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPagePassword', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/MyPageData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog'\r\n], function (m, Utils, Dictionary, MyPageData, CustomInput, NavigationHeader, LoadDots, Button, Ensighten, Overlay, ModalDialog) {\r\n\r\n var root = {\r\n controller: function (args) {\r\n var self = this;\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/MyPage/' });\r\n self.changePassword = !!m.route.param('change-password');\r\n self.isPromptShowing = false;\r\n self.returnUrl = m.route.param('returnUrl') || m.route.param('pageUrl') || Utils.getParameter('returnUrl');\r\n self.model = args.model;\r\n self.stepFields = self.changePassword ? ['Password', 'PasswordRepeat'] : ['PasswordCurrent', 'Password', 'PasswordRepeat'];\r\n self.changePasswordPromptText = args.changePasswordRequiredPopup;\r\n self.userObj = {\r\n userName: m.route.param('username'),\r\n firstName: m.route.param('firstname'),\r\n lastName: m.route.param('lastname'),\r\n };\r\n\r\n self.submitLoading = m.prop(false);\r\n\r\n if (self.model()) {\r\n self.model().clearErrors();\r\n\r\n self.model().fields.PasswordCurrent('');\r\n self.model().fields.Password('');\r\n self.model().fields.PasswordRepeat('');\r\n }\r\n\r\n Ensighten.pushHashAsVirtualPage('adgangskode');\r\n\r\n self.setTrackingInfo = function (label) {\r\n sessionStorage.setItem('DS_ENSIGHTEN_CROSS_SITE_TRACKING', JSON.stringify({\r\n trackingType: 'gaEvent',\r\n action: 'adgangskode_reset',\r\n category: 'prompt',\r\n label: label\r\n }));\r\n };\r\n\r\n self.changePasswordPrompt = function () {\r\n if (!self.userObj.userName) {\r\n self.userObj.userName = self.model().fields.UserName();\r\n }\r\n if (!self.userObj.firstName) {\r\n self.userObj.firstName = self.model().fields.FirstName();\r\n }\r\n if (!self.userObj.lastName) {\r\n self.userObj.lastName = self.model().fields.LastName();\r\n }\r\n\r\n var prompt = new Overlay(ModalDialog(m.trust(self.changePasswordPromptText.replace('{BRUGERNAVN}', self.userObj.userName).replace('{NAVN}', self.userObj.firstName + ' ' + self.userObj.lastName)), {\r\n buttons: [\r\n {\r\n text: self.d('ChangePassword/UpdatePasswordPrompt/Button1'),\r\n class: 'pam__button--round pam__button--white pam__button--border',\r\n color: '',\r\n uiTestId: 'pam-myPage-password-prompt-remove-flag',\r\n callback: function () {\r\n MyPageData.setData('RemoveChangePasswordFlag').then(function () {\r\n self.setTrackingInfo('nej_tak');\r\n if (self.returnUrl) {\r\n window.location.href = decodeURIComponent(self.returnUrl);\r\n } else {\r\n window.history.back();\r\n }\r\n });\r\n },\r\n },\r\n {\r\n text: self.d('ChangePassword/UpdatePasswordPrompt/Button2'),\r\n class: ['pam__button--round'],\r\n uiTestId: 'pam-myPage-password-prompt-update',\r\n callback: function (close) {\r\n Ensighten.pushGaEvent('prompt', 'adgangskode_reset', 'ja_tak');\r\n close();\r\n }\r\n }\r\n ]\r\n }));\r\n\r\n if (self.changePassword && !self.isPromptShowing && self.userObj) {\r\n prompt.show();\r\n Ensighten.pushVirtualPage('prompt', (DS.Config.CONTEXT === 'DLI' ? 'blaa-konto/' : 'roed-konto/') + 'adgangskode/prompt');\r\n self.isPromptShowing = true;\r\n setTimeout(function () {\r\n document.querySelector('.ds-modal--close').addEventListener('click', function () {\r\n self.setTrackingInfo('kryds_klik');\r\n if (self.returnUrl) {\r\n window.location.href = decodeURIComponent(self.returnUrl);\r\n } else {\r\n window.history.back();\r\n }\r\n });\r\n }, 0);\r\n }\r\n };\r\n\r\n self.submit = function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n self.submitLoading(true);\r\n\r\n self.model().validate(self.stepFields).then(function () {\r\n if (!self.model().getStepState(self.stepFields).state) {\r\n self.submitLoading(false);\r\n m.redraw();\r\n Utils.scrollToError();\r\n return;\r\n }\r\n self.save();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n self.save = function () {\r\n MyPageData.setData('UpdatePassword', self.model().fields.Password(), self.model().fields.PasswordCurrent()).then(function (response) {\r\n if (!response.OperationSuccess) {\r\n self.submitLoading(false);\r\n\r\n if (response.IsWrongCurrentPassword) {\r\n self.model().fields.PasswordCurrent.validState(false);\r\n self.model().fields.PasswordCurrent.errorList([response.ErrorMessage]);\r\n self.model().fields.PasswordCurrent('');\r\n } else {\r\n self.model().fields.Password.validState(false);\r\n self.model().fields.Password.errorList([response.ErrorMessage]);\r\n self.model().fields.Password('');\r\n\r\n self.model().fields.PasswordRepeat.validState(false);\r\n self.model().fields.PasswordRepeat('');\r\n }\r\n\r\n m.redraw(true);\r\n\r\n Utils.scrollToError();\r\n\r\n return;\r\n }\r\n\r\n args.receiptData.assign({ title: response.Headline, uiTestId: 'pam-myPage-password-receipt' });\r\n m.route('/receipt', self.returnUrl ? { returnUrl: decodeURIComponent(self.returnUrl) } : null);\r\n }.bind(this));\r\n };\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n\r\n if (e.keyCode == 13) {\r\n self.submit(e);\r\n }\r\n };\r\n },\r\n view: function (controller) {\r\n var model = controller.model;\r\n\r\n if (!model()) return m('', [LoadDots({ size: 'half-height', text: controller.d('LoadingText') })]);\r\n\r\n if (controller.changePassword && !controller.isPromptShowing && controller.userObj) {\r\n controller.changePasswordPrompt();\r\n }\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-myPage-password'\r\n }, [\r\n model() ? m('.js-ctrl-password ctrl-password', [\r\n NavigationHeader('/', true, controller.d('SubPageBackButton')),\r\n m('div', {\r\n class: 'step1'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('.pam-view__headline-container', [\r\n m('h1.pam-view__headline', controller.d('ChangePassword/Headline')),\r\n m('p.pam-view__headline--sub', !controller.changePassword ? controller.d('ChangePassword/SubHeadline') : controller.d('ChangePassword/UpdateSubHeadline'))\r\n ]),\r\n (function () {\r\n if (!model().fields.IsNemID() && !controller.changePassword) {\r\n return m('.pam-view__input', {}, [\r\n m(CustomInput, {\r\n name: 'currentpwd',\r\n id: 'currentpwd',\r\n model: model().fields['PasswordCurrent'],\r\n type: 'password',\r\n align: 'center',\r\n placeholder: controller.d('ChangePassword/PasswordCurrentLabel'),\r\n helptext: controller.d('ChangePassword/HelpText1'),\r\n onkeydown: controller.checkEnter,\r\n uiTestId: 'pam-myPage-password-currentPassword'\r\n }),\r\n ]);\r\n }\r\n })(),\r\n m('.pam-view__input', [\r\n m(CustomInput, {\r\n name: 'newpwd',\r\n id: 'newpwd',\r\n model: model().fields['Password'],\r\n type: 'password',\r\n align: 'center',\r\n placeholder: controller.d('ChangePassword/PasswordLabel'),\r\n helptext: controller.d('ChangePassword/HelpText2'),\r\n onkeydown: controller.checkEnter,\r\n uiTestId: 'pam-myPage-password-newPassword'\r\n }),\r\n ]),\r\n m('.pam-view__input', [\r\n m(CustomInput, {\r\n name: 'repeatpwd',\r\n id: 'repeatpwd',\r\n model: model().fields['PasswordRepeat'],\r\n type: 'password',\r\n align: 'center',\r\n placeholder: controller.d('ChangePassword/PasswordRepeatLabel'),\r\n helptext: controller.d('ChangePassword/HelpText3'),\r\n onkeydown: controller.checkEnter,\r\n uiTestId: 'pam-myPage-password-repeatPassword'\r\n }),\r\n m('.pam-view__input__info', [\r\n m('p', controller.d('ChangePassword/PasswordRequirements'))\r\n ])\r\n ]),\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: controller.d('ChangePassword/SubmitChanges') },\r\n loading: controller.submitLoading(),\r\n onclick: controller.submit,\r\n onkeydown: controller.checkEnter\r\n })\r\n ])\r\n ])\r\n ]) : null\r\n ]);\r\n }\r\n };\r\n\r\n return root;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageOverview', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Box',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n], function (m, Dictionary, Box, LoadDots) {\r\n\r\n var root = {\r\n controller: function (args) {\r\n this.maxNumberOfCreditCards = args.maxNumberOfCreditCards;\r\n this.model = args.model;\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/MyPage/' });\r\n this.links = args.links;\r\n this.mySubscriptionsUrl = args.mySubscriptionsUrl;\r\n },\r\n view: function (controller) {\r\n var model = controller.model;\r\n var d = controller.d;\r\n if (!model()) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-myPage-overview'\r\n }, [\r\n m('.pam-page__content', [\r\n m('div', {\r\n class: ['pam-page__inner-content', 'pam-view__headline-container'].join(' ')\r\n }, [\r\n m('h1', d('Headline'))\r\n ]),\r\n\r\n document.body.classList.contains('app-web-view') && controller.links('ProfileOverview').Url ?\r\n m('.mypage-view__table-list', [\r\n m('.mypage-view__table-header', [d('ProfileOverview')]),\r\n Box({\r\n body: {\r\n items: [\r\n {\r\n visible: controller.links('ProfileOverview').Url,\r\n id: 'profileOverview',\r\n left: {\r\n text: controller.links('ProfileOverview').Text,\r\n },\r\n right: {\r\n text: m.trust(' '),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n window.location.href = controller.links('ProfileOverview').Url;\r\n },\r\n },\r\n ]\r\n }\r\n })\r\n ]) : null,\r\n\r\n m('.mypage-view__table-list', [\r\n m('.mypage-view__table-header', [d('Profileinformation')]),\r\n Box({\r\n body: {\r\n items: [\r\n {\r\n id: 'nameitem',\r\n left: {\r\n text: d('Fullname'),\r\n },\r\n right: {\r\n text: model().fields.FullName(),\r\n template: function (item) {\r\n return m('.box-item__right.extra-padding', [\r\n m('h3.small', item.text),\r\n ]);\r\n }\r\n },\r\n arrow: false,\r\n },\r\n {\r\n id: 'usernameitem',\r\n left: {\r\n text: d('Username'),\r\n },\r\n right: {\r\n text: model().fields.UserName(),\r\n template: function (item) {\r\n return m('.box-item__right.extra-padding', [\r\n m('h3.small', item.text),\r\n ]);\r\n }\r\n },\r\n arrow: false,\r\n },\r\n {\r\n id: 'passworditem',\r\n left: {\r\n text: d('Password'),\r\n },\r\n right: {\r\n text: '●●●●●●●●',\r\n },\r\n arrow: true,\r\n callback: function () {\r\n m.route('/password');\r\n },\r\n },\r\n {\r\n id: 'emailitem',\r\n left: {\r\n text: d('Email'),\r\n },\r\n right: {\r\n text: model().fields.Email(),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n m.route('/email');\r\n },\r\n },\r\n {\r\n id: 'phoneinput',\r\n left: {\r\n text: d('Phonenumber'),\r\n },\r\n right: {\r\n text: model().fields.Phonenumber(),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n m.route('/phone');\r\n },\r\n },\r\n {\r\n id: 'aliasitem',\r\n left: {\r\n text: d('Alias'),\r\n },\r\n right: {\r\n text: model().fields.Alias(),\r\n template: function (item) {\r\n return m('.box-item__right', {\r\n class: model().fields.Alias() ? 'extra-padding' : ''\r\n }, [\r\n m('h3.small', model().fields.Alias() ? item.text : d('AliasPlaceholder')),\r\n ]);\r\n }\r\n },\r\n callback: !model().fields.Alias() ? function () {\r\n if (!model().fields.Alias()) m.route('/alias');\r\n } : null,\r\n }\r\n ],\r\n template: {\r\n left: function (item) {\r\n return m('.box-item__left', [\r\n m('h3.bold', item.text),\r\n ]);\r\n },\r\n right: function (item) {\r\n return m('.box-item__right', [\r\n m('h3.small', item.text),\r\n ]);\r\n }\r\n }\r\n\r\n },\r\n\r\n\r\n })\r\n ]),\r\n\r\n m('.mypage-view__table-list', [\r\n m('.mypage-view__table-header', [d('PaymentInformation')]),\r\n DS.Config.CONTEXT === 'DLO' ? m('.mypage-view__table-description', m.trust(d('PaymentInformationDloDescription', { mySubscriptionsUrl: controller.mySubscriptionsUrl }))) : null,\r\n Box({\r\n body: {\r\n items: [\r\n {\r\n id: 'cardsitem',\r\n marking: function () {\r\n if (model().fields.CardsList() && model().fields.CardsList().length >= controller.maxNumberOfCreditCards) {\r\n return {\r\n show: true,\r\n markingType: 'warning'\r\n };\r\n }\r\n return {};\r\n },\r\n left: {\r\n text: d('Cards'),\r\n },\r\n right: {\r\n text: model().fields.CardsList() && model().fields.CardsList().length > 0 ?\r\n model().fields.CardsList().length + ' ' + d('RegisteredCards') : d('NoRegisteredCards')\r\n },\r\n arrow: true,\r\n callback: function () {\r\n m.route('/cards');\r\n },\r\n },\r\n {\r\n id: 'accountitem',\r\n left: {\r\n text: d('Account'),\r\n },\r\n right: {\r\n text: m.trust(' '),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n m.route('/account');\r\n },\r\n },\r\n ],\r\n template: {\r\n left: function (item) {\r\n return m('.box-item__left' + (item.marking ? ' box-item__left--marking' : ''), [\r\n m('h3.bold', item.text)\r\n ]);\r\n },\r\n right: function (item) {\r\n return m('.box-item__right', [\r\n m('h3.small', item.text),\r\n ]);\r\n }\r\n }\r\n },\r\n })\r\n ]),\r\n\r\n document.body.classList.contains('app-web-view') ?\r\n m('.mypage-view__table-list', [\r\n m('.mypage-view__table-header', [d('SettingsHeader')]),\r\n Box({\r\n body: {\r\n items: [\r\n {\r\n visible: controller.links('NewsAndWinnerMessages').Url,\r\n id: 'newsAndWinnerMessages',\r\n left: {\r\n text: controller.links('NewsAndWinnerMessages').Text,\r\n },\r\n right: {\r\n text: m.trust(' '),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n window.location.href = controller.links('NewsAndWinnerMessages').Url;\r\n },\r\n },\r\n {\r\n visible: controller.links('DepositLimits').Url,\r\n id: 'limits',\r\n left: {\r\n text: d('SetLimits'),\r\n },\r\n right: {\r\n text: m.trust(' '),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n window.location.href = controller.links('DepositLimits').Url;\r\n },\r\n },\r\n {\r\n visible: controller.links('WagerLimits').Url,\r\n id: 'wagerLimits',\r\n left: {\r\n text: d('SetWagerLimits'),\r\n },\r\n right: {\r\n text: m.trust(' '),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n window.location.href = controller.links('WagerLimits').Url;\r\n },\r\n },\r\n {\r\n visible: controller.links('BlockOrClose').Url,\r\n id: 'permissions',\r\n left: {\r\n text: d('AccountPermission'),\r\n },\r\n right: {\r\n text: m.trust(' '),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n window.location.href = controller.links('BlockOrClose').Url;\r\n },\r\n },\r\n {\r\n visible: controller.links('UploadDocuments').Url,\r\n id: 'uploadDocuments',\r\n left: {\r\n text: d('UploadDocuments'),\r\n },\r\n right: {\r\n text: m.trust(' '),\r\n },\r\n arrow: true,\r\n callback: function () {\r\n window.location.href = controller.links('UploadDocuments').Url;\r\n },\r\n },\r\n ],\r\n template: {\r\n left: function (item) {\r\n return m('.box-item__left', [\r\n m('h3.bold', item.text),\r\n ]);\r\n },\r\n right: function (item) {\r\n return m('.box-item__right', [\r\n m('h3.small', item.text),\r\n ]);\r\n }\r\n }\r\n },\r\n })\r\n ]) : '',\r\n ])\r\n ]);\r\n }\r\n };\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/AmountLimitInput', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n], function (m) {\r\n 'use strict';\r\n\r\n var AmountLimitInput = {\r\n\r\n controller: function (options) {\r\n\r\n var self = this;\r\n\r\n /*\r\n The model must be an m.prop() with some added, optional properties: 1) .validState - a\r\n method returning whether the input is valid, and 2) errorList - a list of strings (m.prop)\r\n describing the validation errors, if any.\r\n */\r\n self.options = {\r\n model: m.prop(''),\r\n onchange: null,\r\n validate: null,\r\n onkeyup: null,\r\n type: 'number',\r\n class: m.prop(''),\r\n id: '',\r\n name: '',\r\n disabled: m.prop(false),\r\n status: m.prop(''),\r\n setfocus: m.prop(false),\r\n isOperator: m.prop(false),\r\n ...options\r\n };\r\n\r\n self.model = self.options.model;\r\n\r\n self.formatInputValue = function (input) {\r\n // Only allow digits and discard all other values. SG does not support decimal limits.\r\n input.value = input.value.replace(/\\D+/g, '');\r\n // Strip leading zeros from input field\r\n input.value = input.value.match(/\\d+/g) ? String(parseInt(input.value, 10)) : input.value;\r\n return input.value;\r\n };\r\n\r\n self.oninput = function (e) {\r\n self.model(self.formatInputValue(e.target));\r\n // if (typeof self.model.validState !== 'undefined') { -- This is always true\r\n self.model.validState(true);\r\n self.model.errorList([]);\r\n self.options.setfocus(true);\r\n // }\r\n };\r\n },\r\n\r\n view: function (ctrl) {\r\n var options = ctrl.options;\r\n var hasError = ctrl.model.errorList && ctrl.model.errorList().length > 0;\r\n\r\n\r\n var displayNotification = function () {\r\n if (hasError) {\r\n return {\r\n // Only display first error to reduce complexity, errors is already sort by severity\r\n errorMessage: ctrl.model.errorList()[0] || ''\r\n };\r\n } else if (typeof options.status === 'function' && options.status().length > 0) {\r\n return {\r\n statusMessage: options.status()\r\n };\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n return m('div', displayNotification(), [\r\n m('input', {\r\n id: options.id,\r\n type: options.type,\r\n name: options.name,\r\n oninput: ctrl.oninput,\r\n onkeyup: options.onkeyup,\r\n value: ctrl.model(),\r\n disabled: options.disabled(),\r\n class: 'amount-limit-input__field ' + (options.class.length ? options.class : (hasError ? ' amount-limit-input__field--error' : '')),\r\n config: function (element) {\r\n if (options.setfocus() && !element.classList.contains('amount-limit-input__field--disabled')) {\r\n element.focus();\r\n element.scrollTop = element.offsetTop;\r\n options.setfocus(false);\r\n }\r\n }\r\n })\r\n ]);\r\n\r\n }\r\n\r\n };\r\n\r\n return AmountLimitInput;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Templates/ConfirmPage', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Helpers/Utils'\r\n], function (m, StepGuide, Button, Utils) {\r\n 'use strict';\r\n\r\n var ConfirmPage = function (options) {\r\n var model = {\r\n minimumAmount: options.minimumAmount,\r\n settings: options.settings || {},\r\n dictionary: options.dictionary,\r\n title: options.title || 'Bekræft dit valg',\r\n stepCurrent: options.stepCurrent,\r\n stepMax: options.stepMax,\r\n stepRoutes: options.stepRoutes,\r\n stepLabels: options.stepLabels,\r\n callback: options.callback,\r\n callback2: options.callback2,\r\n previousLocation: options.previousLocation || 'en tidligere side',\r\n redirectButtonText: options.redirectButtonText || 'Bekræft',\r\n redirectButtonText2: options.redirectButtonText2 || 'Tilbage',\r\n buttonLoading: options.buttonLoading || false,\r\n buttonLoading2: options.buttonLoading2 || false,\r\n redirectCallback: options.redirectCallback || null,\r\n uiTestId: options.uiTestId || 'amount-limit-confirm__confirmPage'\r\n };\r\n\r\n var d = options.dictionary;\r\n\r\n var notifyLabel = function (value, stored) {\r\n if ((!stored || stored < 0) || (value > 0 && value < stored) || (String(value) === String(stored))) {\r\n return d('TimeLabels/LimitActiveImmediately');\r\n } else {\r\n var current = new Date();\r\n // Lets predict when the new limit is active from\r\n if (value > 0) {\r\n return d('TimeLabels/LimitActiveTomorrow') + ' kl. ' + current.getHours() + ':' + (current.getMinutes() < 10 ? '0' + current.getMinutes() : current.getMinutes());\r\n } else {\r\n return d('TimeLabels/LimitDeletedTomorrow') + ' kl. ' + current.getHours() + ':' + (current.getMinutes() < 10 ? '0' + current.getMinutes() : current.getMinutes());\r\n }\r\n }\r\n };\r\n\r\n // Thousand separate limits for limits above 1000\r\n var separate = function (value) {\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\r\n };\r\n\r\n var limitElement = function (value, stored, text) {\r\n return m('.amount-limit-confirm__option', [\r\n m('.amount-limit-confirm__item', [\r\n m('.amount-limit-confirm__item-current', [\r\n m('.amount-limit-confirm__item-label', text),\r\n m('.amount-limit-confirm__item-value', { class: value > 0 ? 'amount-limit-confirm__item-value--currency' : 'amount-limit-confirm__item-value--removed' }, value > 0 ? separate(value) : d('LimitLabels/DeletedLimit'))\r\n ]),\r\n m('.amount-limit-confirm__item-notify', notifyLabel(value, stored))\r\n ])\r\n ]);\r\n };\r\n\r\n // If confirm page is loaded without proper data then return to root page by removing last subpage\r\n if (Object.keys(model.settings).length === 0 && model.settings.constructor === Object) {\r\n var url = window.location.href;\r\n window.location.replace(url.substring(0, url.lastIndexOf('/') + 1));\r\n return;\r\n }\r\n\r\n return m('.amount-limit-confirm__content', {\r\n 'data-uitest-id': model.uiTestId\r\n }, [\r\n model.stepCurrent ? StepGuide(model.stepCurrent, model.stepMax, model.stepRoutes(), model.stepLabels()) : null,\r\n m('.amount-limit-confirm__content-inner', [\r\n m('h1', model.title),\r\n m('.amount-limit-confirm__limit-options', [\r\n model.settings.MaxDaily ? limitElement(model.settings.MaxDaily, model.settings.SavedMaxDaily, d('LimitLabels/NewDailyLimit')) : null,\r\n model.settings.MaxWeekly ? limitElement(model.settings.MaxWeekly, model.settings.SavedMaxWeekly, d('LimitLabels/NewWeeklyLimit')) : null,\r\n model.settings.MaxMonthly ? limitElement(model.settings.MaxMonthly, model.settings.SavedMaxMonthly, d('LimitLabels/NewMonthlyLimit')) : null\r\n ]),\r\n Utils.showLimitWarning(model) && d(Utils.showLimitWarning(model)).length > 0 ?\r\n m('.amount-limit-confirm__limit-warning', [\r\n m('p', m.trust(d(Utils.showLimitWarning(model), { VALUE: model.minimumAmount }))),\r\n ]) : null,\r\n d('Description/ConfirmAbstract').length > 0 ? m('.amount-limit-confirm__abstract', [\r\n m('p', m.trust(d('Description/ConfirmAbstract')))\r\n ]) : null,\r\n m('.pam__button-container', [\r\n m(Button, {\r\n text: { default: model.redirectButtonText },\r\n loading: model.buttonLoading,\r\n id: 'leftbutton',\r\n onclick: function (e) {\r\n e.preventDefault();\r\n model.callback();\r\n }\r\n }),\r\n model.redirectButtonText2 ?\r\n m(Button, {\r\n text: { default: model.redirectButtonText2 },\r\n loading: model.buttonLoading2,\r\n id: 'rightbutton',\r\n classes: { default: 'pam__button pam__button--blue' },\r\n onclick: function (e) {\r\n e.preventDefault();\r\n model.callback2();\r\n }\r\n }) : null\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n return ConfirmPage;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Templates/AmountLimit', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/AmountLimitInput'\r\n], function (m, Dictionary, Utils, AmountLimitInput) {\r\n\r\n var AmountLimit = function (controller, limit) {\r\n\r\n var d = Dictionary.get.bind({ prefix: 'PlayerProfile/DepositLimits/' });\r\n\r\n var activateLimit = function () {\r\n limit.isActive(true);\r\n limit.isNew(true);\r\n };\r\n\r\n var createLimit = function () {\r\n limit.isNew(true);\r\n limit.isEdit(true);\r\n limit.isReverting(true);\r\n limit.focus(true);\r\n };\r\n\r\n var clear = function () {\r\n limit.isEdit(true);\r\n limit.isReverting(true);\r\n };\r\n\r\n var discardChanges = function () {\r\n limit.isEdit(false);\r\n limit.isReverting(false);\r\n limit.model(limit.storedValue());\r\n limit.model.validState(true);\r\n limit.model.errorList([]);\r\n if (limit.isDeleting()) {\r\n limit.isNew(false);\r\n }\r\n };\r\n\r\n var deleteLimit = function () {\r\n if (limit.storedValue() === null) {\r\n limit.isActive(false);\r\n limit.isNew(false);\r\n limit.model.validState(true);\r\n limit.model.errorList([]);\r\n limit.model('');\r\n } else {\r\n if (limit.model() > 0 || limit.storedValue() > 0) {\r\n limit.model('');\r\n if (limit.isPending()) {\r\n limit.isEdit(true);\r\n limit.focus(true);\r\n limit.isReverting(true);\r\n }\r\n controller.submit();\r\n } else {\r\n limit.isActive(false);\r\n }\r\n }\r\n };\r\n\r\n var onKeyUp = function (event) {\r\n if (event.which === 13 || event.keyCode === 13) {\r\n controller.submit();\r\n }\r\n };\r\n\r\n const showDeleteLimit = () => {\r\n\r\n // Don't show delete link if limit has been changed, but not yet been activated.\r\n if (limit.plannedAt() && limit.plannedValue()) {\r\n return false;\r\n }\r\n\r\n const limitIsDeletable = limit.canDelete() && !limit.isDeleting();\r\n const limitIsNotUpdating = !limit.isPending() && !limit.isDeleting() && !limit.isEdit();\r\n const limitIsNotSetByOperator = !limit.isOperator() && limit.model();\r\n return (limitIsDeletable || limitIsNotUpdating) && (limitIsNotSetByOperator || limit.isOperatorButLoweredByUser());\r\n };\r\n\r\n return m('.amount-limits__option', [\r\n limit.model() > 0 || limit.isActive() || limit.isOperator() ? m('.amount-limits__item', [\r\n m('.amount-limits__item-header', [\r\n limit.itemLabel,\r\n m('span', { class: 'amount-limits__item-header--period' }, limit.periodLabel)\r\n ]),\r\n !limit.isEdit() ? m('.amount-limits__item-current', [\r\n m('.amount-limits__item-status', [\r\n m('.amount-limits__item-label', (limit.isActive() && !limit.isNew()) || limit.isDeleting() ? limit.currentLabel : limit.createLabel),\r\n limit.isPending() && !limit.isDeleting() && !limit.isEdit() ? m('.amount-limits__item-expiry', d('TimeLabels/LimitStatusExpiresAt') + Utils.formatDateShort(limit.plannedAt())) : '',\r\n limit.isDeleting() && !limit.isEdit() ? m('.amount-limits__item-expiry', d('TimeLabels/LimitStatusRemovesAt') + Utils.formatDateShort(limit.plannedAt())) : ''\r\n ]),\r\n m(AmountLimitInput, {\r\n id: limit.idPrefix + 'Current',\r\n model: limit.model,\r\n class: limit.isPending() || limit.isDeleting() ? 'amount-limit-input__field--disabled' : '',\r\n disabled: m.prop(limit.isPending()),\r\n onkeyup: onKeyUp,\r\n status: limit.isPending() || limit.isDeleting() ? m.prop(limit.helpStatusLabel) : '',\r\n setfocus: m.prop(limit.isNew() || (limit.isActive() && (limit.model() <= 0))),\r\n isOperator: limit.isOperator,\r\n }),\r\n m('span', { class: 'amount-limits__item-input--currency' }, ' kr.'),\r\n showDeleteLimit() ? m('.amount-limits__item-clear', { onclick: deleteLimit, id: (limit.idPrefix + 'DeleteLink') }, 'Slet') : '',\r\n ]) : '',\r\n limit.isPending() && !limit.isNew() && !limit.isEdit() ? m('.amount-limits__item-pending', [\r\n m('.amount-limits__item-status', [\r\n m('.amount-limits__item-label', limit.newLimit),\r\n limit.isPending() && !limit.isDeleting() && !limit.isEdit() ? m('.amount-limits__item-activation', d('TimeLabels/LimitStatusBeginsAt') + Utils.formatDateShort(limit.plannedAt())) : ''\r\n ]),\r\n m(AmountLimitInput, {\r\n id: limit.idPrefix + 'Pending',\r\n model: limit.planned,\r\n class: 'amount-limit-input__field--disabled',\r\n disabled: m.prop(true),\r\n setfocus: limit.focus\r\n }),\r\n m('span', { class: 'amount-limits__item-input--currency' }, ' kr.'),\r\n m('.amount-limits__item-clear', { onclick: deleteLimit }, '')\r\n ]) : '',\r\n limit.isEdit() ? m('.amount-limits__item-new', [\r\n m('.amount-limits__item-status', [\r\n m('.amount-limits__item-label', limit.newLimit)\r\n ]),\r\n m(AmountLimitInput, {\r\n id: limit.id + 'New',\r\n model: limit.model,\r\n class: '',\r\n onkeyup: onKeyUp,\r\n disabled: m.prop(false),\r\n setfocus: m.prop(limit.isNew)\r\n }),\r\n m('span', { class: 'amount-limits__item-input--currency' }, ' kr.'),\r\n m('.amount-limits__item-clear', { onclick: deleteLimit, id: (limit.idPrefix + 'DeleteLink') }, limit.canDelete() && !limit.isDeleting() ? 'Slet' : '')\r\n ]) : '',\r\n limit.isDeleting() && !limit.isNew() ? m('.amount-limits__label .amount-limits__label--addition', { onclick: createLimit, id: (limit.idPrefix + 'AddLink') }, [\r\n limit.addNewLabel\r\n ]) : '',\r\n limit.isPending() && !limit.isNew() && !limit.isEdit() ? m('.amount-limits__label .amount-limits__label--addition', { onclick: clear, id: (limit.idPrefix + 'ClearLink') }, [\r\n limit.changeLabel\r\n ]) : '',\r\n limit.isEdit() ? m('.amount-limits__label .amount-limits__label--addition', { onclick: discardChanges, id: (limit.idPrefix + 'DiscardLink') }, [\r\n 'Fortryd'\r\n ]) : '',\r\n limit.isOperator() ? m('.amount-limits__operator-notice', m.trust(limit.operatorLabel)) : null,\r\n ]) :\r\n m('.amount-limits__label .amount-limits__label--prefix', { onclick: activateLimit, id: (limit.idPrefix + 'AddLink') }, [\r\n limit.addLabel,\r\n limit.othersActive() || limit.othersIsNew() ? m('span', { class: 'amount-limits__label--optional' }, limit.optionalLabel) : ''\r\n ])\r\n ]);\r\n };\r\n\r\n return AmountLimit;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/SelectLimitStep0', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide'\r\n], function (m, StepGuide) {\r\n 'use strict';\r\n\r\n var root = {\r\n controller: function (controller) {\r\n\r\n var self = this;\r\n self.model = controller.model;\r\n self.limits = controller.limits;\r\n self.d = controller.d;\r\n self.stepMax = controller.stepMax;\r\n self.stepRoutes = controller.stepRoutes;\r\n self.stepLabels = controller.stepLabels;\r\n\r\n self.select = function (limit) {\r\n // Clear any previous validations\r\n limit.model.errorList([]);\r\n\r\n // Store the newly selected limit as the active one\r\n controller.selectedLimit(limit);\r\n controller.proceed();\r\n }.bind(this);\r\n },\r\n\r\n view: function (controller) {\r\n var d = controller.d;\r\n\r\n return m('section', {\r\n class: 'pam-profile-select-limit-page',\r\n 'data-uitest-id': 'pam-playerProfile-selectLimit'\r\n }, [\r\n m('.select-limit', [\r\n m('.select-limit__content', [\r\n StepGuide(1, controller.stepMax, controller.stepRoutes(), controller.stepLabels()),\r\n m('.select-limit__content-inner', [\r\n m('h1', d('Titles/Step0')),\r\n d('Tooltips/Step0').length > 0 ? m('.select-limit__tooltip', { tooltip: d('Tooltips/Step0') }, '?') : null,\r\n d('Description/Step0').length > 0 ? m('p.abstract', m.trust(d('Description/Step0'))) : null,\r\n m('.select-limit__options', [\r\n controller.limits.map(function (limit) {\r\n return m('.select-limit__option', {\r\n onclick: function () {\r\n controller.select(limit);\r\n }\r\n }, [\r\n m('.select-limit__option-label', limit.label)\r\n ]);\r\n })\r\n ])\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/SelectLimitStep1', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/AmountLimitInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/StepGuide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button'\r\n], function (m, AmountLimitInput, StepGuide, Button) {\r\n 'use strict';\r\n\r\n var root = {\r\n controller: function (controller) {\r\n\r\n var self = this;\r\n\r\n self.model = controller.model;\r\n self.d = controller.d;\r\n self.stepMax = controller.stepMax;\r\n self.stepRoutes = controller.stepRoutes;\r\n self.stepLabels = controller.stepLabels;\r\n\r\n // If step1 is loaded without proper data then return to root page by removing last subpage\r\n if (Object.keys(controller.selectedLimit()).length === 0) {\r\n var url = window.location.href;\r\n window.location.replace(url.substring(0, url.lastIndexOf('/') + 1));\r\n }\r\n\r\n self.onKeyUp = function (event) {\r\n if (event.which === 13 || event.keyCode === 13) {\r\n controller.submit();\r\n }\r\n };\r\n\r\n self.previous = function () {\r\n m.route('/');\r\n };\r\n\r\n self.current = function () {\r\n return controller.selectedLimit();\r\n };\r\n\r\n self.submit = function () {\r\n controller.submit();\r\n };\r\n\r\n },\r\n\r\n view: function (controller) {\r\n var model = controller.model;\r\n var d = controller.d;\r\n\r\n return m('.select-limit', [\r\n m('.select-limit__content', {\r\n 'data-uitest-id': model.uiTestId\r\n }, [\r\n StepGuide(2, controller.stepMax, controller.stepRoutes(), controller.stepLabels()),\r\n m('.select-limit__content-inner', [\r\n m('h1', d('Titles/Step1')),\r\n d('Tooltips/Step1').length > 0 ? m('.select-limit__tooltip', { tooltip: d('Tooltips/Step1') }, '?') : null,\r\n d('Description/Step1').length > 0 ? m('p.abstract', m.trust(d('Description/Step1'))) : null,\r\n m('.select-limit__item', [\r\n m('.select-limit__item-header', controller.current().label),\r\n m('.select-limit__item-label', d('LimitLabels/CreateNewLimit')),\r\n m(AmountLimitInput, {\r\n model: controller.current().model,\r\n disabled: m.prop(false),\r\n onkeyup: controller.onKeyUp,\r\n setfocus: m.prop(true)\r\n }),\r\n m('span', { class: 'select-limit__item--currency' }, ' kr.')\r\n ]),\r\n m('.pam__button-container', [\r\n m(Button, {\r\n text: { default: d('Buttons/Next') },\r\n id: 'leftbutton',\r\n onclick: controller.submit\r\n }),\r\n m(Button, {\r\n text: { default: d('Buttons/Return') },\r\n id: 'rightbutton',\r\n classes: { default: 'pam__button pam__button--blue' },\r\n onclick: controller.previous\r\n })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/Confirm', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Templates/ConfirmPage'\r\n], function (m, Utils, ConfirmPage) {\r\n\r\n return {\r\n controller: function (args) {\r\n\r\n var defaultCallback = function () {\r\n window.location.href = Utils.getParameter('returnUrl') || Utils.getDefaultRedirectUrl();\r\n };\r\n\r\n this.options = args.options;\r\n this.callback = function () {\r\n if (typeof this.options().callback === 'function') {\r\n this.options().callback();\r\n } else {\r\n defaultCallback();\r\n }\r\n }.bind(this);\r\n\r\n this.loadingProps = {\r\n button: m.prop(false),\r\n button2: m.prop(false)\r\n };\r\n\r\n },\r\n view: function (controller) {\r\n\r\n var options = controller.options();\r\n\r\n return ConfirmPage({\r\n callback: function (e) {\r\n controller.loadingProps.button(true);\r\n controller.callback(e);\r\n m.redraw();\r\n },\r\n /*\r\n Increment this counter if you tried to refactor this pattern and\r\n realized it's trash, but would take immense amounts of time\r\n Current refactor attempt: 3\r\n */\r\n callback2: function (e) {\r\n controller.loadingProps.button2(true);\r\n options.callback2(e);\r\n m.redraw();\r\n },\r\n minimumAmount: options.minimumAmount,\r\n settings: options.settings,\r\n dictionary: options.dictionary,\r\n previousLocation: options.previousLocation,\r\n redirectButtonText: options.redirectButtonText,\r\n redirectButtonText2: options.redirectButtonText2,\r\n buttonLoading: controller.loadingProps.button(),\r\n buttonLoading2: controller.loadingProps.button2(),\r\n stepCurrent: options.stepCurrent,\r\n stepMax: options.stepMax,\r\n stepRoutes: options.stepRoutes,\r\n stepLabels: options.stepLabels,\r\n title: options.title,\r\n uiTestId: options.uiTestId\r\n });\r\n\r\n }\r\n };\r\n\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/ChangePasswordModel', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Data/CustomValidators',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Models/ValidationModel'\r\n], function (m, Model, customValidators, ValidationModel) {\r\n 'use strict';\r\n\r\n var ChangePasswordModel = Model('ChangePasswordModel', new ValidationModel(function (content) {\r\n\r\n var d = content.dictionary;\r\n\r\n customValidators.add();\r\n\r\n this.fields = {\r\n Password: m.prop(''),\r\n PasswordRepeat: m.prop(''),\r\n Token: m.prop('xyzabc')\r\n };\r\n\r\n this.fieldrules = {\r\n Password: function () {\r\n return {\r\n isPasswordValid: true,\r\n equality: this.fields.PasswordRepeat() ? {\r\n attribute: 'PasswordRepeat',\r\n message: d('ErrorMessages/PasswordsMustBeTheSame')\r\n } : false\r\n };\r\n }.bind(this),\r\n PasswordRepeat: function () {\r\n return {\r\n presence: {\r\n message: d('ErrorMessages/PasswordsMustBeTheSame')\r\n },\r\n equality: this.fields.Password() ? {\r\n attribute: 'Password',\r\n message: d('ErrorMessages/PasswordsMustBeTheSame')\r\n } : false\r\n };\r\n }.bind(this),\r\n };\r\n\r\n this.controls = m.prop(content || {});\r\n\r\n this.extendFields(this);\r\n\r\n this.toJSON = function () {\r\n return {\r\n controls: this.controls(),\r\n id: this.id()\r\n };\r\n };\r\n }));\r\n\r\n // Public functions:\r\n return ChangePasswordModel;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayCard/Scripts/Data/PlayCardApi',\r\n [\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request'\r\n ],\r\n function (Request) {\r\n\r\n var getPlayCard = function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/getplaycard',\r\n background: true\r\n });\r\n };\r\n\r\n var getVisualPlayCard = function () {\r\n return Request({\r\n method: 'GET',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/WebViewGetVisualPlayCard',\r\n background: true\r\n });\r\n };\r\n\r\n var orderPlayCard = function () {\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/orderplaycard',\r\n });\r\n };\r\n\r\n return {\r\n getPlayCard: getPlayCard,\r\n getVisualPlayCard: getVisualPlayCard,\r\n orderPlayCard: orderPlayCard\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/NotificationsConsents', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Data/NotificationsApi',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Templates/Toggles',\r\n], (Component, Dictionary, LoginController, Api, Toggles) => {\r\n\r\n Component('notifications-consents', [Dictionary], (m, route, settings) => {\r\n\r\n const root = {\r\n controller: function () {\r\n const consents = m.prop();\r\n const error = m.prop(false);\r\n const latestChanges = m.prop(null);\r\n const loading = m.prop(true);\r\n const isLoggedIn = m.prop(document.body.classList.contains('is-logged-in'));\r\n const d = Dictionary.get.bind({ prefix: 'NotificationsV2/' });\r\n const { isWebViewInLottoApp, webViewShowIdentifiers } = settings;\r\n\r\n const formatConsentText = (text, textActions) => {\r\n textActions.forEach((action) => {\r\n const type = action.type?.toLowerCase();\r\n if (type === 'link') {\r\n text = text.replaceAll(action.highlight, `${action.highlight}`);\r\n }\r\n if (type === 'popover') {\r\n text = text.replace(action.highlight, `${action.highlight}`);\r\n }\r\n });\r\n return text;\r\n };\r\n\r\n const addToggleToConsents = (consent) => {\r\n consent.mainConsents = consent.mainConsents.map((c) => {\r\n return { ...c, selected: m.prop(c.state === 'Accepted') };\r\n });\r\n consent.subConsents = consent.subConsents.map((c) => {\r\n return { ...c, selected: m.prop(c.state === 'Accepted') };\r\n });\r\n consent.text = formatConsentText(consent.text, consent.textActions);\r\n return consent;\r\n };\r\n\r\n const toggleFn = async ({ consent, mainConsent, subConsent, changes = [] }) => {\r\n loading(true);\r\n m.redraw();\r\n\r\n if (changes.length === 0) {\r\n let updatedState;\r\n\r\n if (mainConsent) {\r\n updatedState = !mainConsent.selected();\r\n\r\n changes.push({\r\n Id: mainConsent.id,\r\n Accepted: updatedState,\r\n });\r\n\r\n consent.subConsents?.forEach((subConsent) => {\r\n changes.push({\r\n Id: subConsent.id,\r\n Accepted: updatedState,\r\n });\r\n });\r\n\r\n }\r\n\r\n if (subConsent) {\r\n updatedState = !subConsent.selected();\r\n changes.push({\r\n Id: subConsent.id,\r\n Accepted: updatedState,\r\n });\r\n }\r\n }\r\n\r\n const didConsentUpdate = await Api.setConsent(changes).then(() => true).catch(() => false);\r\n\r\n if (didConsentUpdate) {\r\n latestChanges(null);\r\n error(false);\r\n\r\n changes.forEach((change) => {\r\n consents()?.forEach((consent) => {\r\n\r\n consent.mainConsents?.forEach((mainConsent) => {\r\n if (change.Id === mainConsent.id) {\r\n mainConsent.selected(change.Accepted);\r\n }\r\n });\r\n\r\n consent.subConsents?.forEach((subConsent) => {\r\n if (change.Id === subConsent.id) {\r\n subConsent.selected(change.Accepted);\r\n }\r\n });\r\n\r\n });\r\n });\r\n\r\n } else {\r\n latestChanges({ changes });\r\n error(true);\r\n }\r\n\r\n loading(false);\r\n m.redraw();\r\n };\r\n\r\n const retryLatestChange = async () => {\r\n error(false);\r\n loading(true);\r\n m.redraw();\r\n\r\n // Wait 500 ms to make sure the user sees \"something happening\",\r\n // instead of thinking the reload button does nothing. Purely a UX thing.\r\n setTimeout(async () => {\r\n await toggleFn(latestChanges());\r\n }, 500);\r\n };\r\n\r\n const init = async () => {\r\n loading(true);\r\n let res = await Api.getConsent().then((res) => res).catch(() => false);\r\n\r\n if (res) {\r\n if (isWebViewInLottoApp) {\r\n const identifiers = webViewShowIdentifiers.split(',').map((identifier) => identifier.trim().toLowerCase());\r\n res = res.filter((consent) => identifiers.includes(consent.identifier.trim().toLowerCase()));\r\n }\r\n consents(res.map((consent) => addToggleToConsents(consent)));\r\n } else {\r\n error(true);\r\n }\r\n\r\n loading(false);\r\n m.redraw();\r\n };\r\n\r\n if (isLoggedIn()) {\r\n init();\r\n } else {\r\n LoginController.openLogin();\r\n }\r\n\r\n return {\r\n consents,\r\n d,\r\n error,\r\n latestChanges,\r\n loading,\r\n retryLatestChange,\r\n toggleFn,\r\n };\r\n },\r\n\r\n view: (\r\n {\r\n consents,\r\n d,\r\n error,\r\n latestChanges,\r\n loading,\r\n retryLatestChange,\r\n toggleFn,\r\n }) => {\r\n\r\n if (error()) {\r\n const errorHandling = latestChanges()\r\n ? {\r\n text: d('UpdateConsentError'),\r\n fn: () => retryLatestChange(),\r\n ctaLabel: d('UpdateConsentErrorCtaLabel'),\r\n }\r\n : {\r\n text: d('LoadConsentError'),\r\n fn: () => location.reload(),\r\n ctaLabel: d('LoadConsentErrorCtaLabel'),\r\n };\r\n\r\n return m('.notifications-consents__error', [\r\n m('.notifications-consents__box-text', m.trust(errorHandling.text)),\r\n m('.notifications-consents__cta', { onclick: errorHandling.fn }, errorHandling.ctaLabel),\r\n ]);\r\n }\r\n\r\n return consents()\r\n ? m('.notifications-consents__boxes', consents().map((consent) => {\r\n const hasTitleIcon = !!consent.titleIcon;\r\n return m('.notifications-consents__box', { 'data-uitest-id': 'ConsentWithIdentifier' + consent.identifier }, [\r\n m('.notifications-consents__box-title', {\r\n 'data-uitest-id': 'ConsentTitle',\r\n class: hasTitleIcon ? 'notifications-consents__box-title--has-icon' : '',\r\n style: hasTitleIcon ? `--notifications-consents-box-title-icon: url(${consent.titleIcon})` : '',\r\n }, m.trust(consent.title)),\r\n consent.subTitle ? m('.notifications-consents__box-subtitle', { 'data-uitest-id': 'ConsentSubTitle' }, m.trust(consent.subTitle)) : '',\r\n m('.notifications-consents__toggles', m(Toggles, { consent, toggleFn, loading, error }))\r\n ]);\r\n }))\r\n : m('.notifications-consents__loading', m('.loading-spinner.loading-spinner--dark'));\r\n }\r\n };\r\n\r\n route('/', root);\r\n\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/NotificationsView', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Components/Notifications',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n], function (Component, Dictionary, Notifications, Utils, Receipt, ReceiptData, RouteSlide) {\r\n 'use strict';\r\n\r\n Component('pam-notifications', [Dictionary], function (m, ignoredRoute, ignoredSettings, ignoredProperty, element) {\r\n\r\n var d = Dictionary.get.bind({ prefix: 'Notifications/' });\r\n\r\n var receiptData = new ReceiptData({\r\n title: d('SettingsReceipt/Title'),\r\n callback: function () {\r\n Utils.getValidAppRedirectUrl();\r\n },\r\n uiTestId: 'pam-notifications-receipt'\r\n });\r\n\r\n m.route.mode = 'hash';\r\n\r\n m.route(element, '/', {\r\n '/': m.component(RouteSlide(Notifications, { level: 0 }), { dictionary: d }),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 1 }), { options: receiptData })\r\n });\r\n\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Payout', [\r\n 'Common/Framework/EventHandling/Scripts/CrossWindowEvents',\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/NumberUtils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/DataSettings',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerTransactions/Scripts/Models/PayoutModel',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Request',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Authentification/Scripts/SitecoreAuth'\r\n],\r\nfunction (CrossWindowEvents, Component, Overlay, NumberUtils, Utils, DataSettings, Dictionary, PayoutModel, Receipt, RouteSlide, ReceiptData, CustomInput, ModalDialog, Svg, Request, Button, Ensighten, LoginCache, SitecoreAuth) {\r\n\r\n // Component:\r\n Component('payout', [Dictionary, DataSettings({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetPendingPayout',\r\n name: 'Payout'\r\n })], function (m, ignoredRoute, settings, ignoredProperty, element, dependencyData) {\r\n\r\n settings = dependencyData.Payout;\r\n\r\n var receiptData = new ReceiptData();\r\n var d = Dictionary.get.bind({ prefix: 'PlayerTransactions/Payout/' });\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n var self = this;\r\n var id = Utils.getParameter('payoutId');\r\n var confirmChecksum = Utils.getParameter('confirmChecksum');\r\n this.confirmCallbackRoute = m.prop(window.location.hash === '#/callback');\r\n this.dialog = m.prop('');\r\n this.cancelPendingPayoutDialog = m.prop('');\r\n this.model = m.prop(PayoutModel.new({\r\n MaxAmount: settings.MaxAmount,\r\n MinAmount: settings.MinAmount,\r\n BankAccountType: settings.BankAccountType,\r\n AccountDisplayName: settings.AccountDisplayName,\r\n PendingPayout: settings.PendingPayoutExist,\r\n PendingPayoutAmount: settings.PendingPayoutAmount,\r\n CreatedAt: settings.CreatedAt\r\n }));\r\n\r\n this.cancelPayoutBlocked = false;\r\n this.cancelPayoutBlockedByDs = false;\r\n this.userObj = LoginCache.getUserObj();\r\n\r\n this.loadingProps = {\r\n cancelPendingPayout: m.prop(false),\r\n executePayout: m.prop(false)\r\n };\r\n\r\n this.pendingPayoutRibbon = m.prop(false);\r\n this.pendingPayoutRibbon(settings.PendingPayoutExist);\r\n\r\n const getAmountValueFromString = (amount) => Number(amount?.match(/(\\d)*(,\\d{1,2})?/)?.[0]?.replace(/,/g, '.') || 0);\r\n\r\n if (id) {\r\n var savedModel = PayoutModel.get(id);\r\n\r\n if (!savedModel) {\r\n window.location.href = window.location.origin + window.location.pathname;\r\n return;\r\n }\r\n\r\n this.model().fields.inputValue(savedModel.fields.inputValue());\r\n PayoutModel.delete(id);\r\n }\r\n\r\n Request({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/api/GetExclusions',\r\n method: 'GET',\r\n }).then(function (exclusions) {\r\n this.exclucion = exclusions.filter(function (exclusion) {\r\n return exclusion.Type === 'Withdrawalcancellation';\r\n })[0];\r\n if (this.exclucion) {\r\n this.cancelPayoutBlocked = true;\r\n if (this.exclucion.Reason !== 'requested-by-player-via-frontend') {\r\n this.cancelPayoutBlockedByDs = true;\r\n Ensighten.pushGaEvent('withdraw', 'cancel_withdraw_blocked_by_ds', 'payout');\r\n }\r\n }\r\n }.bind(this));\r\n\r\n this.cancelPendingPayout = function (close) {\r\n Ensighten.pushGaEvent('withdraw', 'annuller_udbetaling', 'fortsaet');\r\n\r\n if (this.loadingProps.cancelPendingPayout()) {\r\n return;\r\n }\r\n\r\n this.loadingProps.cancelPendingPayout(true);\r\n\r\n m.redraw(true);\r\n\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/CancelPendingTransaction'\r\n }).then(function (response) {\r\n close();\r\n\r\n self.model().clearErrors();\r\n self.pendingPayoutRibbon(false);\r\n CrossWindowEvents.fire('ds.event.balanceUpdated', {}); // initate a userinformation request\r\n\r\n receiptData.assign({\r\n title: response.Headline,\r\n description: null,\r\n redirectButtonText: response.ButtonText,\r\n callback: function () {\r\n Ensighten.pushHashAsVirtualPage('annullerer_udbetaling/kvittering');\r\n window.location.href = window.location.pathname + window.location.search;\r\n },\r\n uiTestId: 'pam-payout-receiptCancel'\r\n });\r\n m.route('/receipt');\r\n });\r\n }.bind(this);\r\n\r\n this.formatDate = function () {\r\n var date = new Date(this.model().fields.CreatedAt());\r\n return date.toLocaleDateString('da-DK') + ' kl. ' + date.toLocaleTimeString('da-DK', { hour: '2-digit', minute: '2-digit' });\r\n }.bind(this);\r\n\r\n this.showConfirmationDialog = function () {\r\n var stepFields = ['inputValue'];\r\n this.model().validate(stepFields, true).then(function () {\r\n if (this.model().getStepState(stepFields).state && !this.loadingProps.executePayout()) {\r\n const inputValue = getAmountValueFromString(this.model().fields.inputValue());\r\n const pendingPayoutAmount = Number(this.model().fields.PendingPayoutAmount() || 0);\r\n const totalPayout = inputValue + pendingPayoutAmount;\r\n let decimals = 2;\r\n\r\n if (Number.isInteger(inputValue) && Number.isInteger(pendingPayoutAmount) && Number.isInteger(totalPayout)) {\r\n decimals = 0;\r\n }\r\n\r\n var dialog = new Overlay(\r\n new ModalDialog([\r\n Svg('round_big_alert_blue', { modifiers: ['center'] }),\r\n m('h1.center', d('NewPayoutModal/Header')),\r\n m('p', d('NewPayoutModal/Text')),\r\n m('.payout-view__confirm-dialog', [\r\n m('.payout-view__confirm-dialog-item-row', [\r\n m('p.payout-view__confirm-dialog-item.payout-view__confirm-dialog-item-text', d('NewPayoutModal/NewPayout')),\r\n m('p.payout-view__confirm-dialog-item.payout-view__confirm-dialog-item-value', NumberUtils.formatCurrency(inputValue, decimals))\r\n ]),\r\n m('.payout-view__confirm-dialog-item-row', [\r\n m('p.payout-view__confirm-dialog-item.payout-view__confirm-dialog-item-text', this.formatDate()),\r\n m('p.payout-view__confirm-dialog-item.payout-view__confirm-dialog-item-value', NumberUtils.formatCurrency(pendingPayoutAmount, decimals))\r\n ]),\r\n m('.payout-view__confirm-dialog-item-row', [\r\n m('p.payout-view__confirm-dialog-item.payout-view__confirm-dialog-item-text', m.trust(d('NewPayoutModal/TotalPayout'))),\r\n m('p.payout-view__confirm-dialog-item.payout-view__confirm-dialog-item-value', NumberUtils.formatCurrency(totalPayout, decimals))\r\n ]),\r\n ])\r\n ], {\r\n closable: false,\r\n stackButtons: true,\r\n buttons: [\r\n {\r\n uiTestId: 'pam-payout-new-payout-accept',\r\n class: 'pam-button--round',\r\n text: d('NewPayoutModal/Buttons/Confirm'),\r\n callback: function (close) {\r\n this.requestToExecutePayout();\r\n Ensighten.pushGaEvent('withdraw', 'ny_udbetaling', 'foretag_ny_udbetaling');\r\n close();\r\n }.bind(this)\r\n }, {\r\n size: 'small',\r\n uiTestId: 'pam-payout-new-payout-cancel',\r\n color: 'link',\r\n text: d('NewPayoutModal/Buttons/Cancel'),\r\n callback: function (close) {\r\n Ensighten.pushGaEvent('withdraw', 'ny_udbetaling', 'annuller_ny_udbetaling');\r\n close();\r\n }\r\n }\r\n ]\r\n })\r\n );\r\n dialog.show();\r\n }\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.requestToExecutePayout = () => {\r\n SitecoreAuth.getUserObj((data) => {\r\n if (DS.Config.PAYOUT_CONFIRM_ENABLED && !data.customerInfo?.secureLoginValid) {\r\n var stepFields = ['inputValue'];\r\n this.model().validate(stepFields, true).then(() => {\r\n if (this.model().getStepState(stepFields).state && !this.loadingProps.executePayout()) {\r\n this.model().save();\r\n var returnUrl = window.location.href.split('#')[0];\r\n returnUrl = Utils.appendParameter('payoutId', this.model().id(), returnUrl);\r\n returnUrl = returnUrl + '#/callback';\r\n var newUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/goto-identity-confirm';\r\n newUrl = Utils.appendParameter('variant', 'ConfirmPayout', newUrl);\r\n newUrl = Utils.appendParameter('returnUrl', encodeURIComponent(returnUrl), newUrl);\r\n newUrl = Utils.appendParameter('cancelUrl', encodeURIComponent(window.location.href), newUrl);\r\n\r\n this.loadingProps.executePayout(true);\r\n m.redraw(true);\r\n\r\n window.location.href = newUrl;\r\n }\r\n });\r\n } else {\r\n this.executePayout();\r\n }\r\n });\r\n };\r\n\r\n this.executePayout = function () {\r\n var stepFields = ['inputValue'];\r\n this.model().validate(stepFields, true).then(function () {\r\n if (this.model().getStepState(stepFields).state && !this.loadingProps.executePayout()) {\r\n var headersObj;\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 this.loadingProps.executePayout(true);\r\n m.redraw(true);\r\n\r\n var value = getAmountValueFromString(self.model().fields.inputValue());\r\n\r\n return Request({\r\n method: 'POST',\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PayoutToBankWithAmount',\r\n data: { amount: value },\r\n headers: headersObj\r\n }).then(function (response) {\r\n Ensighten.pushGaEvent('withdraw', 'success', value.toString());\r\n Ensighten.pushHashAsVirtualPage('kvittering');\r\n CrossWindowEvents.fire('ds.event.balanceUpdated', { forceUpdate: true }); // initate a userinformation request\r\n\r\n if (DS.Config.PAYOUT_CONFIRM_ENABLED) {\r\n var identityConfirmMethod = Utils.getParameter('identityConfirmMethod');\r\n var context = DS.Config.PRETTYPREFIX.replace('/', '');\r\n\r\n Ensighten.pushGaEvent('udbetaling', 'PAM', identityConfirmMethod + '_' + context);\r\n }\r\n\r\n receiptData.assign({\r\n title: response.Headline,\r\n redirectButtonText: response.ButtonText,\r\n noCountdown: true,\r\n uiTestId: 'pam-payout-receipt',\r\n callback: function () {\r\n var returnUrl = Utils.getParameter('returnUrl');\r\n if (Utils.checkEncodeURI(returnUrl)) {\r\n returnUrl = decodeURIComponent(returnUrl);\r\n }\r\n window.location.href = returnUrl || Utils.getDefaultRedirectUrl();\r\n },\r\n });\r\n\r\n m.route('/receipt');\r\n }, function () {\r\n this.loadingProps.executePayout(false);\r\n m.redraw(true);\r\n }.bind(this));\r\n } else {\r\n Utils.scrollToError();\r\n }\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.cancelPendingPayoutDialog = function () {\r\n\r\n var dialog = new Overlay(\r\n ModalDialog([\r\n Svg('round_big_question'),\r\n m('h1', d('CancelPayoutModal/Headline', { amount: Utils.formatCurrency(Math.abs(parseFloat(self.model().fields.PendingPayoutAmount()))) })),\r\n m('p', d('CancelPayoutModal/Paragraph', { amount: Utils.formatCurrency(Math.abs(parseFloat(self.model().fields.PendingPayoutAmount()))) }))\r\n ], {\r\n buttons: [\r\n {\r\n uiTestId: 'pam-payout-abort',\r\n text: d('CancelPayoutModal/Buttons/Cancel'),\r\n callback: function (close) {\r\n Ensighten.pushGaEvent('withdraw', 'annuller_udbetaling', 'luk');\r\n close();\r\n },\r\n },\r\n {\r\n uiTestId: 'pam-payout-cancelPayout',\r\n text: d('CancelPayoutModal/Buttons/Continue'),\r\n loading: self.loadingProps.cancelPendingPayout(),\r\n callback: self.cancelPendingPayout.bind(close),\r\n }\r\n ]\r\n }),\r\n document.querySelector('.page-box')\r\n );\r\n\r\n dialog.show();\r\n\r\n setTimeout(function () {\r\n document.querySelector('.ds-modal--close.sprite-symbol').addEventListener('click', function () {\r\n Ensighten.pushGaEvent('withdraw', 'annuller_udbetaling', 'kryds');\r\n });\r\n }, 0);\r\n\r\n };\r\n\r\n this.isAccountNumber = function (value) {\r\n var output = parseInt(value.replace(/ /g, ''), 10);\r\n return !isNaN(output);\r\n };\r\n\r\n this.displayAccountName = function (bankAccountType) {\r\n switch (bankAccountType) {\r\n case 'NemKonto':\r\n return d('AbstractNemKonto');\r\n case 'BankAccount':\r\n return d('AbstractBankAccount', { account: this.model().fields.AccountDisplayName() });\r\n case 'None':\r\n return d('NoBankAccount');\r\n default:\r\n return d('UnknownBankAccountType');\r\n }\r\n }.bind(this);\r\n\r\n this.requiresMitIDConfirmation = function () {\r\n const customerInfo = LoginCache.getUserObj()?.customerInfo;\r\n if (DS.Config.PAYOUT_CONFIRM_ENABLED && !customerInfo?.secureLoginValid && !customerInfo?.isFromFaroe && !customerInfo?.isATestingAccount) {\r\n return true;\r\n }\r\n return false;\r\n }.bind(this);\r\n\r\n if (DS.Config.PAYOUT_CONFIRM_ENABLED && this.confirmCallbackRoute()) {\r\n this.executePayout();\r\n }\r\n\r\n\r\n // Redraw on new userdata, do make sure view is updated according to secureLoginValid\r\n CrossWindowEvents.subscribe('ds.event.balanceUpdated', function () {\r\n m.redraw();\r\n });\r\n CrossWindowEvents.fire('ds.event.balanceUpdated', {});\r\n },\r\n\r\n view: function (controller) {\r\n if (Object.keys(controller.userObj).length === 0) {\r\n controller.userObj = LoginCache.getUserObj();\r\n }\r\n\r\n if (controller.confirmCallbackRoute() && controller.loadingProps.executePayout()) {\r\n return m('.restrict-account-page', {\r\n 'data-uitest-id': 'pam-playerProfile-payoutCallback'\r\n }, m('.pam-page__content',\r\n m('.pam-page__inner-content',\r\n m('h1', { 'data-uitest-id': 'payoutCallback-title' }, d('ConfirmLoadingText'))\r\n )\r\n ));\r\n }\r\n\r\n const pendingPayoutAmount = controller.model().fields.PendingPayoutAmount() || 0;\r\n const pendingPayoutAmountDecimals = Number.isInteger(pendingPayoutAmount) ? 0 : 2;\r\n const maxAmount = controller.model().fields.MaxAmount();\r\n const maxAmountDecimals = Number.isInteger(maxAmount) ? 0 : 2;\r\n const payoutButtonText = m.trust(controller.requiresMitIDConfirmation() ? d('PayoutButtonConfirmMitID') : d('PayoutButton'));\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-payout'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('.pam-view__headline-container', [\r\n m('h1', d('Headline')),\r\n m('.payout-view__abstract', [\r\n m('p.payout-view__text', m.trust(d('HelperText')))\r\n ]),\r\n ]),\r\n m('.pam-page-custom-input-wrapper', [\r\n m(CustomInput, {\r\n model: controller.model().fields.inputValue,\r\n placeholder: d('AmountPlaceholder'),\r\n pattern: /^\\d+(,\\d{0,2})?/g,\r\n inlinepostfix: ' ' + d('Currency'),\r\n uiTestId: 'pam-payout-value',\r\n class: 'custom-input--classic'\r\n }),\r\n m('p.payout-view__text', { 'data-uiTest-id': 'pam-payout-maxamount' },\r\n m.trust(d('AbstractAmountAvailable', { amount: NumberUtils.formatCurrency(maxAmount, maxAmountDecimals) })))\r\n ]),\r\n\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: payoutButtonText },\r\n onclick: controller.model().fields.PendingPayout() ? controller.showConfirmationDialog : controller.requestToExecutePayout,\r\n loading: controller.loadingProps.executePayout(),\r\n uiTestId: 'pam-payout-button',\r\n class: 'pam-button--round'\r\n })\r\n ]),\r\n controller.model().fields.PendingPayout() ?\r\n m('.payout-view__pending-payout', [\r\n m('.payout-view__pending-payout-header', d('PendingPayoutHeader')),\r\n m('.payout-view__pending-payout-wrapper', [\r\n m('.payout-view__pending-payout-titles', {\r\n class: controller.cancelPayoutBlocked ? 'payout-view__pending-payout-titles--basis' : ''\r\n }, [\r\n m('.payout-view__pending-payout-item.payout-view__pending-payout-item--date', d('Date')),\r\n m('.payout-view__pending-payout-item.payout-view__pending-payout-item--type', d('Type')),\r\n m('.payout-view__pending-payout-item.payout-view__pending-payout-item--balance-wrapper',\r\n m('.payout-view__pending-payout-item--balance', d('AmountBalance'))),\r\n ]),\r\n m('.payout-view__pending-payout-payout', {\r\n class: controller.cancelPayoutBlocked ? 'payout-view__pending-payout-payout--basis' : ''\r\n }, [\r\n m('.payout-view__pending-payout-item.payout-view__pending-payout-item--date', controller.formatDate()),\r\n m('.payout-view__pending-payout-item.payout-view__pending-payout-item--type', d('TypeText')),\r\n m('.payout-view__pending-payout-item.payout-view__pending-payout-item--balance-wrapper',\r\n m('.payout-view__pending-payout-item--amount', NumberUtils.formatCurrency(pendingPayoutAmount, pendingPayoutAmountDecimals))),\r\n !controller.cancelPayoutBlocked\r\n ? m('.payout-view__pending-payout-item.payout-view__pending-payout-item--cancel', {\r\n onclick: function () {\r\n Ensighten.pushHashAsVirtualPage('annullerer_udbetaling');\r\n controller.cancelPendingPayoutDialog();\r\n },\r\n 'data-uitest-id': 'pam-payout-cancel'\r\n }, d('PendingPayoutButton'))\r\n : null,\r\n ]),\r\n ]),\r\n controller.cancelPayoutBlockedByDs\r\n ? m('.pam-view__block-explanation-wrapper.pam-view__block-explanation-wrapper--wide', [\r\n m('.pam-view__block-explanation-mark'),\r\n m('p.pam-view__block-explanation-text', d('PayoutCancellationFeatureBlockedByDs'))\r\n ])\r\n : m('p', controller.cancelPayoutBlocked ? m.trust(d('BlockPayoutIsOn')) : m.trust(d('BlockPayoutIsOff')))\r\n ]) : null\r\n ])\r\n ]),\r\n m('.pam-page__ribbon', [\r\n m('.info-ribbon info-ribbon--notice', [\r\n m('.info-ribbon__text', m.trust(d('ContactText')))\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n // Routes:\r\n m.route.mode = 'hash';\r\n\r\n m.route(element, '/', {\r\n '/': m.component(RouteSlide(root, { level: 0 })),\r\n '/callback': m.component(RouteSlide(root, { level: 0 })),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 1 }), { options: receiptData })\r\n });\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/UploadView', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Models/RegisterModel',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Upload',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData'\r\n], function (Component, Utils, Dictionary, RegisterModel, RouteSlide, Upload, Receipt, ReceiptData) {\r\n 'use strict';\r\n // this is like register step4b, but the player is logged in and texts could be different\r\n\r\n Component('upload', [Dictionary], function (m, ignoredRoute, settings) {\r\n\r\n var ctrl = function () {\r\n\r\n var self = this;\r\n self.stepMax = null;\r\n self.dictionary = Dictionary.get.bind({ prefix: 'PlayerRegister/' });\r\n\r\n self.model = m.prop(RegisterModel.new({\r\n dictionary: self.dictionary,\r\n uploadDocumentSettings: settings,\r\n }));\r\n self.receiptData = new ReceiptData({\r\n title: self.dictionary('ReceiptAlreadyRegistered/Headline'),\r\n bodyHtml: self.dictionary('ReceiptAlreadyRegistered/BodyHtml'),\r\n redirectButtonText: self.dictionary('ReceiptAlreadyRegistered/ButtonText'),\r\n callback: function () {\r\n Utils.getValidAppRedirectUrl();\r\n },\r\n noCountdown: true,\r\n uiTestId: 'pam-register-upload-receipt'\r\n });\r\n\r\n };\r\n\r\n var rootctrl = new ctrl();\r\n\r\n m.route.mode = 'hash';\r\n m.route(this.$element, '/upload-dokument', {\r\n '/upload-dokument': m.component(RouteSlide(Upload, { level: 0 }), rootctrl),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 5 }), { options: rootctrl.receiptData })\r\n });\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/RegisterView', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Models/RegisterModel',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Step1',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Step2',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Step3',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/PostLogin',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Limit',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerRegister/Scripts/Components/Upload',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData'\r\n], function (Component, DsUtils, Utils, Dictionary, RegisterModel, RouteSlide, ModalDialog, Overlay, Step1, Step2, Step3, PostLogin, Limit, Upload, Receipt, ReceiptData) {\r\n 'use strict';\r\n\r\n Component('register', [Dictionary], function (m, ignoredRoute, settings) {\r\n\r\n var ctrl = function () {\r\n var self = this;\r\n var isSubscriptionFlow = DsUtils.getParameter('sub') == 'true';\r\n var generalErrorDictionary = Dictionary.get.bind({ prefix: 'GeneralErrorHandler/' });\r\n\r\n self.stepMax = 4;\r\n\r\n self.dictionary = Dictionary.get.bind({ prefix: 'PlayerRegister/' });\r\n self.dawaBaseUrl = settings.DawaBaseUrl;\r\n\r\n this.showLoggedInDialog = function () {\r\n new Overlay(ModalDialog([\r\n m('h1', generalErrorDictionary('AlreadyLoggedIn/Headline')),\r\n m('p', generalErrorDictionary('AlreadyLoggedIn/Abstract'))\r\n ], {\r\n buttons: [{\r\n text: generalErrorDictionary('AlreadyLoggedIn/ButtonText'),\r\n callback: function () {\r\n window.location.href = document.referrer || '/';\r\n }\r\n }]\r\n })).show();\r\n };\r\n\r\n self.model = m.prop(RegisterModel.new({\r\n stepRoutes: ['/step1', '/step2', '/step3', '/step4'],\r\n isSubscriptionFlow: isSubscriptionFlow,\r\n paymentLink: settings.PaymentLink,\r\n upgradeLink: settings.UpgradeLink,\r\n OrderNemIdLink: settings.OrderNemIdLink,\r\n ForgotNemIdCodeLink: settings.ForgotNemIdCodeLink,\r\n ConfirmWithLoginLink: settings.ConfirmWithLoginLink,\r\n dictionary: self.dictionary,\r\n uploadDocumentSettings: settings.UploadDocumentSetting,\r\n recaptchaEnabled: settings.RecaptchaEnabled,\r\n allowNoLimitsSet: settings.AllowNoLimitsSet,\r\n ignoreMinDepositLimitValidation: settings.IgnoreMinDepositLimitValidation,\r\n maxLimits: settings.MaxLimits,\r\n onAlreadyRegistered: function (message) {\r\n var dialogcontent = [\r\n m('h1', 'Log ind'),\r\n m('p', message)\r\n ];\r\n new Overlay(ModalDialog(dialogcontent, {\r\n buttons: [{\r\n text: 'Log ind', callback: self.showLoginDialog\r\n }]\r\n })).show();\r\n }\r\n }));\r\n\r\n\r\n // If the user tries to log in from the sign up page, we don't want to redirect them to the login page.\r\n // Instead, we redirect them to the page they came from, before they clicked the login link.\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const signupSuccessUrl = urlParams.get('signupSuccessUrl');\r\n\r\n if (signupSuccessUrl) {\r\n document.body.setAttribute('data-override-login-return-url', signupSuccessUrl);\r\n }\r\n\r\n\r\n self.receiptData = new ReceiptData({\r\n title: self.dictionary('ReceiptAlreadyRegistered/Headline'),\r\n bodyHtml: self.dictionary('ReceiptAlreadyRegistered/BodyHtml'),\r\n redirectButtonText: self.dictionary('ReceiptAlreadyRegistered/ButtonText'),\r\n callback: function () {\r\n var returnUrl = Utils.getParameter('signupSuccessUrl') || Utils.getParameter('returnUrl') || self.dictionary('Step4/ReturnUrl');\r\n\r\n if (Utils.checkEncodeURI(returnUrl)) {\r\n returnUrl = decodeURIComponent(returnUrl);\r\n }\r\n\r\n if (Utils.isAppUrl(returnUrl)) {\r\n var redirectUrl = Utils.appendParameter('returnUrl', encodeURIComponent(returnUrl), DS.Config.DSLOGINPREFIX + '/redirect/return-with-assertion');\r\n window.location.href = redirectUrl;\r\n return;\r\n }\r\n\r\n window.location.href = returnUrl;\r\n },\r\n noCountdown: true,\r\n uiTestId: 'pam-register-receipt'\r\n });\r\n };\r\n\r\n var rootctrl = new ctrl();\r\n\r\n m.route.mode = 'hash';\r\n m.route(this.$element, '/step1', {\r\n '/step1': m.component(RouteSlide(Step1, { level: 0 }), rootctrl),\r\n '/step2': m.component(RouteSlide(Step2, { level: 1 }), rootctrl),\r\n '/step2b': m.component(RouteSlide(Limit, { level: 2 }), rootctrl),\r\n '/step3': m.component(RouteSlide(Step3, { level: 3 }), rootctrl),\r\n '/postlogin': m.component(RouteSlide(PostLogin, { level: 4 }), rootctrl),\r\n '/step4b': m.component(RouteSlide(Upload, { level: 5 }), rootctrl),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 6 }), { options: rootctrl.receiptData })\r\n });\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/PlayerProfileRestrictOrCloseAccount',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/DataSettings',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader'\r\n ],\r\n function (Component, Dictionary, DataSettings, Utils, NavigationHeader) {\r\n 'use strict';\r\n\r\n Component('player-profile-restrict-or-close-account', [\r\n Dictionary, DataSettings({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetAccountRestrictionStatus',\r\n name: 'Restrict'\r\n })\r\n ], function (m, route, settings, ignoredProperty, ignoredElement, dependencyData) {\r\n\r\n var pageSettings = m.prop(settings);\r\n var lockedDate = dependencyData.Restrict.LockedDate || null;\r\n lockedDate = lockedDate ? (dependencyData.Restrict.LockedDate.toLocaleDateString('da-DK').replace(/[/|-]/g, '.') + ' kl. ' + dependencyData.Restrict.LockedDate.toLocaleTimeString('da-DK').replace(/\\./g, ':').slice(0, -3)) : null;\r\n\r\n settings.Locked = dependencyData.Restrict.Locked || false;\r\n settings.LockedDate = lockedDate;\r\n\r\n var root = {\r\n controller: function () {\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/RestrictOrCloseAccount/' });\r\n this.pageModel = m.prop(settings);\r\n this.restrictAccountLink = m.prop(Utils.appendParameter('returnUrl', location.href, settings.RestrictAccountLink));\r\n this.closeAccountLink = m.prop(Utils.appendParameter('returnUrl', location.href, settings.CloseAccountLink));\r\n },\r\n\r\n view: function (controller) {\r\n var d = controller.d;\r\n\r\n var renderLockAccountContent = function () {\r\n if (controller.pageModel().Locked) {\r\n return m('p.description', { 'data-uitest-id': 'restrictOrCloseAccount-already-restricted' }, d('AlreadyRestrictedText') + controller.pageModel().LockedDate + '.');\r\n } else {\r\n return m('div', [\r\n m('p.description', { 'data-uitest-id': 'restrictOrCloseAccount-restrict-description' }, d('RestrictAccountText')),\r\n m('a.pam__button.pam__button--medium.pam__button--primary', {\r\n href: controller.restrictAccountLink(),\r\n 'data-uitest-id': 'restrictOrCloseAccount-restrict-button'\r\n }, d('RestrictAccountBtn'))\r\n ]);\r\n }\r\n };\r\n\r\n return m('.restrict-or-close-account-page', {\r\n 'data-uitest-id': 'pam-playerProfile-restrictOrCloseAccount'\r\n }, [\r\n document.querySelector('body').classList.contains('app-web-view') ?\r\n NavigationHeader(DS.Config.PRETTYPREFIX + '/mine-oplysninger/', false) : '',\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('.restrict-or-close-account-page__content-box', [\r\n m('h1.title', { 'data-uitest-id': 'restrictOrCloseAccount-restrict-title' }, d('RestrictAccountTitle')),\r\n renderLockAccountContent()\r\n ]),\r\n m('.restrict-or-close-account-page__content-box', [\r\n m('h1.title', { 'data-uitest-id': 'restrictOrCloseAccount-close-title' }, d('CloseAccountTitle')),\r\n m('p.description', { 'data-uitest-id': 'restrictOrCloseAccount-close-description' }, d('CloseAccountText')),\r\n m('a.pam__button.pam__button--medium.pam__button--primary', {\r\n href: controller.closeAccountLink(),\r\n 'data-uitest-id': 'restrictOrCloseAccount-close-button'\r\n }, d('CloseAccountBtn'))\r\n ])\r\n ])\r\n ]),\r\n m('.pam-page__ribbon', [\r\n m('.info-ribbon.info-ribbon--notice', [\r\n m('.info-ribbon__text.restrict-account-page__rofus', [\r\n m('p', { 'data-uitest-id': 'restrictOrCloseAccount-rofus-description' }, m.trust(d('ROFUSDescription'))),\r\n m('a', {\r\n href: pageSettings().RofusLink ? pageSettings().RofusLink : window.location.origin,\r\n target: pageSettings().RofusLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'restrictOrCloseAccount-rofus-link'\r\n }, d('ROFUSLinkText')),\r\n m('a', {\r\n href: pageSettings().TreatmentLink ? pageSettings().TreatmentLink : window.location.origin,\r\n target: pageSettings().TreatmentLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'restrictOrCloseAccount-treatment-link'\r\n }, d('TreatmentLinkText'))\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n route('/', root);\r\n });\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/PlayerProfileRestrictAccount',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Calendar',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileRestrictAccountData',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/ConfirmRestriction',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n ],\r\n function (Component, Storage, Dictionary, Utils, Calendar, NavigationHeader, Button, Data, ConfirmRestriction, ReceiptComponent, RouteSlide, LoginController, LoginCache, Ensighten) {\r\n 'use strict';\r\n\r\n Component('player-profile-restrict-account', [Dictionary], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n const receiptData = m.prop({});\r\n const confirmDictionary = Dictionary.get.bind({ prefix: 'PlayerProfile/RestrictAccount/Confirm/' });\r\n const pageSettings = m.prop(settings);\r\n const restrictDateFromStorage = Storage.get('restrictDate') ? new Date(JSON.parse(Storage.get('restrictDate'))) : null;\r\n const restrictStateFromStorage = Storage.get('restrictState') ? JSON.parse(Storage.get('restrictState')) : null;\r\n\r\n const state = m.prop(restrictStateFromStorage || {\r\n daySelected: false,\r\n calendarSelected: false,\r\n unlimitedSelected: false,\r\n calendarStartDate: null,\r\n calenderEndDate: null\r\n });\r\n\r\n const confirmCallback = function () {\r\n const { unlimitedSelected } = state();\r\n\r\n if (unlimitedSelected) {\r\n Data.closeAccount().then(function ({ Abstract, ButtonText, Headline, OperationSuccess }) {\r\n if (!OperationSuccess) return false;\r\n\r\n receiptData({\r\n description: Abstract,\r\n receiptButtonText: ButtonText,\r\n pageSettings,\r\n title: Headline,\r\n noCountdown: true,\r\n callback: () => {\r\n const { RedirectReciptLink } = pageSettings();\r\n window.location.href = RedirectReciptLink ? RedirectReciptLink : window.location.origin;\r\n },\r\n icon: 'round_big_check',\r\n uiTestId: 'pam-playerProfile-closeAccount-receipt',\r\n dictionary: confirmDictionary\r\n });\r\n\r\n const identityConfirmMethod = Utils.getParameter('identityConfirmMethod');\r\n const context = DS.Config.PRETTYPREFIX.replace('/', '');\r\n\r\n Ensighten.pushGaEvent('selvudelukkelse', 'PAM', identityConfirmMethod + '_' + context);\r\n Ensighten.pushGaEvent('information_bekraeftet', 'PAM', 'spaer_og_luk_konto');\r\n Ensighten.pushHashAsVirtualPage('spaer/kvittering', 'accountPage');\r\n LoginController.logout({ redirect: false });\r\n m.route('/receipt');\r\n });\r\n\r\n } else {\r\n Data.restrictAccount().then(function ({ Abstract, ButtonText, Headline, OperationSuccess }) {\r\n if (!OperationSuccess) return false;\r\n\r\n receiptData({\r\n description: Abstract,\r\n receiptButtonText: ButtonText,\r\n pageSettings,\r\n title: Headline,\r\n noCountdown: true,\r\n callback: () => {\r\n const { RedirectReciptLink } = pageSettings();\r\n window.location.href = RedirectReciptLink ? RedirectReciptLink : window.location.origin;\r\n },\r\n icon: 'round_big_check',\r\n uiTestId: 'pam-playerProfile-restrictAccount-receipt',\r\n dictionary: confirmDictionary\r\n });\r\n\r\n const identityConfirmMethod = Utils.getParameter('identityConfirmMethod');\r\n const context = DS.Config.PRETTYPREFIX.replace('/', '');\r\n\r\n Ensighten.pushGaEvent('selvudelukkelse', 'PAM', `${identityConfirmMethod}_${context}`);\r\n Ensighten.pushGaEvent('information_bekraeftet', 'PAM', 'spaer_konto');\r\n Ensighten.pushHashAsVirtualPage('spaer/kvittering', 'accountPage');\r\n LoginController.logout({ redirect: false });\r\n m.route('/receipt');\r\n });\r\n }\r\n };\r\n\r\n const cancelCallback = () => {\r\n // reset state\r\n state({\r\n daySelected: false,\r\n calendarSelected: false,\r\n unlimitedSelected: false,\r\n calendarStartDate: null,\r\n calenderEndDate: null\r\n });\r\n };\r\n\r\n // Component definition\r\n const root = {\r\n controller: function () {\r\n this.restrictionCallbackRoute = m.prop(window.location.hash === '#/callback');\r\n this.state = state;\r\n this.calendarUnfolded = m.prop(true);\r\n\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/RestrictAccount/' });\r\n\r\n this.needsConfirmationWithLogin = false;\r\n this.currentUser = LoginCache.getUserObj();\r\n\r\n const calendarStartDate = new Date();\r\n calendarStartDate.setDate(calendarStartDate.getDate() + 30);\r\n this.date = m.prop(calendarStartDate);\r\n this.storedDate = m.prop(calendarStartDate);\r\n state().calendarStartDate = calendarStartDate;\r\n\r\n const calenderEndDate = new Date();\r\n calenderEndDate.setDate(calenderEndDate.getDate() + 364);\r\n state().calenderEndDate = calenderEndDate;\r\n\r\n this.pageSettings = m.prop(settings);\r\n\r\n this.restrictForDay = function () {\r\n state().daySelected = true;\r\n state().calendarSelected = false;\r\n state().unlimitedSelected = false;\r\n this.calendarUnfolded(false);\r\n this.date(new Date());\r\n this.needsConfirmationWithLogin = false;\r\n }.bind(this);\r\n\r\n this.restrictByCalendar = function () {\r\n state().daySelected = false;\r\n state().calendarSelected = true;\r\n state().unlimitedSelected = false;\r\n this.calendarUnfolded(false);\r\n this.date(this.storedDate());\r\n this.needsConfirmationWithLogin = true;\r\n // If date has been selected lets hide additional space beneath\r\n if (document.querySelector('.pika-single.is-hidden')) {\r\n this.calendarUnfolded(true);\r\n }\r\n }.bind(this);\r\n\r\n this.restrictUnlimited = function () {\r\n state().daySelected = false;\r\n state().calendarSelected = false;\r\n state().unlimitedSelected = true;\r\n this.calendarUnfolded(false);\r\n this.date(calendarStartDate);\r\n this.needsConfirmationWithLogin = true;\r\n }.bind(this);\r\n\r\n // Trigger state loaded from localstorage data.\r\n const { daySelected, calendarSelected, unlimitedSelected } = this.state();\r\n if (daySelected) this.restrictForDay();\r\n if (calendarSelected) this.restrictByCalendar();\r\n if (unlimitedSelected) this.restrictUnlimited();\r\n\r\n this.storeDate = function () {\r\n this.storedDate(this.date());\r\n }.bind(this);\r\n\r\n this.restrictAccount = function () {\r\n const { daySelected, calendarSelected, unlimitedSelected } = this.state();\r\n if (!(daySelected || calendarSelected || unlimitedSelected)) return;\r\n\r\n Data.setDate(this.date());\r\n Ensighten.pushHashAsVirtualPage('spaer/bekraeftelse', 'accountPage');\r\n\r\n if (this.needsConfirmationWithLogin) {\r\n Storage.set('restrictState', JSON.stringify(state()));\r\n Storage.set('restrictDate', JSON.stringify(this.date().toString()));\r\n\r\n const returnUrl = window.location.href.split('#')[0] + '#/callback';\r\n let newUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/goto-identity-confirm';\r\n newUrl = Utils.appendParameter('variant', 'RestrictAccount', 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 } else {\r\n m.route('/confirm', {});\r\n }\r\n }.bind(this);\r\n\r\n this.redirectBack = (ev) => {\r\n ev.preventDefault();\r\n let returnUrl = Utils.getParameter('returnUrl');\r\n\r\n if (returnUrl && Utils.checkEncodeURI(returnUrl)) {\r\n // Decode returnUrl if it is not already decoded\r\n returnUrl = decodeURIComponent(returnUrl);\r\n window.location.href = returnUrl;\r\n } else {\r\n window.history.back();\r\n }\r\n };\r\n\r\n if (this.restrictionCallbackRoute()) {\r\n Ensighten.pushGaEvent('information_bekraeftet', 'PAM', 'spaer_konto');\r\n Data.setDate(restrictDateFromStorage);\r\n Storage.set('restrictState', null);\r\n Storage.set('restrictDate', null);\r\n confirmCallback();\r\n }\r\n },\r\n\r\n view: function (controller) {\r\n const {\r\n TreatmentLink,\r\n RofusLink,\r\n } = pageSettings();\r\n\r\n const {\r\n date: calendarDate,\r\n calendarUnfolded,\r\n currentUser,\r\n d,\r\n needsConfirmationWithLogin,\r\n restrictAccount,\r\n redirectBack,\r\n restrictForDay,\r\n restrictByCalendar,\r\n restrictUnlimited,\r\n restrictionCallbackRoute,\r\n state,\r\n storeDate,\r\n } = controller;\r\n\r\n const {\r\n daySelected,\r\n calendarSelected,\r\n unlimitedSelected,\r\n calendarStartDate,\r\n calenderEndDate,\r\n } = state();\r\n\r\n const isNemId = currentUser?.customerInfo?.loggedInWithNemId || false;\r\n\r\n if (restrictionCallbackRoute()) {\r\n return m('.restrict-account-page', {\r\n 'data-uitest-id': 'pam-playerProfile-restrictAccountCallback'\r\n }, m('.pam-page__content',\r\n m('.pam-page__inner-content',\r\n m('h1', { 'data-uitest-id': 'restrictAccountCallback-title' }, d('ConfirmLoaderText'))\r\n )\r\n ));\r\n }\r\n return m('.restrict-account-page', {\r\n 'data-uitest-id': 'pam-playerProfile-restrictAccount'\r\n }, [\r\n\r\n NavigationHeader(redirectBack, false, d('BackButton')),\r\n\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content.pam-page__headline-container', [\r\n m('h1', { 'data-uitest-id': 'restrictAccount-title' }, d('Title')),\r\n m('p.abstract', { 'data-uitest-id': 'restrictAccount-description' }, m.trust(d('HelperText')))\r\n ]),\r\n m('.restrict-account-page__time', [\r\n m('form.custom-radio__pair', [\r\n\r\n // Restrict for 24 hours\r\n m('.custom-radio', { 'data-uitest-id': 'restrictAccount-radio-day' }, [\r\n m('input#restrict-account-page-day', {\r\n type: 'radio',\r\n name: 'time-frame',\r\n onchange: restrictForDay,\r\n checked: daySelected ? 'checked' : '',\r\n }),\r\n m('label', { for: 'restrict-account-page-day' }, d('RestrictForADay')),\r\n ]),\r\n\r\n daySelected ? m('.custom-radio__abstract', m.trust(d('RestrictForADayDescription'))) : null,\r\n\r\n // Restrict for min. 30 days\r\n m('.custom-radio', { 'data-uitest-id': 'restrictAccount-radio-date' }, [\r\n m('input#restrict-account-page-date', {\r\n type: 'radio',\r\n name: 'time-frame',\r\n onchange: restrictByCalendar,\r\n checked: calendarSelected ? 'checked' : '',\r\n }),\r\n m('label', {\r\n for: 'restrict-account-page-date',\r\n class: 'js-restrict-account-page-date'\r\n }, d('RestrictByDate')),\r\n calendarSelected ? m('.custom-radio__abstract', m.trust(d('RestrictByDateDescription'))) : null,\r\n m('.restrict-account-page__calendar-container', {\r\n class: [\r\n !calendarSelected ? 'hidden' : '',\r\n calendarUnfolded() ? 'is-collapsed' : ''\r\n ].join(' '),\r\n 'data-uitest-id': 'restrictAccount-calendar-container'\r\n }, [\r\n Calendar(calendarDate, calendarStartDate, calenderEndDate, 'label.js-restrict-account-page-date', calendarUnfolded, storeDate)\r\n ])\r\n ]),\r\n\r\n // Restrict for unlimited time\r\n m('.custom-radio', { 'data-uitest-id': 'restrictAccount-radio-unlimited' }, [\r\n m('input#restrict-account-page-unlimited', {\r\n type: 'radio',\r\n name: 'time-frame',\r\n onchange: restrictUnlimited,\r\n checked: unlimitedSelected ? 'checked' : '',\r\n }),\r\n m('label', { for: 'restrict-account-page-unlimited' }, d('RestrictUnlimited')),\r\n ]),\r\n\r\n unlimitedSelected ? m('.custom-radio__abstract', m.trust(d('RestrictUnlimitedDescription'))) : null,\r\n ]),\r\n ])\r\n ]),\r\n m('.pam__button-container.pam__button-container--large-spacing', { 'data-uitest-id': 'restrictAccount-confirm-button' }, [\r\n m(Button, {\r\n text: { default: d(needsConfirmationWithLogin && isNemId ? 'ConfirmWithNemId' : 'ConfirmButtonText') },\r\n onclick: restrictAccount,\r\n })\r\n ]),\r\n m('.pam-page__ribbon', [\r\n m('.info-ribbon.info-ribbon--notice', [\r\n m('.info-ribbon__text.restrict-account-page__rofus', [\r\n m('p', { 'data-uitest-id': 'restrictAccount-rofus-description' }, m.trust(d('ROFUSDescription'))),\r\n m('a', {\r\n href: RofusLink ? RofusLink : window.location.origin,\r\n target: RofusLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'restrictAccount-rofus-link'\r\n }, d('ROFUSLinkText')),\r\n m('a', {\r\n href: TreatmentLink ? TreatmentLink : window.location.origin,\r\n target: TreatmentLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'restrictAccount-treatment-link'\r\n }, d('TreatmentLinkText'))\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n m.route.mode = 'hash';\r\n m.route(element, '/', {\r\n '/': m.component(RouteSlide(root, { level: 0 })),\r\n '/callback': m.component(RouteSlide(root, { level: 0 })),\r\n '/confirm': m.component(RouteSlide(ConfirmRestriction, { level: 1 }), { confirmCallback, cancelCallback, confirmDictionary, pageSettings }),\r\n '/receipt': m.component(RouteSlide(ReceiptComponent, { level: 2 }), { options: receiptData })\r\n });\r\n });\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/PlayerProfileCloseAccount', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileCloseAccountApi',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (Component, Dictionary, Utils, Api, Button, ReceiptComponent, RouteSlide, LoginController, LoginCache, NavigationHeader, Ensighten) {\r\n 'use strict';\r\n\r\n Component('player-profile-close-account', [Dictionary], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n var receiptData = m.prop({});\r\n var confirmDictionary = Dictionary.get.bind({ prefix: 'PlayerProfile/LockAccount/Confirm/' });\r\n var pageSettings = m.prop(settings);\r\n\r\n var confirmCallback = function () {\r\n Api.lockAccount().then(function (response) {\r\n if (!response.OperationSuccess) return false;\r\n\r\n receiptData({\r\n title: response.Headline,\r\n description: response.Abstract,\r\n pageSettings: pageSettings,\r\n receiptButtonText: response.ButtonText,\r\n noCountdown: true,\r\n callback: function () {\r\n window.location.href = pageSettings().RedirectReciptLink ? pageSettings().RedirectReciptLink : window.location.origin;\r\n },\r\n icon: 'round_big_check',\r\n uiTestId: 'pam-playerProfile-closeAccount-receipt',\r\n dictionary: confirmDictionary\r\n });\r\n\r\n var identityConfirmMethod = Utils.getParameter('identityConfirmMethod');\r\n var context = DS.Config.PRETTYPREFIX.replace('/', '');\r\n\r\n Ensighten.pushGaEvent('selvudelukkelse', 'PAM', identityConfirmMethod + '_' + context);\r\n Ensighten.pushGaEvent('information_bekraeftet', 'PAM', 'luk_konto');\r\n Ensighten.pushHashAsVirtualPage('luk/kvittering', 'accountPage');\r\n LoginController.logout({ redirect: false });\r\n m.route('/receipt');\r\n });\r\n };\r\n\r\n // Component definition\r\n var root = {\r\n controller: function () {\r\n this.restrictionCallbackRoute = m.prop(window.location.hash === '#/callback');\r\n this.pageModel = m.prop({\r\n displayConfirm: false\r\n });\r\n\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/LockAccount/' });\r\n\r\n this.currentUser = LoginCache.getUserObj();\r\n\r\n this.confirm = function () {\r\n Ensighten.pushHashAsVirtualPage('luk/bekraeftelse', 'accountPage');\r\n\r\n var returnUrl = window.location.href.split('#')[0] + '#/callback';\r\n var newUrl = DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/goto-identity-confirm';\r\n newUrl = Utils.appendParameter('variant', 'CloseAccount', 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 }.bind(this);\r\n\r\n this.redirectBack = function (e) {\r\n e.preventDefault();\r\n let returnUrl = Utils.getParameter('returnUrl');\r\n\r\n if (returnUrl && Utils.checkEncodeURI(returnUrl)) {\r\n // Decode returnUrl if it is not already decoded\r\n returnUrl = decodeURIComponent(returnUrl);\r\n window.location.href = returnUrl;\r\n } else {\r\n window.history.back();\r\n }\r\n };\r\n\r\n if (this.restrictionCallbackRoute()) {\r\n confirmCallback();\r\n }\r\n },\r\n\r\n view: function (controller) {\r\n\r\n var isNemId = false;\r\n if (controller && controller.currentUser && controller.currentUser.customerInfo && controller.currentUser.customerInfo.loggedInWithNemId) {\r\n isNemId = controller.currentUser.customerInfo.loggedInWithNemId;\r\n }\r\n var d = controller.d;\r\n\r\n if (controller.restrictionCallbackRoute()) {\r\n return m('.restrict-account-page', {\r\n 'data-uitest-id': 'pam-playerProfile-closeAccountCallback'\r\n }, m('.pam-page__content',\r\n m('.pam-page__inner-content',\r\n m('h1', { 'data-uitest-id': 'restrictAccountCallback-title' }, d('ConfirmLoadingText'))\r\n )\r\n ));\r\n }\r\n\r\n return m('.restrict-account-page', {\r\n 'data-uitest-id': 'pam-playerProfile-closeAccount'\r\n }, [\r\n NavigationHeader(controller.redirectBack, false, d('BackButton')),\r\n m('.pam-page__content.pam-page__headline-container', [\r\n m('.pam-page__inner-content', [\r\n m('h1', { 'data-uitest-id': 'closeAccount-title' }, d('Title')),\r\n m('p.abstract', { 'data-uitest-id': 'closeAccount-description' }, m.trust(d('HelperText')))\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing', 'data-uitest-id': 'closeAccount-confirm-button' }, [\r\n m(Button, {\r\n text: { default: isNemId ? d('ButtonTextWithNemId') : d('ButtonText') },\r\n onclick: controller.confirm\r\n })\r\n ]),\r\n m('.pam-page__ribbon', [\r\n m('.info-ribbon.info-ribbon--notice', [\r\n m('.info-ribbon__text.restrict-account-page__rofus', [\r\n m('p', { 'data-uitest-id': 'closeAccount-rofus-description' }, m.trust(d('ROFUSDescription'))),\r\n m('a', {\r\n href: pageSettings().RofusLink ? pageSettings().RofusLink : window.location.origin,\r\n target: pageSettings().RofusLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'closeAccount-rofus-link'\r\n }, d('ROFUSLinkText')),\r\n m('a', {\r\n href: pageSettings().TreatmentLink ? pageSettings().TreatmentLink : window.location.origin,\r\n target: pageSettings().TreatmentLink ? '_blank' : '_self',\r\n 'data-uitest-id': 'closeAccount-treatment-link'\r\n }, d('TreatmentLinkText'))\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n m.route.mode = 'hash';\r\n\r\n m.route(element, '/', {\r\n '/': m.component(RouteSlide(root, { level: 0 })),\r\n '/callback': m.component(RouteSlide(root, { level: 0 })),\r\n '/receipt': m.component(RouteSlide(ReceiptComponent, { level: 2 }), { options: receiptData })\r\n });\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/PlayerProfileAmountLimits', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Mithril/Scripts/Templates/Overlay',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/DataSettings',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/ModalDialog',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/NavigationHeader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileAmountLimitsApi',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/AmountLimitsModel',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Templates/AmountLimit',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Templates/Modals/Limits/LimitsMissingModal',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/Confirm',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/Receipt'\r\n], function (Component, Render, Utils, Overlay, Ensighten, Dictionary, DataSettings, RouteSlide, PamUtils, ModalDialog, NavigationHeader, Button, LoginCache, Api, AmountLimitsModel, AmountLimit, LimitsMissingModal, ConfirmComponent, ReceiptComponent) {\r\n 'use strict';\r\n\r\n Component('player-profile-amount-limits', [\r\n Dictionary,\r\n DataSettings({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetAmountLimits',\r\n name: 'AmountLimits'\r\n })\r\n ], function (m, ignoredRoute, settings, ignoredProperty, element, dependencyData) {\r\n\r\n var confirmData = m.prop({});\r\n var receiptData = m.prop({});\r\n\r\n var root = {\r\n\r\n controller: function () {\r\n\r\n var self = this;\r\n var dependencyType = settings.DependencyDataIdentifier;\r\n var saved = dependencyData.AmountLimits[dependencyType];\r\n self.d = Dictionary.get.bind({ prefix: settings.DictionaryRoot });\r\n self.pageSettings = m.prop(settings);\r\n self.confirmationHeadline = m.prop(self.d('Headlines/DefaultHeadline'));\r\n self.receiptHeadline = m.prop(self.d('Headlines/NewLimitCreated'));\r\n self.receiptDefaultDelete = m.prop(self.d('Headlines/DeleteConfirmation'));\r\n self.responsibleGaming = m.prop(settings.ResponsibleGaming || false);\r\n self.responsibleGamingShown = m.prop(false);\r\n self.playerDefinedDepositLimits = m.prop(saved.PlayerDefinedDepositLimitFound || false);\r\n self.funnelTracking = m.prop(PamUtils.getParameter('intcmp') || false);\r\n self.funnelFlow = self.funnelTracking() ? m.prop(self.funnelTracking().indexOf('oninput') > -1 ? 'onInput_step_' : 'limit_step_') : null;\r\n self.userInfo = m.prop(LoginCache.getUserObj());\r\n self.showGeneralValidationError = m.prop(false);\r\n self.limitsMissingModal = m.prop(LimitsMissingModal(self.d, self.userInfo, self.pageSettings().SelectUrl));\r\n self.submitLoading = m.prop(false);\r\n\r\n var stepFields = [\r\n 'maxDaily',\r\n 'maxWeekly',\r\n 'maxMonthly'\r\n ];\r\n\r\n\r\n if (self.funnelTracking()) {\r\n Ensighten.pushGaEvent('beloebsgraense', 'funnel', self.funnelFlow() + '2');\r\n }\r\n\r\n this.getLimit = function (type) {\r\n return saved.limits.filter(function (limit) {\r\n return limit.Type === type;\r\n }).map(function (limit) {\r\n var limitIdentifier = limit.Type && limit.Type.length > 2 ? 'Max' + limit.Type.charAt(0).toUpperCase() + limit.Type.slice(1) : 'unknownType';\r\n var sitecoreMaxLimit = settings.MaxLimits.hasOwnProperty(limitIdentifier) ? settings.MaxLimits[limitIdentifier] : null;\r\n var pamMaxLimit = limit.Max ? PamUtils.convertCentsToKroner(limit.Max) : Number.MAX_VALUE; // If PAM bo doesn't have a global limit value, then default to largest integer\r\n\r\n const valueIsMax = limit.Value === limit.Max;\r\n const isOperatorButLoweredByUser = limit.IsOperator && !valueIsMax;\r\n\r\n return {\r\n initial: limit.IsGlobal ? '' : PamUtils.convertCentsToKroner(limit.Value),\r\n min: self.pageSettings().IgnoreMininumLimitValidation ? 1 : self.pageSettings().MinimumAmount || 50,\r\n max: sitecoreMaxLimit && sitecoreMaxLimit < pamMaxLimit ? sitecoreMaxLimit : pamMaxLimit,\r\n future: limit.IsGlobal ? '' : PamUtils.convertCentsToKroner(limit.PlannedValue),\r\n futureDate: limit.IsGlobal ? '' : limit.PlannedAt,\r\n isGlobal: limit.IsGlobal,\r\n isOperator: limit.IsOperator,\r\n isOperatorButLoweredByUser,\r\n };\r\n }).shift();\r\n };\r\n\r\n this.model = AmountLimitsModel.new({\r\n allowNoLimitsSet: self.pageSettings().AllowNoLimitsSet || false,\r\n dictionary: self.d,\r\n day: this.getLimit('daily'),\r\n week: this.getLimit('weekly'),\r\n month: this.getLimit('monthly')\r\n });\r\n\r\n this.currentLimits = function (settings) {\r\n var f = this.model.fields;\r\n if ((!f.day.isGlobal && !f.day.futureDate) || f.day.plannedValue) {\r\n settings.SavedMaxDaily = f.day.initial();\r\n }\r\n if ((!f.week.isGlobal && !f.week.futureDate) || f.week.plannedValue) {\r\n settings.SavedMaxWeekly = f.week.initial();\r\n }\r\n if ((!f.month.isGlobal && !f.month.futureDate) || f.month.plannedValue) {\r\n settings.SavedMaxMonthly = f.month.initial();\r\n }\r\n }.bind(this);\r\n\r\n /**\r\n * Determine if any values in the form has changed, and if so, return the values as an object. Otherwise return false\r\n *\r\n * @returns {false|object}\r\n */\r\n this.isDirty = function (tracking) {\r\n var settings = {};\r\n var label = [];\r\n var changed = false;\r\n\r\n\r\n // Only send values to backend if they differ. Send -1 if the field is being emptied\r\n if (tracking) {\r\n var savedMaxMonthly = self.model.fields.month.isGlobal() ? 0 : self.model.fields.month.initial();\r\n var newMaxMonthly = String(self.model.fields.maxMonthly()).trim() === '' ? 0 : parseInt(self.model.fields.maxMonthly(), 10);\r\n label.push(this.TrackAmountLimitChanges(savedMaxMonthly, newMaxMonthly, 'MaxMonthly'));\r\n }\r\n if ((parseInt(self.model.fields.maxMonthly(), 10) && self.model.fields.month.initial() !== parseInt(self.model.fields.maxMonthly(), 10)) || self.model.fields.month.isReverting()) {\r\n settings.MaxMonthly = self.model.fields.maxMonthly();\r\n this.currentLimits(settings);\r\n changed = true;\r\n }\r\n\r\n if (tracking) {\r\n var savedMaxWeekly = self.model.fields.week.isGlobal() ? 0 : self.model.fields.week.initial();\r\n var newMaxWeekly = String(self.model.fields.maxWeekly()).trim() === '' ? 0 : parseInt(self.model.fields.maxWeekly(), 10);\r\n label.push(this.TrackAmountLimitChanges(savedMaxWeekly, newMaxWeekly, 'MaxWeekly'));\r\n }\r\n if ((parseInt(self.model.fields.maxWeekly(), 10) && self.model.fields.week.initial() !== parseInt(self.model.fields.maxWeekly(), 10)) || self.model.fields.week.isReverting()) {\r\n settings.MaxWeekly = self.model.fields.maxWeekly();\r\n this.currentLimits(settings);\r\n changed = true;\r\n }\r\n\r\n if (tracking) {\r\n var savedMaxDaily = self.model.fields.day.isGlobal() ? 0 : self.model.fields.day.initial();\r\n var newMaxDaily = String(self.model.fields.maxDaily()).trim() === '' ? 0 : parseInt(self.model.fields.maxDaily(), 10);\r\n label.push(this.TrackAmountLimitChanges(savedMaxDaily, newMaxDaily, 'MaxDaily'));\r\n }\r\n if ((parseInt(self.model.fields.maxDaily(), 10) && self.model.fields.day.initial() !== parseInt(self.model.fields.maxDaily(), 10)) || self.model.fields.day.isReverting()) {\r\n settings.MaxDaily = self.model.fields.maxDaily();\r\n this.currentLimits(settings);\r\n changed = true;\r\n }\r\n\r\n // Send -1 if the field is being emptied\r\n // make sure we try to trim a string, since the max value could be an integer\r\n if ((String(self.model.fields.maxMonthly()).trim() === '' || !self.model.fields.maxMonthly()) && self.model.fields.month.initial() !== null && !(self.model.fields.month.isGlobal() || (self.model.fields.month.initial() === null && self.model.fields.month.isOperator()))) {\r\n settings.MaxMonthly = -1;\r\n this.currentLimits(settings);\r\n changed = true;\r\n }\r\n if ((String(self.model.fields.maxWeekly()).trim() === '' || !self.model.fields.maxWeekly()) && self.model.fields.week.initial() !== null && !(self.model.fields.week.isGlobal() || (self.model.fields.week.initial() === null && self.model.fields.week.isOperator()))) {\r\n settings.MaxWeekly = -1;\r\n this.currentLimits(settings);\r\n changed = true;\r\n }\r\n if ((String(self.model.fields.maxDaily()).trim() === '' || !self.model.fields.maxDaily()) && self.model.fields.day.initial() !== null && !(self.model.fields.day.isGlobal() || (self.model.fields.day.initial() === null && self.model.fields.day.isOperator()))) {\r\n settings.MaxDaily = -1;\r\n this.currentLimits(settings);\r\n changed = true;\r\n }\r\n\r\n if (tracking) {\r\n Ensighten.pushGaEvent('beloebsgraense', 'opdater_graense', label.join(','));\r\n }\r\n return changed ? settings : false;\r\n };\r\n\r\n this.TrackAmountLimitChanges = function (oldValue, newValue, nameValue) {\r\n var action = '_handling:_' + (newValue === '-1' ? 'slettet' : oldValue === newValue ? 'uaendret' : oldValue > newValue ? 'ned' : 'op'); // _handling:_slettet/uaendret/ned/op\r\n var fromTo = nameValue + '_fra:_' + oldValue + '_til:_' + newValue ; // maxWeekly_fra:_100_til:_1000\r\n return fromTo + action;\r\n };\r\n\r\n /**\r\n * Build overlay markup based on the current state of the form\r\n *\r\n * @param {object} formValueData Object with information about changed values in the form\r\n *\r\n * @returns {object} Mithril object with markup for overlay\r\n */\r\n this.parseSettingsForOverlay = function (formValueData) {\r\n\r\n var output = [];\r\n\r\n if (formValueData.MaxDaily) {\r\n var dailyText = formValueData.MaxDaily === -1 ? m('span', self.d('SaveModal/RemoveDailyLimit')) : m('span', self.d('SaveModal/DailyLimit', { LIMIT: formValueData.MaxDaily }));\r\n output.push(dailyText);\r\n output.push(m('br'));\r\n }\r\n\r\n if (formValueData.MaxWeekly) {\r\n var weeklyText = formValueData.MaxWeekly === -1 ? m('span', self.d('SaveModal/RemoveWeeklyLimit')) : m('span', self.d('SaveModal/WeeklyLimit', { LIMIT: formValueData.MaxWeekly }));\r\n output.push(weeklyText);\r\n output.push(m('br'));\r\n }\r\n\r\n if (formValueData.MaxMonthly) {\r\n var monthlyText = formValueData.MaxMonthly === -1 ? m('span', self.d('SaveModal/RemoveMonthlyLimit')) : m('span', self.d('SaveModal/MonthlyLimit', { LIMIT: formValueData.MaxMonthly }));\r\n output.push(monthlyText);\r\n output.push(m('br'));\r\n }\r\n\r\n return m('span', output);\r\n\r\n };\r\n\r\n /**\r\n * Used as an event listener to detect if a clicked link should trigger showing a modal or not\r\n *\r\n * @param {event} event Click event object\r\n */\r\n this.listenForDirtyFormFields = function (event) {\r\n var targetElement = event.target;\r\n var formValuesChanged = self.isDirty();\r\n\r\n // No values in form changed, do nothing\r\n if (!formValuesChanged) {\r\n return;\r\n }\r\n\r\n // The clicked element is within the content area of the pam-page container, do nothing\r\n if (targetElement.closest('.pam-page')) {\r\n return;\r\n }\r\n\r\n // Some a tags has JS powered functionality to show a submenu, do nothing\r\n if (targetElement.closest('a')?.getAttribute('aria-haspopup')) {\r\n return;\r\n }\r\n\r\n // Is the clicked element inside an a tag\r\n if (targetElement.closest('a')) {\r\n\r\n var link = targetElement.closest('a');\r\n\r\n new Overlay(ModalDialog([\r\n m('h1', self.d('SaveModal/Headline')),\r\n m('p', [\r\n m('span', self.d('SaveModal/Manchet')),\r\n m('br'),\r\n m('br'),\r\n self.parseSettingsForOverlay(formValuesChanged)\r\n ])\r\n ], {\r\n buttons: [\r\n {\r\n text: self.d('SaveModal/NoSaveButton'), callback: function (close) {\r\n // Navigate to the href of the clicked link\r\n window.location.href = link.href;\r\n close();\r\n },\r\n color: 'secondary'\r\n },\r\n {\r\n text: self.d('SaveModal/SaveButton'), callback: function (close) {\r\n self.submit();\r\n close();\r\n }\r\n },\r\n ]\r\n })\r\n ).show();\r\n }\r\n\r\n event.preventDefault();\r\n\r\n };\r\n\r\n /**\r\n * Used as an event listener to detect if a click should reset general error\r\n *\r\n */\r\n this.clearGeneralValidationError = function () {\r\n // Only toggle off error if already visible\r\n var buttonContainer = document.querySelector('.pam__button-container');\r\n\r\n if (buttonContainer) {\r\n if (buttonContainer.getAttribute('errormessage')) {\r\n self.showGeneralValidationError(false);\r\n m.redraw();\r\n }\r\n }\r\n };\r\n\r\n // Setup listener for clicks on the content area page\r\n document.querySelector('#wrapper').addEventListener('click', this.listenForDirtyFormFields, false);\r\n document.querySelector('#wrapper').addEventListener('click', this.clearGeneralValidationError, false);\r\n\r\n /**\r\n *\r\n */\r\n var update = function () {\r\n var changes = self.isDirty();\r\n if (changes) {\r\n Ensighten.pushVirtualPage('/confirm', (window.location.pathname.replace(/-/g, '_') + '/confirm'), 'depositPage');\r\n if (self.funnelTracking()) {\r\n Ensighten.pushGaEvent('beloebsgraense', 'funnel', self.funnelFlow() + '3');\r\n }\r\n confirmData({\r\n minimumAmount: self.pageSettings().MinimumAmount,\r\n title: self.confirmationHeadline(),\r\n settings: changes,\r\n dictionary: self.d,\r\n redirectButtonText: self.d('Buttons/ConfirmPageProceed'),\r\n redirectButtonText2: self.d('Buttons/ConfirmPageCancel'),\r\n callback: function () {\r\n Ensighten.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), 'depositPage');\r\n if (self.funnelTracking()) {\r\n Ensighten.pushGaEvent('beloebsgraense', 'funnel', self.funnelFlow() + '4');\r\n }\r\n confirm();\r\n },\r\n callback2: function () {\r\n // Return to root flow\r\n m.route('/');\r\n }\r\n });\r\n m.route('/confirm');\r\n } else {\r\n self.showGeneralValidationError(true);\r\n m.redraw();\r\n PamUtils.scrollToError();\r\n return false;\r\n }\r\n\r\n\r\n };\r\n\r\n\r\n var confirm = function () {\r\n self.submitLoading(true);\r\n Api.setLimits(self.isDirty(), self.pageSettings().DependencyDataIdentifier).then(function (response) {\r\n if (response.status) {\r\n self.submitLoading(false);\r\n m.redraw();\r\n return false;\r\n }\r\n\r\n\r\n self.isDirty(true); // Call self.isDirty but with tracking enabled. (tracks all the limits.)\r\n\r\n receiptData({\r\n title: self.receiptHeadline(),\r\n limits: response[dependencyType].limits,\r\n settings: self.isDirty(),\r\n dictionary: self.d,\r\n redirectButtonText: self.d('Buttons/ReceiptPageProceed'),\r\n redirectButtonText2: self.d('Buttons/ReceiptPageReturn'),\r\n callback: function () {\r\n window.location = self.pageSettings().RedirectUrl ? PamUtils.getRedirectUrlWithDsApplicationIdAndReturnUrl(self.pageSettings().RedirectUrl) : window.location.origin;\r\n\r\n },\r\n callback2: function () {\r\n window.location = self.pageSettings().ReturnUrl ? PamUtils.getRedirectUrlWithDsApplicationIdAndReturnUrl(self.pageSettings().ReturnUrl) : window.location.origin;\r\n }\r\n });\r\n\r\n m.redraw();\r\n }).then(function () {\r\n // Request succeeded lets proceed\r\n history.replaceState('limitAmount', null, window.location.pathname + window.location.search);\r\n m.route('/receipt');\r\n }).catch(function () {\r\n // SG returned an error, lets return to root page.\r\n m.route('/');\r\n })\r\n ;\r\n };\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * Cleanup when controller is being unloaded\r\n */\r\n this.onunload = function () {\r\n document.querySelector('#wrapper').removeEventListener('click', this.listenForDirtyFormFields, false);\r\n };\r\n\r\n self.submit = function () {\r\n self.model.validate(stepFields, true).then(function () {\r\n if (self.model.getStepState(stepFields).state) {\r\n update();\r\n }\r\n });\r\n };\r\n },\r\n\r\n view: function (controller) {\r\n var render = Render();\r\n\r\n var f = controller.model.fields;\r\n var d = f.dictionary();\r\n\r\n var hasLimits = controller.model.fields.hasLimits();\r\n const canDelete = !f.day.isDeleting() && !f.week.isDeleting() && !f.month.isDeleting();\r\n\r\n var limits = [{\r\n model: f.maxDaily,\r\n addLabel: d('LimitLabels/AddDailyLimit'),\r\n addNewLabel: d('LimitLabels/AddNewDailyLimit'),\r\n changeLabel: d('LimitLabels/ChangeDailyLimit'),\r\n activeLabel: d('LimitLabels/MaxDailyLimit'),\r\n itemLabel: d('LimitItems/DailyLimit'),\r\n createLabel: d('CreateLimit'),\r\n currentLabel: d('CurrentLimit'),\r\n newLimit: d('NewLimit'),\r\n operatorLabel: d('LimitLabels/OperatorDailyLimit', {\r\n VALUE: PamUtils.formatCurrency(f.day.max())\r\n }),\r\n periodLabel: d('LimitLabels/PeriodDailyLimit'),\r\n optionalLabel: d('OptionalLimit'),\r\n deleteHeadline: d('Headlines/DeleteDailyHeadline'),\r\n helpStatusLabel: d('HelpText/DailyLimit', {\r\n BUTTON: f.day.isPending() ? d('LimitLabels/ChangeDailyLimit') : d('LimitLabels/AddNewDailyLimit')\r\n }),\r\n idPrefix: 'AmountLimitDaily',\r\n storedValue: f.day.storedValue,\r\n plannedValue: f.day.plannedValue,\r\n planned: f.day.future,\r\n plannedAt: f.day.futureDate,\r\n isActive: f.day.isActive,\r\n othersActive: f.day.othersActive,\r\n othersIsNew: m.prop(f.week.isNew() || f.month.isNew()),\r\n isNew: f.day.isNew,\r\n isPending: f.day.isPending,\r\n isDeleting: f.day.isDeleting,\r\n isEdit: f.day.isEdit,\r\n isReverting: f.day.isReverting,\r\n isOperator: f.day.isOperator,\r\n isOperatorButLoweredByUser: f.day.isOperatorButLoweredByUser,\r\n canDelete: m.prop(canDelete),\r\n focus: m.prop(false)\r\n }, {\r\n model: f.maxWeekly,\r\n addLabel: d('LimitLabels/AddWeeklyLimit'),\r\n addNewLabel: d('LimitLabels/AddNewWeeklyLimit'),\r\n changeLabel: d('LimitLabels/ChangeWeeklyLimit'),\r\n activeLabel: d('LimitLabels/MaxWeeklyLimit'),\r\n itemLabel: d('LimitItems/WeeklyLimit'),\r\n createLabel: d('CreateLimit'),\r\n currentLabel: d('CurrentLimit'),\r\n newLimit: d('NewLimit'),\r\n operatorLabel: d('LimitLabels/OperatorWeeklyLimit', {\r\n VALUE: PamUtils.formatCurrency(f.week.max())\r\n }),\r\n periodLabel: d('LimitLabels/PeriodWeeklyLimit'),\r\n optionalLabel: d('OptionalLimit'),\r\n deleteHeadline: d('Headlines/DeleteWeeklyHeadline'),\r\n helpStatusLabel: d('HelpText/WeeklyLimit', {\r\n BUTTON: f.week.isPending() ? d('LimitLabels/ChangeWeeklyLimit') : d('LimitLabels/AddNewWeeklyLimit')\r\n }),\r\n idPrefix: 'AmountLimitWeekly',\r\n storedValue: f.week.storedValue,\r\n plannedValue: f.week.plannedValue,\r\n planned: f.week.future,\r\n plannedAt: f.week.futureDate,\r\n isActive: f.week.isActive,\r\n othersActive: f.week.othersActive,\r\n othersIsNew: m.prop(f.day.isNew() || f.month.isNew()),\r\n isNew: f.week.isNew,\r\n isPending: f.week.isPending,\r\n isDeleting: f.week.isDeleting,\r\n isEdit: f.week.isEdit,\r\n isReverting: f.week.isReverting,\r\n isOperator: f.week.isOperator,\r\n isOperatorButLoweredByUser: f.week.isOperatorButLoweredByUser,\r\n canDelete: m.prop(canDelete),\r\n focus: m.prop(false)\r\n }, {\r\n model: f.maxMonthly,\r\n addLabel: d('LimitLabels/AddMonthlyLimit'),\r\n addNewLabel: d('LimitLabels/AddNewMonthlyLimit'),\r\n changeLabel: d('LimitLabels/ChangeMonthlyLimit'),\r\n activeLabel: d('LimitLabels/MaxMonthlyLimit'),\r\n itemLabel: d('LimitItems/MonthlyLimit'),\r\n createLabel: d('CreateLimit'),\r\n currentLabel: d('CurrentLimit'),\r\n newLimit: d('NewLimit'),\r\n operatorLabel: d('LimitLabels/OperatorMonthlyLimit', {\r\n VALUE: PamUtils.formatCurrency(f.month.max())\r\n }),\r\n periodLabel: d('LimitLabels/PeriodMonthlyLimit'),\r\n optionalLabel: d('OptionalLimit'),\r\n deleteHeadline: d('Headlines/DeleteMonthlyHeadline'),\r\n helpStatusLabel: d('HelpText/MonthlyLimit', {\r\n BUTTON: f.month.isPending() ? d('LimitLabels/ChangeMonthlyLimit') : d('LimitLabels/AddNewMonthlyLimit')\r\n }),\r\n idPrefix: 'AmountLimitMonthly',\r\n storedValue: f.month.storedValue,\r\n plannedValue: f.month.plannedValue,\r\n planned: f.month.future,\r\n plannedAt: f.month.futureDate,\r\n isActive: f.month.isActive,\r\n othersActive: f.month.othersActive,\r\n othersIsNew: m.prop(f.day.isNew() || f.week.isNew()),\r\n isNew: f.month.isNew,\r\n isPending: f.month.isPending,\r\n isDeleting: f.month.isDeleting,\r\n isEdit: f.month.isEdit,\r\n isReverting: f.month.isReverting,\r\n isOperator: f.month.isOperator,\r\n isOperatorButLoweredByUser: f.month.isOperatorButLoweredByUser,\r\n canDelete: m.prop(canDelete),\r\n focus: m.prop(false)\r\n }];\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var limits = nodes['limits'];\r\n\r\n if (limits.rendered && controller.responsibleGaming() && !controller.responsibleGamingShown() && !controller.playerDefinedDepositLimits()) {\r\n if (!controller.userInfo().hasOwnProperty('customerInfo')) {\r\n controller.userInfo = m.prop(LoginCache.getUserObj());\r\n controller.limitsMissingModal(LimitsMissingModal(controller.d, controller.userInfo, controller.pageSettings().SelectUrl));\r\n }\r\n controller.responsibleGamingShown(true);\r\n controller.limitsMissingModal().show();\r\n }\r\n });\r\n\r\n return m('section', {\r\n class: 'pam-profile-amount-limits-page',\r\n 'data-uitest-id': 'pam-playerProfile-amountLimits'\r\n }, [\r\n document.querySelector('body').classList.contains('app-web-view') ?\r\n NavigationHeader(DS.Config.PRETTYPREFIX + '/mine-oplysninger/', false) : '',\r\n m('.amount-limits__content', { config: render.depend('limits') }, [\r\n m('.amount-limits__inner-content', [\r\n m('h1', controller.d('Title')),\r\n d('Tooltips/Limits').length > 0 ? m('.amount-limits__tooltip', { tooltip: d('Tooltips/Limits') }, '?') : null,\r\n m('p.abstract', hasLimits ? m.trust(d('Description/AtleastOneLimit')) : m.trust(d('Description/NoLimit'))),\r\n m('.amount-limits__options', [\r\n limits.map(function (limit) {\r\n return new AmountLimit(controller, limit);\r\n })\r\n ])\r\n\r\n ]),\r\n\r\n hasLimits || (f.day.isActive() || f.week.isActive() || f.month.isActive()) ?\r\n m('.pam__button-container', controller.showGeneralValidationError() ? { errorMessage: d('ValidationMessages/NoChanges') } : '', [\r\n m(Button, {\r\n text: {\r\n default: d('SubmitButton')\r\n },\r\n loading: controller.submitLoading(),\r\n onclick: controller.submit\r\n })\r\n ]) : ''\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n m.route.mode = 'hash';\r\n\r\n m.route(element, '/', !Utils.isDesktop() ? {\r\n '/': m.component(RouteSlide(root, { level: 0 })),\r\n '/confirm': m.component(RouteSlide(ConfirmComponent, { level: 1 }), { options: confirmData }),\r\n '/receipt': m.component(RouteSlide(ReceiptComponent, { level: 2 }), { options: receiptData })\r\n } : {\r\n '/': m.component(root),\r\n '/confirm': m.component(ConfirmComponent, { options: confirmData }),\r\n '/receipt': m.component(ReceiptComponent, { options: receiptData })\r\n });\r\n\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/PlayerProfileSelectLimit',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/DataSettings',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileAmountLimitsApi',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/Confirm',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/Receipt',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/SelectLimitsModel',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/SelectLimitStep0',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/SelectLimitStep1'\r\n ],\r\n function (Component, Utils, Ensighten, RouteSlide, Dictionary, DataSettings, PamUtils, Api, ConfirmComponent, ReceiptComponent, SelectLimitsModel, Step0, Step1) {\r\n 'use strict';\r\n\r\n Component('player-profile-select-limit', [\r\n Dictionary,\r\n DataSettings({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetAmountLimits',\r\n name: 'AmountLimits'\r\n })\r\n ], function (m, ignoredRoute, settings, ignoredProperty, element, dependencyData) {\r\n\r\n var confirmData = m.prop({});\r\n var receiptData = m.prop({});\r\n\r\n var controller = function () {\r\n\r\n var self = this;\r\n self.next = m.prop('/limit');\r\n self.submitLoading = m.prop(false);\r\n self.pageSettings = m.prop(settings);\r\n self.d = Dictionary.get.bind({ prefix: 'PlayerProfile/SelectLimit/' });\r\n self.saved = dependencyData.AmountLimits.SavedUserDepositLimits;\r\n self.stepMax = 4;\r\n self.steps = self.d('StepGuide');\r\n self.stepRoutes = m.prop(['/', '/limit', '/confirm', '/receipt']);\r\n self.stepLabels = m.prop([self.steps.Step1, self.steps.Step2, self.steps.Step3, self.steps.Step4]);\r\n self.hasReturnUrl = m.prop(PamUtils.getParameter('returnUrl'));\r\n\r\n if (self.saved.PlayerDefinedLimitFound) {\r\n window.location.href = self.pageSettings().RedirectUrl;\r\n }\r\n\r\n this.getLimit = function (type) {\r\n return self.saved.limits.filter(function (limit) {\r\n return limit.Type === type;\r\n }).map(function (limit) {\r\n var limitIdentifier = limit.Type && limit.Type.length > 2 ? 'Max' + limit.Type.charAt(0).toUpperCase() + limit.Type.slice(1) : 'unknownType';\r\n var sitecoreMaxLimit = settings.MaxLimits.hasOwnProperty(limitIdentifier) ? settings.MaxLimits[limitIdentifier] : null;\r\n var pamMaxLimit = limit.Max ? PamUtils.convertCentsToKroner(limit.Max) : Number.MAX_VALUE; // If PAM bo doesn't have a global limit value, then default to largest integer\r\n return {\r\n max: sitecoreMaxLimit && sitecoreMaxLimit < pamMaxLimit ? sitecoreMaxLimit : pamMaxLimit,\r\n value: ''\r\n };\r\n }).shift();\r\n };\r\n\r\n self.model = SelectLimitsModel.new({\r\n dictionary: this.d,\r\n min: self.pageSettings().IgnoreMinDepositLimitValidation ? 1 : self.pageSettings().MinimumAmount || 50, // If no cards minimum limits has found default to 50 kr\r\n day: this.getLimit('daily'),\r\n week: this.getLimit('weekly'),\r\n month: this.getLimit('monthly')\r\n });\r\n\r\n self.proceed = function () {\r\n m.route(this.next());\r\n }.bind(this);\r\n\r\n self.goToConfirm = function () {\r\n Ensighten.pushVirtualPage('/confirm', (window.location.pathname.replace(/-/g, '_') + '/confirm'), 'selectPage');\r\n confirmData({\r\n minimumAmount: this.pageSettings().MinimumAmount,\r\n title: self.d('Titles/Step2'),\r\n settings: self.changes(),\r\n dictionary: self.d,\r\n redirectButtonText: self.d('Buttons/Save'),\r\n redirectButtonText2: self.d('Buttons/Return'),\r\n stepCurrent: 3,\r\n stepMax: self.stepMax,\r\n stepRoutes: self.stepRoutes,\r\n stepLabels: self.stepLabels,\r\n callback: function () {\r\n Ensighten.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), 'selectPage');\r\n self.confirm();\r\n },\r\n callback2: function () {\r\n m.route('/limit');\r\n }\r\n });\r\n m.route('/confirm');\r\n };\r\n\r\n self.submit = function () {\r\n self.model.validate(self.selectedLimit().validation, true).then(function () {\r\n if (self.model.getStepState(self.selectedLimit().validation).state) {\r\n self.goToConfirm();\r\n }\r\n });\r\n };\r\n\r\n self.confirm = function () {\r\n Api.setLimits(self.changes()).then(function (response) {\r\n if (response.status) {\r\n self.submitLoading(false);\r\n m.redraw();\r\n return false;\r\n }\r\n\r\n var saved = response.SavedUserDepositLimits;\r\n\r\n // Track a new limit was set. Only one limit can be set\r\n var trackingMessage = '';\r\n\r\n // We have to use === false. If the global Limit is not setup in SG backoffice the flag is null, hence we can't\r\n // use the default ! operator to check if it is defined.\r\n if (saved.limits[0].IsGlobal === false) {\r\n trackingMessage = 'DAY_' + (saved.limits[0].Value / 100);\r\n }\r\n if (saved.limits[1].IsGlobal === false) {\r\n trackingMessage = 'WEEK_' + (saved.limits[1].Value / 100);\r\n }\r\n if (saved.limits[2].IsGlobal === false) {\r\n trackingMessage = 'MONTH_' + (saved.limits[2].Value / 100);\r\n }\r\n Ensighten.pushGaEvent('beloebsgraense', 'opret_graense', trackingMessage);\r\n\r\n receiptData({\r\n title: self.d('Titles/Step3'),\r\n limits: saved.limits,\r\n settings: self.changes(),\r\n dictionary: self.d,\r\n redirectButtonText: self.hasReturnUrl() ? self.d('Buttons/ProceedToReturnUrl') : self.d('Buttons/Proceed'),\r\n redirectButtonText2: self.hasReturnUrl() ? null : self.d('Buttons/DepositLimits'),\r\n stepCurrent: 4,\r\n stepMax: self.stepMax,\r\n stepRoutes: m.prop(false),\r\n stepLabels: self.stepLabels,\r\n callback: function () {\r\n var returnUrl = PamUtils.getParameter('signupSuccessUrl') || PamUtils.getParameter('returnUrl') || '';\r\n var decodedUrl = decodeURIComponent(returnUrl);\r\n\r\n if (decodedUrl) {\r\n // If we find an returnUrl=app://dummy, refresh login information in order to allow apps to successfully log in.\r\n if (PamUtils.isAppUrl(decodedUrl)) {\r\n PamUtils.repopulateUrlWithAssertionIdAndLoginId(decodedUrl, function (populatedUrl) {\r\n window.location.href = populatedUrl;\r\n });\r\n\r\n } else {\r\n // We have a return url, lets just redirect.\r\n window.location.href = decodedUrl;\r\n }\r\n } else {\r\n window.location.href = self.pageSettings().ProceedUrl ? PamUtils.getRedirectUrlWithDsApplicationIdAndReturnUrl(self.pageSettings().ProceedUrl) : window.location.origin;\r\n }\r\n },\r\n callback2: function () {\r\n window.location.href = self.pageSettings().RedirectUrl ? PamUtils.getRedirectUrlWithDsApplicationIdAndReturnUrl(self.pageSettings().RedirectUrl) : window.location.origin;\r\n }\r\n });\r\n\r\n m.redraw();\r\n }).then(function () {\r\n // Request succeeded lets proceed\r\n history.replaceState('selectLimit', null, window.location.pathname + window.location.search);\r\n m.route('/receipt');\r\n }).catch(function (error) {\r\n // SG returned an error, lets return to root page.\r\n console.error('DS.Failed.Saving.New.Limit', error);\r\n m.route('/');\r\n })\r\n ;\r\n };\r\n\r\n self.previous = function () {\r\n m.route('/');\r\n };\r\n\r\n var f = this.model.fields;\r\n\r\n this.limits = [{\r\n model: f.newDaily,\r\n type: 'DAY',\r\n validation: 'newDaily',\r\n label: this.d('LimitLabels/DailyLimit'),\r\n isSelected: f.day.isSelected\r\n }, {\r\n model: f.newWeekly,\r\n type: 'WEEK',\r\n validation: 'newWeekly',\r\n label: this.d('LimitLabels/WeeklyLimit'),\r\n isSelected: f.week.isSelected\r\n }, {\r\n model: f.newMonthly,\r\n type: 'MONTH',\r\n validation: 'newMonthly',\r\n label: this.d('LimitLabels/MonthlyLimit'),\r\n isSelected: f.month.isSelected\r\n }];\r\n\r\n self.selectedLimit = m.prop({});\r\n\r\n self.changes = function () {\r\n var settings = {};\r\n var selected = this.selectedLimit();\r\n\r\n switch (selected.type) {\r\n case 'DAY':\r\n settings.MaxDaily = selected.model();\r\n settings.SavedMaxDaily = -1;\r\n break;\r\n case 'WEEK':\r\n settings.MaxWeekly = selected.model();\r\n settings.SavedMaxWeekly = -1;\r\n break;\r\n case 'MONTH':\r\n settings.MaxMonthly = selected.model();\r\n settings.SavedMaxMonthly = -1;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return settings;\r\n };\r\n };\r\n\r\n var rootctrl = new controller();\r\n\r\n m.route.mode = 'hash';\r\n // Routes:\r\n m.route(element, '/', !Utils.isDesktop() ? {\r\n '/': m.component(RouteSlide(Step0, { level: 0 }), rootctrl),\r\n '/limit': m.component(RouteSlide(Step1, { level: 1 }), rootctrl),\r\n '/confirm': m.component(RouteSlide(ConfirmComponent, { level: 2 }), { options: confirmData }),\r\n '/receipt': m.component(RouteSlide(ReceiptComponent, { level: 3 }), { options: receiptData })\r\n } : {\r\n '/': m.component(Step0, rootctrl),\r\n '/limit': m.component(Step1, rootctrl),\r\n '/confirm': m.component(ConfirmComponent, { options: confirmData }),\r\n '/receipt': m.component(ReceiptComponent, { options: receiptData })\r\n });\r\n });\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Acknowledgement',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/PlayerProfileAcknowledgementApi',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/DataSettings',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt'\r\n\r\n ],\r\n function (Component, Ensighten, Api, Dictionary, DataSettings, Utils, Receipt) {\r\n 'use strict';\r\n\r\n Component('player-profile-acknowledgement', [\r\n Dictionary,\r\n DataSettings({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/GetAcknowledgement',\r\n name: 'Acknowledgement'\r\n })\r\n ], function (m, ignoredRoute, settings, ignoredProperty, element, dependencyData) {\r\n\r\n var receiptData = m.prop({});\r\n\r\n var root = {\r\n\r\n controller: function () {\r\n\r\n this.pageSettings = settings;\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/Acknowledgement/' });\r\n this.accepted = m.prop(false);\r\n this.messages = dependencyData.Acknowledgement.Messages.map(function (message) {\r\n return {\r\n id: m.prop(message.Id),\r\n message: m.prop(message.Message),\r\n accepted: m.prop(false)\r\n };\r\n });\r\n this.error = m.prop('');\r\n\r\n this.acceptMessage = function (message) {\r\n var currentState = message.accepted();\r\n message.accepted(!currentState);\r\n };\r\n\r\n this.allAccepted = function () {\r\n return this.messages.every(function (message) {\r\n return message.accepted();\r\n });\r\n }.bind(this);\r\n\r\n this.confirm = function (event) {\r\n event.preventDefault();\r\n if (this.allAccepted()) {\r\n var payload = this.messages.map(function (message) {\r\n return { Id: message.id() };\r\n });\r\n Api.acknowledge(payload).then(function (response) {\r\n Ensighten.pushVirtualPage('/receipt', (window.location.pathname.replace(/-/g, '_') + '/receipt'), 'AcknowledgementPage');\r\n\r\n receiptData({\r\n title: response.Headline,\r\n bodyText: m.trust(response.BodyText),\r\n redirectButtonText: response.ButtonText,\r\n noCountdown: true,\r\n callback: function () {\r\n var url;\r\n var redirectUrl = Utils.getParameter('redirectUrl');\r\n var returnUrl = Utils.getParameter('returnUrl');\r\n\r\n if (redirectUrl) {\r\n if (returnUrl) {\r\n url = Utils.appendParameter('returnUrl', returnUrl, redirectUrl);\r\n } else {\r\n url = redirectUrl;\r\n }\r\n } else {\r\n url = returnUrl || Utils.getDefaultRedirectUrl();\r\n }\r\n\r\n var decodedUrl = decodeURIComponent(url);\r\n if (Utils.isAppUrl(decodedUrl)) {\r\n Utils.repopulateUrlWithAssertionIdAndLoginId(decodedUrl, function (populatedUrl) {\r\n window.location.href = populatedUrl;\r\n });\r\n\r\n } else {\r\n window.location.href = decodedUrl;\r\n }\r\n },\r\n uiTestId: 'pam-playerProfile-acknowledge-receipt'\r\n });\r\n\r\n m.route('/receipt');\r\n });\r\n } else {\r\n this.error(this.d('ErrorMessage'));\r\n }\r\n }.bind(this);\r\n\r\n },\r\n\r\n view: function (controller) {\r\n return m('.acknowledgements', [\r\n m('.acknowledgements__container',\r\n m('.acknowledgements__content', [\r\n controller.messages.length > 0 ? m('h3.acknowledgements__header', controller.d('Header')) : m('h3.acknowledgements__header', controller.d('HeaderNoMessages')),\r\n controller.messages.length > 0 ? m('.acknowledgement__elements', [\r\n controller.messages.map(function (message) {\r\n return m('.acknowledgement__element', [\r\n m('.acknowledgement__message', m.trust(message.message())),\r\n m('.acknowledgement__checkbox', { onclick: function () { controller.acceptMessage(message); } }, [\r\n m('input.acknowledgement__checkbox-input', { type: 'checkbox', checked: message.accepted() }),\r\n m('.acknowledgement__checkbox-text', controller.d('ConfirmToggle'))\r\n ])\r\n ]);\r\n })\r\n ]) : m('.acknowledgement__no-elements', controller.d('DescriptionNoMessages')),\r\n controller.allAccepted() ? null : m('.acknowledgement__error', controller.error()),\r\n controller.messages.length > 0 ? m('button.pam__button', {\r\n class: controller.allAccepted() ? '' : 'pam__button--disabled pam__button--grey',\r\n onclick: controller.confirm\r\n }, controller.d('Button')) : null\r\n ])\r\n )\r\n ]);\r\n\r\n }\r\n\r\n };\r\n\r\n m.route.mode = 'hash';\r\n // Routes:\r\n m.route(element, '/', {\r\n '/': m.component(root),\r\n '/receipt': m.component(Receipt, { options: receiptData })\r\n });\r\n });\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/MyPageView', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/QuickLink',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/MyPageModel',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/MyPageData',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageOverview',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPagePassword',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageEmail',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPagePhone',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageAlias',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageCards',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/MyPageAccount',\r\n], function (Component,\r\n QuickLink,\r\n ApiRequest,\r\n Receipt,\r\n ReceiptData,\r\n RouteSlide,\r\n Dictionary,\r\n Utils,\r\n MyPageModel,\r\n MyPageData,\r\n MyPageOverview,\r\n MyPagePassword,\r\n MyPageEmail,\r\n MyPagePhone,\r\n MyPageAlias,\r\n MyPageCards,\r\n MyPageAccount) {\r\n\r\n var QuickLinks = new QuickLink('/MyAccountPage/AppWebView');\r\n\r\n // Component:\r\n Component('m-mypageview', [Dictionary, QuickLinks], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n // Components:\r\n\r\n var controller = function () {\r\n this.d = Dictionary.get.bind({ prefix: 'PlayerProfile/MyPage/' });\r\n var d = this.d;\r\n this.links = QuickLinks.get;\r\n\r\n this.model = m.prop();\r\n this.initialProps = m.prop();\r\n this.loading = m.prop(true);\r\n this.allowSetAlias = m.prop(true);\r\n this.paymentUrl = settings.PaymentPageUrl;\r\n this.createSubscriptionFlowLink = settings.CreateSubscriptionFlowLink;\r\n this.createSubscriptionFlowLabel = settings.CreateSubscriptionFlowLabel;\r\n this.mySubscriptionsUrl = settings.MySubscriptionsLinkURL;\r\n this.mySubscriptionsTitle = settings.MySubscriptionsLinkTitle;\r\n this.maxNumberOfCreditCards = settings.MaxNumberOfCreditCards;\r\n this.changePasswordRequiredPopup = settings.ChangePasswordRequiredPopup;\r\n this.blockPayoutExclusionTimer = settings.BlockPayoutExclusionTimer;\r\n\r\n this.getAccountData = function () {\r\n return MyPageData.getData().then(function (response) {\r\n this.model(new MyPageModel(response));\r\n this.initialProps(new MyPageModel(response));\r\n\r\n Utils.sortCardsList(this.model().fields.CardsList());\r\n\r\n if (this.model().fields.Alias()) {\r\n this.allowSetAlias(false);\r\n }\r\n\r\n if (m.route() === '/alias' && !this.allowSetAlias()) {\r\n window.location.href = decodeURIComponent(Utils.getParameter('returnUrl')) || '';\r\n }\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n this.getActiveSubscriptions = function () {\r\n return ApiRequest({\r\n url: '/dlo/scapi/danskespil/subscriptions/subscriptions'\r\n }).then(function (subscriptions) {\r\n var fundingMethodIds = [];\r\n\r\n subscriptions.filter(function (subscription) {\r\n if (/active/.test(subscription.templateState.toLowerCase()) && subscription.fundingPaymentMethod.toLowerCase() === 'card') {\r\n return subscription;\r\n }\r\n }).forEach(function (subscription) {\r\n var id = subscription.fundingPaymentMethodId;\r\n\r\n if (fundingMethodIds.indexOf(id) === -1) {\r\n fundingMethodIds.push(id);\r\n }\r\n });\r\n\r\n var cards = [];\r\n\r\n this.model().fields.CardsList().filter((card) => !card.isApplePay).forEach(function (card) {\r\n card.isAssociatedWithSubscription = fundingMethodIds.indexOf(card.cardId) > -1;\r\n\r\n cards.push(card);\r\n });\r\n\r\n this.model().fields.CardsList(cards);\r\n this.loading(false);\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n var requests = [this.getAccountData()];\r\n m.sync(requests).then(function () {\r\n if (DS.Config.CONTEXT === 'DLO') {\r\n this.getActiveSubscriptions();\r\n } else {\r\n this.loading(false);\r\n }\r\n m.redraw(true);\r\n }.bind(this));\r\n\r\n\r\n\r\n this.receiptData = new ReceiptData({\r\n waitTime: parseInt(d('Receipt/WaitTime'), 10),\r\n previousLocation: d('Receipt/RedirectName'),\r\n redirectButtonText: d('Receipt/ButtonText'),\r\n callback: function () {\r\n var returnUrl = Utils.getParameter('returnUrl') || m.route.param('returnUrl');\r\n\r\n if (returnUrl) {\r\n window.location.href = decodeURIComponent(returnUrl);\r\n } else {\r\n window.location.replace(window.location.href.split('#')[0]); // remove receipt from browser history\r\n }\r\n },\r\n showAccountHeader: true,\r\n uiTestId: 'pam-myPage-receipt'\r\n });\r\n };\r\n\r\n var rootctrl = new controller();\r\n\r\n m.route.mode = 'hash';\r\n // Routes:\r\n m.route(element, '/', {\r\n '/': m.component(RouteSlide(MyPageOverview, { level: 0 }), rootctrl),\r\n '/password': m.component(RouteSlide(MyPagePassword, { level: 1 }), rootctrl),\r\n '/email': m.component(RouteSlide(MyPageEmail, { level: 1 }), rootctrl),\r\n '/alias': m.component(RouteSlide(MyPageAlias, { level: 1 }), rootctrl),\r\n '/phone': m.component(RouteSlide(MyPagePhone, { level: 1 }), rootctrl),\r\n '/cards': m.component(RouteSlide(MyPageCards, { level: 1 }), rootctrl),\r\n '/account': m.component(RouteSlide(MyPageAccount, { level: 1 }), rootctrl),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 2 }), { options: rootctrl.receiptData })\r\n });\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/ChangePasswordView', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Data/ChangePasswordApi',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Models/ChangePasswordModel',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/CustomInput',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData'\r\n],\r\n// this view is for Faroe users only\r\nfunction (Utils, Component, Dictionary, ChangePasswordApi, ChangePasswordModel, Receipt, RouteSlide, CustomInput, Button, ReceiptData) {\r\n 'use strict';\r\n\r\n Component('m-changepasswordview', [Dictionary], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n\r\n var d = Dictionary.get.bind({ prefix: 'PlayerProfile/ChangePassword/' });\r\n var root = {\r\n controller: function () {\r\n\r\n var self = this;\r\n\r\n var token = Utils.getParameter('token');\r\n this.isValid = true;\r\n ChangePasswordApi.isPasswordTokenValid(token).then(function (response) {\r\n if (!response.ResetTokenIsValid) {\r\n self.isValid = false;\r\n }\r\n });\r\n\r\n settings = settings || {};\r\n\r\n this.submitLoading = m.prop(false);\r\n\r\n this.viewModel = m.prop({\r\n isWebview: (window.location.href.indexOf('webview') > -1)\r\n });\r\n\r\n this.model = m.prop();\r\n this.model(new ChangePasswordModel({ dictionary: d }));\r\n var model = this.model();\r\n\r\n this.submit = function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var validateFields = ['Password', 'PasswordRepeat'];\r\n model.validate(validateFields).then(function () {\r\n if (model.getStepState(validateFields).state) {\r\n var f = model.fields;\r\n self.submitLoading(true);\r\n m.redraw();\r\n ChangePasswordApi.changePassword(f.Password(), f.PasswordRepeat(), token).then(function (response) {\r\n if (response.OperationSuccess) {\r\n m.route('/receipt');\r\n }\r\n });\r\n }\r\n }.bind(model));\r\n };\r\n },\r\n\r\n view: function (controller) {\r\n var model = controller.model();\r\n\r\n if (!controller.isValid) {\r\n return m('div', [\r\n m('.pam-page__content', [\r\n m('.pam-page__content__head', [\r\n m('h1', 'Skift kodeord'),\r\n m('p', d('InvalidPasswordToken'))\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: d('InvalidButton') },\r\n onclick: function () {\r\n window.location.href = d('InvalidButtonLink');\r\n }\r\n }),\r\n ]),\r\n m('br'), m('br')\r\n ]);\r\n }\r\n\r\n return m('div', {\r\n 'data-uitest-id': 'pam-playerProfile-changePassword'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__content__head', [\r\n m('h1', d('Title')),\r\n m('p', d('Abstract')),\r\n m('br'), m('br'),\r\n m('.pam-view__input', [\r\n m(CustomInput, {\r\n model: model.fields['Password'],\r\n type: 'password',\r\n align: 'center',\r\n placeholder: d('NewPasswordLabel')\r\n }),\r\n ]),\r\n m('.pam-view__input', [\r\n m(CustomInput, {\r\n model: model.fields['PasswordRepeat'],\r\n type: 'password',\r\n align: 'center',\r\n placeholder: d('RepeatNewPasswordLabel'),\r\n }),\r\n m('.pam-view__input__info', [\r\n m('p', d('PasswordRequirements'))\r\n ])\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n text: { default: d('SubmitButton') },\r\n loading: controller.submitLoading(),\r\n onclick: controller.submit\r\n }),\r\n ])\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n\r\n var receiptData = new ReceiptData({\r\n title: d('Receipt/Headline'),\r\n description: d('Receipt/Abstract'),\r\n bodyText: d('Receipt/BodyText'),\r\n waitTime: parseInt(d('Receipt/WaitTime'), 10),\r\n redirectButtonText: d('Receipt/ButtonText'),\r\n callback: function () {\r\n window.location.href = d('Receipt/GoOnLink');\r\n },\r\n uiTestId: 'pam-playerProfile-password-receipt'\r\n });\r\n\r\n m.route.mode = 'hash';\r\n\r\n m.route(element, '/', {\r\n '/': RouteSlide(root, { level: 0 }),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 1 }), { options: receiptData })\r\n });\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/PermissionStep', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Notifications/Scripts/Data/NotificationsApi',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n], function (m, Button, NotificationsApi, Ensighten) {\r\n 'use strict';\r\n\r\n var root = {\r\n controller: function (controller) {\r\n\r\n var self = this;\r\n self.model = controller.model;\r\n self.d = controller.d;\r\n self.submitPermissionLoading = m.prop(false);\r\n self.noPermissionLoading = m.prop(false);\r\n self.settings = controller.pageSettings();\r\n\r\n self.checkEnter = function (e) {\r\n e = e || window.event;\r\n if (e.keyCode == 13) {\r\n self.submit(e);\r\n }\r\n };\r\n\r\n self.submit = function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (event.currentTarget.id === 'submitPermissionButton') {\r\n self.setAccept(true);\r\n } else {\r\n self.setAccept(false);\r\n }\r\n m.route('/receipt');\r\n };\r\n\r\n self.setAccept = function (value) {\r\n const data = {\r\n TermsConsent: value\r\n };\r\n NotificationsApi.updateTermsConsentSettings(data).then(function (ignoreResponse) {\r\n Ensighten.pushGaEvent('permission', value ? 'newsletter_yes' : 'newsletter_no', self.settings.title);\r\n });\r\n };\r\n },\r\n\r\n view: function (controller) {\r\n return m('section', {\r\n class: 'pam-profile-permission-page',\r\n 'data-uitest-id': 'pam-playerPermission'\r\n }, [\r\n m('div', {\r\n class: 'step1'\r\n }, [\r\n m('div', [\r\n m('.pam-page__inner-content .container--small box spacing-top content-center', [\r\n m('div', { class: 'logo' }),\r\n m('h2.pam-view__headline', controller.settings.title),\r\n m('.pam-view__headline--sub', m('p', m.trust(controller.settings.description))),\r\n m('div', { class: 'spacing-top' }, [\r\n m(Button, {\r\n text: { default: controller.settings.submitPermissionButtonText },\r\n loading: controller.submitPermissionLoading(),\r\n onclick: controller.submit,\r\n classes: { default: 'button button--full-width' },\r\n id: 'submitPermissionButton'\r\n })\r\n ]),\r\n m('div', { class: 'spacing-top' }, [\r\n m(Button, {\r\n text: { default: controller.settings.noPermissionButtonText },\r\n loading: controller.noPermissionLoading(),\r\n onclick: controller.submit,\r\n classes: { default: 'button button--full-width' },\r\n id: 'noPermissionButton'\r\n })\r\n ])\r\n ]),\r\n ]),\r\n ])\r\n ]);\r\n }\r\n };\r\n return root;\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Permission',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/DataSettings',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerProfile/Scripts/Components/PermissionStep',\r\n ],\r\n function (Component, Dictionary, DataSettings, PamUtils, Receipt, ReceiptData, Step0) {\r\n 'use strict';\r\n Component('player-profile-permission', [Dictionary, DataSettings], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n var controller = function () {\r\n var self = this;\r\n // self.next = m.prop('/limit');\r\n self.stepLabels = m.prop('1', '2');\r\n self.stepRoutes = m.prop(['/', '/confirm', '/receipt']);\r\n self.stepMax = 2;\r\n self.submitLoading = m.prop(false);\r\n self.pageSettings = m.prop(settings);\r\n\r\n self.hasReturnUrl = m.prop(PamUtils.getParameter('returnUrl'));\r\n self.receiptData = new ReceiptData({\r\n noCountdown: true,\r\n title: settings.receiptTitle,\r\n bodyText: settings.receiptDescription,\r\n redirectButtonText: settings.receiptButtonText,\r\n callback: function () {\r\n var returnUrl = PamUtils.getParameter('returnUrl') || m.route.param('returnUrl');\r\n\r\n if (PamUtils.isAppUrl(returnUrl)) {\r\n // app url\r\n } else if (returnUrl) {\r\n window.location.href = decodeURIComponent(returnUrl);\r\n } else {\r\n window.location.replace(window.location.href.split('#')[0]); // remove receipt from browser history\r\n }\r\n },\r\n showAccountHeader: true,\r\n uiTestId: 'pam-permission-receipt'\r\n });\r\n };\r\n\r\n\r\n\r\n var rootctrl = new controller();\r\n\r\n m.route.mode = 'hash';\r\n // Routes:\r\n m.route(element, '/', {\r\n '/': m.component(Step0, rootctrl),\r\n '/receipt': m.component(Receipt, { options: rootctrl.receiptData })\r\n });\r\n });\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/PlayCard/Scripts/PlayCard',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Dictionary',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayCard/Scripts/Data/PlayCardApi',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Receipt',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/RouteSlide',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Components/Button',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/LoadDots',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/ReceiptData',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n ],\r\n function (Component, Dictionary, PlayCardApi, Receipt, RouteSlide, Button, LoadDots, ReceiptData, Ensighten) {\r\n 'use strict';\r\n\r\n Component('play-card', [Dictionary], function (m, ignoredRoute, settings, ignoredProperty, element) {\r\n\r\n var receiptData = new ReceiptData({\r\n uiTestId: 'pam-playCard-receipt'\r\n });\r\n\r\n var root = {\r\n controller: function () {\r\n this.d = Dictionary.get.bind({ prefix: 'PlayCard/' });\r\n this.loading = m.prop(true);\r\n\r\n this.submitLoading = m.prop(false);\r\n\r\n settings = settings || {};\r\n\r\n this.model = m.prop({\r\n accountNumber: m.prop(settings.AccountNumber || null),\r\n cardNumber: m.prop(settings.CardNumber || null),\r\n expirationDate: m.prop(settings.ExpirationDate || null),\r\n showOrderPlayCardButton: m.prop(null)\r\n });\r\n\r\n PlayCardApi.getPlayCard().then(function (response) {\r\n this.model().accountNumber(response.PaymentAccount);\r\n this.model().cardNumber(response.CardNumber);\r\n this.model().expirationDate(response.ExpirationDate);\r\n this.model().showOrderPlayCardButton(response.ShowOrderPlayCardButton);\r\n this.loading(false);\r\n m.redraw();\r\n }.bind(this));\r\n\r\n this.orderPlayCard = function (e) {\r\n e.preventDefault();\r\n this.submitLoading(true);\r\n PlayCardApi.orderPlayCard().then(function (response) {\r\n Ensighten.pushGaEvent('spilkort', 'click', 'bestilt');\r\n\r\n receiptData.assign({\r\n title: response.Headline,\r\n description: response.Abstract,\r\n redirectButtonText: response.ButtonText,\r\n callback: function () {\r\n m.route('/');\r\n },\r\n uiTestId: 'pam-playCard-receiptOrderCard'\r\n });\r\n\r\n m.route('/receipt');\r\n }, function () {\r\n this.submitLoading(false);\r\n m.redraw();\r\n });\r\n }.bind(this);\r\n\r\n },\r\n\r\n view: function (controller) {\r\n var d = controller.d;\r\n\r\n if (controller.loading()) return m('', [LoadDots({ size: 'half-height', text: d('LoadingText') })]);\r\n var model = controller.model();\r\n\r\n return m('.pam-page', {\r\n 'data-uitest-id': 'pam-playCard'\r\n }, [\r\n m('.pam-page__content', [\r\n m('.pam-page__inner-content', [\r\n m('h1', d('Headline')),\r\n m('p.abstract', d('Abstract')),\r\n m('div', { class: ' pam__button--buttom-spacing' }, [\r\n m(Button, {\r\n classes: { default: 'pam__button pam__button--order' },\r\n text: { default: d('ButtonLabelDigital') },\r\n href: d('ButtonLabelDigitalLink')\r\n }),\r\n ])\r\n ]),\r\n\r\n model.showOrderPlayCardButton() ?\r\n (m('', [\r\n m('.play-card-page__content', [\r\n m('p.abstract', d('Body')),\r\n ]),\r\n m('div', { class: 'pam__button-container pam__button-container--large-spacing' }, [\r\n m(Button, {\r\n classes: { default: 'pam__button-link' },\r\n uiTestId: 'play-card-order',\r\n text: { default: d('ButtonLabel') },\r\n loading: controller.submitLoading(),\r\n onclick: controller.orderPlayCard\r\n })\r\n ])\r\n ])) : null\r\n ]),\r\n ]);\r\n }\r\n };\r\n\r\n\r\n m.route.mode = 'hash';\r\n\r\n m.route(element, '/', {\r\n '/': RouteSlide(root, { level: 0 }),\r\n '/receipt': m.component(RouteSlide(Receipt, { level: 1 }), { options: receiptData })\r\n });\r\n });\r\n });\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Faq/Scripts/FaqInit', function () {\r\n\r\n var faqQuestions = document.querySelectorAll('.js-faq-question');\r\n\r\n if (faqQuestions) {\r\n faqQuestions.forEach(function (question) {\r\n question.addEventListener('click', function (ev) {\r\n var current = ev.currentTarget;\r\n var openedQuestions = document.querySelectorAll('.faq__container--open');\r\n\r\n openedQuestions.forEach(function (opened) {\r\n if (opened !== current) {\r\n opened.classList.remove('faq__container--open');\r\n }\r\n });\r\n\r\n if (current) {\r\n current.classList.toggle('faq__container--open');\r\n }\r\n });\r\n });\r\n }\r\n});\r\n","defineDs('DanskeSpil/Domain/AvalonComponents/Scripts/Components/AppComplianceBar', function () {\r\n let pamPage;\r\n const startTime = new Date();\r\n const interval = setInterval(() => {\r\n pamPage = document.querySelector('.pam-page') || document.querySelector('.payment');\r\n\r\n if (pamPage) {\r\n const appComplianceBar = document.querySelector('.app-compliance-bar');\r\n\r\n if (!appComplianceBar) {\r\n return;\r\n }\r\n\r\n const styles = window.getComputedStyle(appComplianceBar);\r\n if (pamPage && styles && appComplianceBar.classList.contains('app-compliance-bar--show')) {\r\n pamPage.style[appComplianceBar.classList.contains('app-compliance-bar--stick-bottom') ? 'paddingBottom' : 'marginTop'] = appComplianceBar.getBoundingClientRect().height + parseFloat(styles['paddingTop']) + 'px';\r\n }\r\n\r\n if (pamPage && styles && appComplianceBar.classList.contains('app-compliance-timeConsuming--show')) {\r\n pamPage.style['marginTop'] = appComplianceBar.getBoundingClientRect().height + 30 + parseFloat(styles['paddingTop']) + 'px';\r\n }\r\n\r\n clearInterval(interval);\r\n\r\n // Retry for no more than 20 seconds\r\n } else if (new Date - startTime > 20000) {\r\n clearInterval(interval);\r\n }\r\n }, 300);\r\n});\r\n\r\n","defineDs('DanskeSpil/Domain/AvalonComponents/Scripts/Components/AppComplianceBarCasino', [\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n], function (TimeUtils, LoginCache) {\r\n let pamPage;\r\n const startTime = new Date();\r\n let waitSecondsForLoginAtTime = 3;\r\n let loginAtTime;\r\n\r\n const appComplianceBar = document.querySelector('.app-compliance-bar-casino');\r\n\r\n if (!appComplianceBar) {\r\n return;\r\n }\r\n\r\n const timeStampEl = appComplianceBar.querySelector('.app-compliance-bar-casino__counter-clock');\r\n const hiddenBalanceEl = appComplianceBar.querySelector('.app-compliance-bar-casino__balance--hidden');\r\n let hasHiddenBalance = !!hiddenBalanceEl;\r\n\r\n function formatToDKK(number) {\r\n return new Intl.NumberFormat('da-DK', { style: 'currency', currency: 'DKK' }).format(number);\r\n }\r\n\r\n // Helper function to pad numbers with leading zeros\r\n function pad(number) {\r\n return number < 10 ? '0' + number : number;\r\n }\r\n\r\n // Helper function to format a Date object into \"HH:MM:SS\"\r\n function formatTime(date) {\r\n let hours = date.getHours();\r\n let minutes = date.getMinutes();\r\n let seconds = date.getSeconds();\r\n return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;\r\n }\r\n\r\n function timeSinceOrCurrentTime(dateStr) {\r\n const givenDate = new Date(dateStr);\r\n const now = new Date(TimeUtils.getCurrentDateTime());\r\n\r\n // If the date is in the future, return the current time in the desired format\r\n if (!dateStr || now < givenDate) {\r\n return formatTime(now);\r\n }\r\n\r\n // Calculate the difference in milliseconds\r\n let diff = now - givenDate;\r\n\r\n // Convert milliseconds to hours, minutes, and seconds\r\n let hours = Math.floor(diff / (1000 * 60 * 60));\r\n diff -= hours * (1000 * 60 * 60);\r\n let minutes = Math.floor(diff / (1000 * 60));\r\n diff -= minutes * (1000 * 60);\r\n let seconds = Math.floor(diff / 1000);\r\n\r\n // Return the time difference in \"HH:MM:SS\" format\r\n return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;\r\n }\r\n\r\n function setAvailableBalance() {\r\n const availableBalance = LoginCache.getUserObj()?.customerInfo?.availableBalance;\r\n if (availableBalance) {\r\n const balanceEl = document.querySelector('.app-compliance-bar-casino__balance');\r\n if (balanceEl) {\r\n balanceEl.innerText = formatToDKK(availableBalance);\r\n }\r\n }\r\n }\r\n\r\n function getLoginAtTime() {\r\n if (loginAtTime) {\r\n return loginAtTime;\r\n }\r\n\r\n const userObj = LoginCache.getUserObj();\r\n loginAtTime = userObj?.customerInfo?.loginAt;\r\n\r\n if (loginAtTime) {\r\n return loginAtTime;\r\n }\r\n }\r\n\r\n const setTimeAndBalance = () => {\r\n setInterval(() => {\r\n if (!loginAtTime) {\r\n getLoginAtTime();\r\n }\r\n\r\n if (loginAtTime || waitSecondsForLoginAtTime < 0) {\r\n timeStampEl.innerText = timeSinceOrCurrentTime(loginAtTime);\r\n timeStampEl.classList.remove('app-compliance-bar-casino__counter-clock--hidden');\r\n\r\n if (hasHiddenBalance && loginAtTime) {\r\n setAvailableBalance();\r\n hiddenBalanceEl.classList.remove('app-compliance-bar-casino__balance--hidden');\r\n hasHiddenBalance = false;\r\n }\r\n\r\n } else {\r\n waitSecondsForLoginAtTime--;\r\n }\r\n }, 1000);\r\n\r\n setInterval(setAvailableBalance, 10000);\r\n };\r\n\r\n const interval = setInterval(() => {\r\n pamPage = document.querySelector('.pam-page') || document.querySelector('.payment');\r\n\r\n if (pamPage) {\r\n const styles = window.getComputedStyle(appComplianceBar);\r\n if (pamPage && styles) {\r\n pamPage.style['marginTop'] = appComplianceBar.getBoundingClientRect().height + parseFloat(styles['paddingTop']) + 'px';\r\n }\r\n\r\n setTimeAndBalance();\r\n clearInterval(interval);\r\n\r\n // Retry for no more than 20 seconds\r\n } else if (new Date - startTime > 20000) {\r\n clearInterval(interval);\r\n }\r\n }, 300);\r\n});\r\n\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Scripts/Data/PlayerStatTransactionsApi', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest'\r\n], function (ApiRequest) {\r\n\r\n const getPlayerWagerDays = (days = 30) => {\r\n return ApiRequest({\r\n url: DS.Config.CONTEXTPREFIX + `/scapi/danskespil/playeraccountmanagement/PlayerWagerDays/${days}`\r\n });\r\n };\r\n\r\n const getPlayerTransactionStats = () => {\r\n return ApiRequest({\r\n url: DS.Config.CONTEXTPREFIX + '/scapi/danskespil/playeraccountmanagement/PlayerTransactionStats'\r\n });\r\n };\r\n\r\n return {\r\n getPlayerWagerDays,\r\n getPlayerTransactionStats\r\n };\r\n});\r\n","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/BoxHeader', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n], function (m) {\r\n\r\n var BoxHeader = function (props) {\r\n const { link, optionalLink, subText } = props;\r\n\r\n return m('.pam-box__header', [\r\n optionalLink ? [\r\n m('a', {\r\n class: 'pam-box__header-title',\r\n href: optionalLink?.Url || '#',\r\n target: '_top'\r\n }, optionalLink?.Text),\r\n m('span', '/')\r\n ] : null,\r\n m('a', {\r\n class: 'pam-box__header-title',\r\n href: link?.Url || '#',\r\n target: link?.Target || '_top'\r\n }, link?.Text),\r\n subText ? m('.pam-box__header-label', subText) : null\r\n ]);\r\n };\r\n\r\n return BoxHeader;\r\n\r\n});","defineDs('DanskeSpil/Domain/PlayerAccountManagement/Scripts/Components/Widgets/TransactionsSummary',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/BoxHeader',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Data/PlayerStatTransactionsApi'\r\n ],\r\n function (Component, Svg, Utils, Loader, BoxHeader, PlayerStatTransactionsApi) {\r\n\r\n // Component:\r\n Component('transactions-summary', [], function (m, route, settings) {\r\n const returnUrl = Utils.getParameter('returnUrl');\r\n const { headerOptionalLink, headerSubText, footerText, paymentLabel, payoutLabel } = settings;\r\n let { headerLink } = settings;\r\n\r\n if (returnUrl) {\r\n headerLink.Url = Utils.appendParameter('returnUrl', returnUrl, headerLink.Url);\r\n headerOptionalLink.Url = Utils.appendParameter('returnUrl', returnUrl, headerOptionalLink.Url);\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(true);\r\n this.paymentAmount = m.prop(0);\r\n this.payoutAmount = m.prop(0);\r\n\r\n this.calculateVisualSize = (type) => {\r\n switch (type) {\r\n case 'payment':\r\n return (100 * Utils.getPercentageOfSize(this.paymentAmount(), this.paymentAmount() + this.payoutAmount())) + 'px';\r\n case 'payout':\r\n return (100 * Utils.getPercentageOfSize(this.payoutAmount(), this.paymentAmount() + this.payoutAmount())) + 'px';\r\n default:\r\n return;\r\n }\r\n };\r\n\r\n this.initialize = () => {\r\n PlayerStatTransactionsApi.getPlayerTransactionStats().then((response) => {\r\n const depositAmount = Utils.sumAllTransactionPeriods('DepositAmount', response.data);\r\n const withdrawalAmount = Utils.sumAllTransactionPeriods('WithdrawalAmount', response.data);\r\n\r\n if (typeof depositAmount === 'number') {\r\n this.paymentAmount(Utils.convertCentsToKroner(depositAmount));\r\n }\r\n\r\n if (typeof depositAmount === 'number') {\r\n this.payoutAmount(Utils.convertCentsToKroner(withdrawalAmount));\r\n }\r\n\r\n this.isLoading(false);\r\n m.redraw(true);\r\n }).then(() => {\r\n if (window.top !== window.self) {\r\n window.parent.postMessage('component-async-data-loaded', window.location.origin);\r\n }\r\n });\r\n };\r\n\r\n this.initialize();\r\n },\r\n view: function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return [\r\n BoxHeader({\r\n link: headerLink,\r\n optionalLink: headerOptionalLink,\r\n subText: headerSubText\r\n }),\r\n m('div', {\r\n class: 'pam-box__body pam-input-output-highlight__body'\r\n }, [\r\n m('.pam-input-output-highlight__col', [\r\n m('.pam-input-output-highlight__circle.pam-input-output-highlight__circle--input', {\r\n style: {\r\n minWidth: controller.calculateVisualSize('payment'),\r\n minHeight: controller.calculateVisualSize('payment')\r\n }\r\n }, Svg('arrow-down', {\r\n class: 'pam-input-output-highlight__circle-svg',\r\n href: '/Components/DanskeSpil/Domain/PlayerAccountManagement/Graphics/SpriteSheets/MyProfile.svg'\r\n })),\r\n m('.pam-input-output-highlight__label', paymentLabel),\r\n m('.pam-input-output-highlight__value', controller.paymentAmount() ? Utils.formatCurrencyWithoutDecimals(controller.paymentAmount()) : '-')\r\n ]),\r\n m('.pam-input-output-highlight__col', [\r\n m('.pam-input-output-highlight__circle.pam-input-output-highlight__circle--output', {\r\n style: {\r\n width: controller.calculateVisualSize('payout'),\r\n height: controller.calculateVisualSize('payout')\r\n }\r\n }, Svg('arrow-up', {\r\n class: 'pam-input-output-highlight__circle-svg',\r\n href: '/Components/DanskeSpil/Domain/PlayerAccountManagement/Graphics/SpriteSheets/MyProfile.svg'\r\n })),\r\n m('.pam-input-output-highlight__label', payoutLabel),\r\n m('.pam-input-output-highlight__value', controller.payoutAmount() ? Utils.formatCurrencyWithoutDecimals(controller.payoutAmount()) : '-')\r\n ]),\r\n ]),\r\n m('div', {\r\n class: 'pam-box__footer pam-box__footer--h-center'\r\n }, footerText)\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/PlayerAccountManagement/Scripts/Components/Widgets/PersonalMessage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/Button'\r\n ],\r\n function (Component, PAMUtils, Loader, Button) {\r\n\r\n // Component:\r\n Component('personal-message', [], function (m, route, settings) {\r\n const returnUrl = PAMUtils.getParameter('returnUrl');\r\n const { title, description, ctaTitle, secondCtaTitle, image } = settings;\r\n let { ctaLink, secondCtaLink } = settings;\r\n\r\n if (returnUrl) {\r\n ctaLink.Url = PAMUtils.appendParameter('returnUrl', returnUrl, ctaLink.Url);\r\n secondCtaLink.Url = PAMUtils.appendParameter('returnUrl', returnUrl, secondCtaLink.Url);\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(false);\r\n this.notificationType = m.prop('warning');\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: 'personal-message pam-box pam-box--no-padding pam-box--' + controller.notificationType()\r\n }, [\r\n m('.col-1', image ? m('img', {\r\n class: 'personal-message__image',\r\n src: image.Source,\r\n alt: image.AlternateText\r\n }) : null),\r\n m('.col-2', [\r\n title ? m('h1.personal-message__title', title) : null,\r\n description ? m('.personal-message__rich-text', m.trust(PAMUtils.replaceDynamicText(description))) : null\r\n ]),\r\n m('.col-3', [\r\n ctaLink ? m('.personal-message__cta-container', [\r\n ctaTitle,\r\n Button({\r\n className: 'margin-top-md',\r\n variant: 'warning',\r\n href: ctaLink?.Url,\r\n buttonText: ctaLink?.Text\r\n })\r\n ]) : null,\r\n secondCtaLink ? m('.personal-message__cta-container', [\r\n secondCtaTitle,\r\n Button({\r\n className: 'margin-top-md',\r\n variant: 'warning',\r\n href: secondCtaLink?.Url,\r\n buttonText: secondCtaLink?.Text\r\n })\r\n ]) : null\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/PlayerAccountManagement/Scripts/Components/Widgets/SimplePersonalMessage',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/Button'\r\n ],\r\n function (Component, PAMUtils, Loader, Button) {\r\n\r\n // Component:\r\n Component('simple-personal-message', [], function (m, route, settings) {\r\n const returnUrl = PAMUtils.getParameter('returnUrl');\r\n const { title, description, ctaTitle, image } = settings;\r\n let { ctaLink } = settings;\r\n\r\n if (returnUrl) {\r\n ctaLink.Url = PAMUtils.appendParameter('returnUrl', returnUrl, ctaLink.Url);\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(false);\r\n this.notificationType = m.prop('warning');\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: 'simple-personal-message pam-box pam-box--no-padding pam-box--' + controller.notificationType()\r\n }, [\r\n m('.col-1', image ? m('img', {\r\n class: 'simple-personal-message__image',\r\n src: image.Source,\r\n alt: image.AlternateText\r\n }) : null),\r\n m('.col-2', [\r\n title ? m('h1.simple-personal-message__title', title) : null,\r\n description ? m('.simple-personal-message__rich-text', m.trust(PAMUtils.replaceDynamicText(description))) : null\r\n ]),\r\n m('.col-3', [\r\n ctaLink ? m('.simple-personal-message__cta-container', [\r\n ctaTitle,\r\n Button({\r\n variant: 'warning',\r\n href: ctaLink?.Url,\r\n buttonText: ctaLink?.Text\r\n })\r\n ]) : null\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/PlayerAccountManagement/Scripts/Components/Widgets/BalanceSummary',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/Button',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/BoxHeader',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/PlayerPayment/Scripts/Data/PaymentApi'\r\n ],\r\n function (Component, Utils, LoginCache, Loader, Button, BoxHeader, PaymentApi) {\r\n\r\n // Component:\r\n Component('balance-summary', [], function (m, route, settings) {\r\n const returnUrl = Utils.getParameter('returnUrl');\r\n const { headerSubText, amountLimitType, amountLimitLink, amountLimitEditTitle, footerLinks, availableBalanceLabel, reservedBalanceLabel, amountLimitLinkToUsersWithNoLimits, showBalance, showAmountLimits } = settings;\r\n let { headerLink } = settings;\r\n let paymentLink = footerLinks[0]?.Link ?? null;\r\n let payoutLink = footerLinks[1]?.Link ?? null;\r\n const userObj = LoginCache.getUserObj();\r\n\r\n if (returnUrl) {\r\n headerLink.Url = Utils.appendParameter('returnUrl', returnUrl, headerLink.Url);\r\n paymentLink.Url = Utils.appendParameter('returnUrl', returnUrl, paymentLink.Url);\r\n payoutLink.Url = Utils.appendParameter('returnUrl', returnUrl, payoutLink.Url);\r\n } else {\r\n headerLink.Url = Utils.appendParameter('returnUrl', window.location.href, headerLink.Url);\r\n paymentLink.Url = Utils.appendParameter('returnUrl', window.location.href, paymentLink.Url);\r\n payoutLink.Url = Utils.appendParameter('returnUrl', window.location.href, payoutLink.Url);\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n this.isLoading = m.prop(false);\r\n this.userInfo = m.prop(userObj || null);\r\n this.amountLimits = {\r\n day: {\r\n label: 'Daglig',\r\n max: m.prop(null),\r\n current: m.prop(null),\r\n isGlobal: m.prop(null)\r\n },\r\n week: {\r\n label: 'Ugentlig',\r\n max: m.prop(null),\r\n current: m.prop(null),\r\n isGlobal: m.prop(null)\r\n },\r\n month: {\r\n label: 'Månedlig',\r\n max: m.prop(null),\r\n current: m.prop(null),\r\n isGlobal: m.prop(null)\r\n }\r\n };\r\n this.userHasNoLimits = m.prop(false);\r\n\r\n this.getAmountLimits = () => {\r\n if (!amountLimitType) {\r\n return;\r\n }\r\n\r\n return PaymentApi.getAmountLimits().then((response) => {\r\n var limitTypeVar = `SavedUser${amountLimitType}Limits`;\r\n var limits = response[limitTypeVar];\r\n\r\n this.amountLimits.day.max(limits.limits[0].Value);\r\n this.amountLimits.day.current(limits.limits[0].Value - limits.limits[0].RemainingValue);\r\n this.amountLimits.day.isGlobal(limits.limits[0].IsGlobal);\r\n this.amountLimits.week.max(limits.limits[1].Value);\r\n this.amountLimits.week.current(limits.limits[1].Value - limits.limits[1].RemainingValue);\r\n this.amountLimits.week.isGlobal(limits.limits[1].IsGlobal);\r\n this.amountLimits.month.max(limits.limits[2].Value);\r\n this.amountLimits.month.current(limits.limits[2].Value - limits.limits[2].RemainingValue);\r\n this.amountLimits.month.isGlobal(limits.limits[2].IsGlobal);\r\n\r\n this.userHasNoLimits(limits.limits[0].IsGlobal && limits.limits[1].IsGlobal && limits.limits[2].IsGlobal);\r\n m.redraw(true);\r\n }).then(() => {\r\n if (window.top !== window.self) {\r\n window.parent.postMessage('component-async-data-loaded', window.location.origin);\r\n }\r\n });\r\n };\r\n\r\n this.initialize = () => {\r\n this.getAmountLimits();\r\n };\r\n\r\n this.calculatePercentage = (current, max) => {\r\n const percentage = current / max * 100;\r\n\r\n if (percentage > 100) {\r\n return 100;\r\n }\r\n\r\n return percentage;\r\n };\r\n\r\n this.initialize();\r\n },\r\n view: function (controller) {\r\n\r\n // First, attempt to get the user information\r\n const userInfo = controller.userInfo?.();\r\n\r\n // Define default values for balances\r\n const defaultBalances = { restrictedBalance: null, availableBalance: null };\r\n\r\n // Use the userInfo if available, otherwise use default values\r\n const customerInfo = userInfo ? userInfo.customerInfo : defaultBalances;\r\n\r\n // Destructure the needed properties from customerInfo\r\n const { restrictedBalance, availableBalance } = customerInfo;\r\n\r\n const { amountLimits, userHasNoLimits } = controller;\r\n\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return [\r\n BoxHeader({\r\n link: headerLink,\r\n subText: headerSubText\r\n }),\r\n m('.pam-box__body.pam-account-summary',\r\n showBalance ? [\r\n m('.pam-account-summary__col.col-1', [\r\n m('.pam-account-summary__label', availableBalanceLabel),\r\n m('.pam-account-summary__value', availableBalance ? Utils.formatCurrency(availableBalance) + ' kr.' : '-')\r\n ]),\r\n m('.pam-account-summary__col.col-2', [\r\n m('.pam-account-summary__label', reservedBalanceLabel),\r\n m('.pam-account-summary__value', restrictedBalance ? Utils.formatCurrency(restrictedBalance) + ' kr.' : '-')\r\n ])\r\n ] : null\r\n ),\r\n showAmountLimits ?\r\n userHasNoLimits() ?\r\n m('.pam-account-summary__label', {\r\n class: 'margin-top-md'\r\n }, m('a', {\r\n href: amountLimitLinkToUsersWithNoLimits.Url,\r\n target: Utils.isTopFrame() ? '_self' : '_top'\r\n }, amountLimitLinkToUsersWithNoLimits.Text))\r\n : [\r\n m('.pam-account-summary__label', {\r\n class: 'margin-top-md'\r\n }, [\r\n amountLimitEditTitle + ' ',\r\n amountLimitLink ? m('a', {\r\n href: amountLimitLink.Url,\r\n target: Utils.isTopFrame() ? '_self' : '_top'\r\n }, amountLimitLink.Text) : null\r\n ]),\r\n Object.keys(amountLimits).map((key) => {\r\n const limit = amountLimits[key];\r\n const { label, max, current, isGlobal } = limit;\r\n\r\n if (isGlobal() || !max()) {\r\n return;\r\n }\r\n\r\n return m('.amount-range-overview', {\r\n class: 'margin-top-md'\r\n }, [\r\n m('.amount-range-overview__label', label),\r\n m('.amount-range-overview__range', m('.amount-range-overview__range-fill', {\r\n style: 'min-width: ' + controller.calculatePercentage(current(), max()) + '%'\r\n })),\r\n m('.amount-range-overview__label', max() ? Utils.convertCentsToKronerAndFormat(max()).split(',')[0] + ' kr.' : null)\r\n ]);\r\n })\r\n ]\r\n : null,\r\n m('.pam-box__footer', [\r\n paymentLink ? Button({\r\n icon: 'arrow-down',\r\n iconClass: 'is-stroke-icon',\r\n variant: 'info',\r\n className: 'pam-button--full-width',\r\n buttonText: paymentLink.Text,\r\n href: paymentLink.Url\r\n }) : null,\r\n payoutLink ? Button({\r\n icon: 'arrow-up',\r\n iconClass: 'is-stroke-icon',\r\n variant: 'info',\r\n className: 'pam-button--full-width',\r\n buttonText: payoutLink.Text,\r\n href: payoutLink.Url\r\n }) : null,\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/PlayerAccountManagement/Scripts/Components/Widgets/WagerDays',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Helpers/Utils',\r\n 'DanskeSpil/Domain/RetailAccount/Scripts/Templates/Loader',\r\n 'DanskeSpil/Framework/PlayerAccountManagement/Scripts/Templates/Svg',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Templates/BoxHeader',\r\n 'DanskeSpil/Domain/PlayerAccountManagement/Scripts/Data/PlayerStatTransactionsApi'\r\n ],\r\n function (Component, PAMUtils, Loader, Svg, BoxHeader, PlayerStatTransactionsApi) {\r\n\r\n // Component:\r\n Component('wager-days', [], function (m, route, settings) {\r\n const returnUrl = PAMUtils.getParameter('returnUrl');\r\n const { headerSubText, footerText } = settings;\r\n let { headerLink } = settings;\r\n\r\n if (returnUrl) {\r\n headerLink.Url = PAMUtils.appendParameter('returnUrl', returnUrl, headerLink.Url);\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n const numberOfDays = PAMUtils.getPreviousDatesFromToday(30, true);\r\n this.latestAvailableDay = numberOfDays[numberOfDays.length - 1];\r\n this.isLoading = m.prop(false);\r\n this.calendarDays = m.prop([]);\r\n this.wagerDayCount = m.prop(0);\r\n\r\n this.prepareDates = (dates, latestAvailableDay) => {\r\n const prependEmptyCells = Array.from({ length: dates[0].getDay() - 1 });\r\n const appendEmptyCells = Array.from({ length: latestAvailableDay.getDay() });\r\n const calendarDateArray = [...prependEmptyCells, ...dates, ...appendEmptyCells];\r\n const calendarCells = PAMUtils.chunks(calendarDateArray, 7);\r\n\r\n this.calendarDays(calendarCells);\r\n };\r\n\r\n this.mapWagerDatesToCalendarDates = (dates, wagerDates) => {\r\n const mappedDates = dates.map((date) => {\r\n const paddedDate = date.getDate() > 9 ? date.getDate() : `0${date.getDate()}`;\r\n const paddedMonth = date.getMonth() + 1 > 9 ? date.getMonth() + 1 : `0${date.getMonth() + 1}`;\r\n const dateFormatSimilarToApi = `${date.getFullYear()}-${paddedMonth}-${paddedDate}`;\r\n\r\n date.isActive = wagerDates.find((wagerDate) => wagerDate === dateFormatSimilarToApi);\r\n return date;\r\n });\r\n\r\n return mappedDates;\r\n };\r\n\r\n this.initialize = () => {\r\n PlayerStatTransactionsApi.getPlayerWagerDays().then((response) => {\r\n const { data } = response;\r\n const dates = this.mapWagerDatesToCalendarDates(numberOfDays, data);\r\n this.wagerDayCount(data.length);\r\n this.prepareDates(dates, this.latestAvailableDay);\r\n }).then(() => {\r\n this.prepareDates(numberOfDays, this.latestAvailableDay);\r\n }).then(() => {\r\n this.isLoading(false);\r\n m.redraw(true);\r\n }).then(() => {\r\n if (window.top !== window.self) {\r\n window.parent.postMessage('component-async-data-loaded', window.location.origin);\r\n }\r\n });\r\n };\r\n\r\n this.initialize();\r\n },\r\n view: function (controller) {\r\n if (controller.isLoading()) {\r\n return Loader();\r\n }\r\n\r\n return [\r\n BoxHeader({\r\n link: headerLink,\r\n subText: headerSubText\r\n }),\r\n m('.pam-box__body',\r\n m('table.pam-calendar-highlight', [\r\n m('tr', [\r\n m('th.pam-calendar-highlight__header', 'MA'),\r\n m('th.pam-calendar-highlight__header', 'TI'),\r\n m('th.pam-calendar-highlight__header', 'ON'),\r\n m('th.pam-calendar-highlight__header', 'TO'),\r\n m('th.pam-calendar-highlight__header', 'FR'),\r\n m('th.pam-calendar-highlight__header', 'LØ'),\r\n m('th.pam-calendar-highlight__header', 'SØ')\r\n ]),\r\n controller.calendarDays().map((weeks) => (\r\n m('tr',\r\n weeks.map((day) => {\r\n if (!day) {\r\n return m('td.pam-calendar-highlight__cell');\r\n }\r\n\r\n const date = day.getDate();\r\n const difference = controller.latestAvailableDay.getTime() - day.getTime();\r\n const offset = Math.ceil(difference / (1000 * 3600 * 24)) + 1; // Offset doesn't start with 0\r\n const link = headerLink?.Url ? `${headerLink.Url}#/1/1/${offset}/alle-spil/alle-kanaler/` : '#';\r\n\r\n return m('td.pam-calendar-highlight__cell',\r\n day.isActive ? m('a.pam-calendar-highlight__link', { href: link }, date) : date\r\n );\r\n })\r\n )\r\n ))\r\n ])\r\n ),\r\n m('div', {\r\n class: 'pam-box__footer pam-box__footer--h-center'\r\n }, [\r\n Svg('calendar', {\r\n class: 'pam-box__footer-icon',\r\n href: '/Components/DanskeSpil/Domain/PlayerAccountManagement/Graphics/SpriteSheets/MyProfile.svg'\r\n }),\r\n PAMUtils.replaceDynamicText(footerText, { COUNT: controller.wagerDayCount() })\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"]}