{"version":3,"sources":["Cleanup.js","Scroll.js","Model.js","MithrilFlipClock.js","FlipClock.js","HammerTime.js","DataLayer.js","NumberUtils.js","DateUtils.js","Utils.js","AccountIntegration.js","Confirm.js","Params.js","Resize.js","Overlay.js","ErrorOverlay.js","CouponOverlay.js","Countdown.js","SelectDropdown.js","StorageCheck.js","NumberGamesDictionary.js","AllOrNothingUtils.js","AllOrNothingApi.js","AllOrNothingInfo.js","AllOrNothingDictionary.js","AllOrNothingGame.js","CardsCountdown.js","ConfirmBar.js","PurchaseBar.js","DatePicker.js","WinningNumbersSpot.js","WinningPrizesTable.js","DeleteOverlay.js","RotarySelector.js","ActionsBar.js","RowsOverlay.js","MobileOnboarding.js","KeyboardNavigation.js","NumbersPicker.js","CardStacksOverlay.js","AllOrNothingConfirm.js","AllOrNothingLightning.js","AllOrNothingPrototype.js","AllOrNothingNumberOfPlayDays.js","AllOrNothingWinningNumbers.js","AllOrNothingReceipt.js","AllOrNothingClassicClient.js","AllOrNothingClassic.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","callbacks","window","addEventListener","amount","$element","callback","push","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","filter","match","first","second","delete","new","Render","TimeUtils","MithrilRedrawEverySecond","render","controller","options","settings","flipClockSizeCss","deadline","endDate","countersBefore","countersActive","toggleStates","flipClockOptionsCss","staticFlip","colorLight","labelLight","flipper","counter","diff","getServerDateTime","t","getCompoundTimeObject","valBefore","formatCounter","valActive","class","bind","slice","resized","windowWidth","document","querySelector","offsetWidth","breakPoints","parseInt","sizeSmall","sizeDefault","sizeLarge","sizeExtraLarge","flipClockStyles","ready","then","start","view","deactivated","config","depend","Utils","DOMUtils","resizeClocks","logDeprecated","querySelectorAll","$clock","dataset","parentWidth","parentNode","getBoundingClientRect","width","invertColors","classList","remove","add","xlarge","large","default","small","domCounter","_ul$querySelector$tex","_ul$querySelector","valUp","ul","beforeVal","textContent","valDown","_$flipper","$flipper","$jsUpActive","$jsDownActive","$jsUpBefore","$jsDownBefore","innerHTML","nextElementSibling","_ul$querySelectorAll","$el","closest","_ul$querySelectorAll2","flipClock","DOMParser","parseFromString","body","firstChild","appendChild","cloneNode","setInterval","secs","mins","hours","days","flipPlay","setTimeout","a","MutationObserver","WebKitMutationObserver","b","DocumentTouch","documentElement","style","Hammer","d","f","g","navigator","userAgent","h","createElement","WebGLRenderingContext","getContext","time","getTouchAction","checkStyleString","getAttribute","shouldHammer","hasParent","target","lastStart","touchHandler","top","pos","left","focus","click","preventDefault","scrolled","touchStart","styleWatcher","styleUpdater","updateNext","hadTouchNone","oldValue","setAttribute","installStartEvents","installEndEvents","installObserver","observer","observe","subtree","attributes","attributeOldValue","attributeFilter","install","localDataLayer","returnAsArray","array","Array","isArray","event","payload","getDataLayer","ecommerce","dataLayer","variantName","brand","rows","playType","systemName","variant","charAt","indexOf","eurojackpotDrawDay","split","categoryName","category","quantity","getSystemCombinationAmount","rowPrice","feedData","numberOfDraws","draws","promoView","productArray","promotions","promoClick","productImpression","impressions","productDetail","detail","products","addToCart","removeFromCart","checkout","step","option","actionField","purchaseCompleted","revenue","totalPrice","firstInteraction","lastInteraction","purchase","formatCurrency","arguments","undefined","decimals","Number","isNaN","Intl","NumberFormat","currency","minimumFractionDigits","maximumFractionDigits","format","formatNumber","number","prefixNumberWithZeros","digits","padStart","NumberUtils","getYear","date","isDateInvalid","getDate","getFullYear","getWeekNumber","utcDate","UTC","getMonth","dayNum","getUTCDay","setUTCDate","getUTCDate","yearStart","getUTCFullYear","ceil","formatDateDayMonthYear","DateTimeFormat","day","month","year","formatDateWeekDay","weekday","formatDateYearMonthDay","concat","isWeekEndOfYearAndMonthIsJanuary","parseISO8601","dateObject","toLocaleString","timeZone","minutes","seconds","timezone","timeOffset","parts","Error","parseTimeZone","dayName","monthName","formatISO8601","includeDate","includeTime","includeTimePrefix","includeYear","includeDayName","dayNameSeparatorFromDate","parsed","output","shortenMonthNames","shortenDate","join","getLongDate","addYear","dateObj","toISOString","toUpperCase","getNumberOfDaysInMonth","formatDateDayMonth","formatDateMonthYear","formatDateDayDateMonthYear","dayString","dateString","getDifferenceInMonths","date1","date2","months","d1","d2","getMatchingDateFromWeekAndYear","week","arrayOfDates","property","dateToMatch","getWeekAndYearFromHash","hashMatch","hash","isSameDay","setWeekAndYearToHash","history","pushState","DateUtils","formatNaming","name","excludedNames","toLowerCase","camelCase","vikinglotto","eurojackpot","allornothing","lottosaturday","pascalCase","lotto","keno","kebabCase","alternative","alternativeNameFormat","_objectSpread","openCoupon","protocol","hostname","getQueryParam","params","args","decodeURIComponent","prepareParamString","isMobile","isTabletDevice","elementFullyScrolledInViewport","selector","elem","getElementsByClassName","bounding","abs","right","innerWidth","Event","LoginCache","SitecoreAuth","LoginController","deferred","isSynced","resolve","subscribe","promise","getUserData","userObj","getUserObj","customerInfo","reject","getLoginStatus","loggedIn","triggerBalanceUpdate","DSAPI","Account","doBalanceUpdate","checkBalance","requiredAmount","debug","balance","openLogin","loginSuccessUrl","cancelUrl","openDeposit","price","url","DS","Config","PRETTYPREFIX","encodeURIComponent","pathname","instantAmount","href","openAccountPage","logout","AccountIntegration","authFailed","game","checkAuthAndBalance","isLoggedIn","checkAuth","balanceOk","error","getPurchaseError","errorType","handlePurchaseError","errorMessage","showErrorCallback","MithrilParams","destruct","segments","properties","singles","segment","detect","extract","param","set","_location$hash","additional","existing","final","hasParamsInHash","map","single","replaceState","title","removeParams","urlParams","existingUrlParam","includes","element","finalURL","uniqueParams","querySplit","paramsSplit","unique","template","$container","$wrapper","getElementById","clear","action","self","$gameOverlay","className","removeChild","redraw","confirm","dismiss","$overlay","show","dictionary","header","onclick","couponId","src","origin","frameborder","allowfullscreen","contentWindow","print","printButton","closeButton","currentTime","getCurrentDateTime","diffSeconds","countdownTime","floor","disabled","headlineText","gameName","noOpenDraw","alternativeHeadline","ignoredElement","rendered","OutsideClick","dropdownActive","selected","select","$selectDropdown","$selectPlaceholder","$selectOptions","$selectOptionsList","$selectOptionsItem","setScrollTop","value","scrollTop","nodes","$options","context","toggle","maxHeight","$placeholder","placeholderHeight","calculateElementOuterHeight","$selectOptionsBox","$optionsList","$optionsItem","dropdownListHeight","dropdownHeight","itemHeight","selectPosition","getElementOffset","scrollY","possibleMaxHeight","windowHeight","innerHeight","Overlay","ErrorOverlay","Storage","supported","Dictionary","isTablet","ApiRequest","AllOrNothingUtils","baseURL","createCoupon","method","response","Message","getInfo","getRandomNumbers","unwrapSuccess","row","numbers","getShuffledNumbers","getCoupon","getCompletedDrawsData","localCacheTTL","getWinningNumbers","AllOrNothingApi","isFeedDown","feedValid","openDraw","storeToCache","$allOrNothingFeedData","domData","domJson","cacheData","confirmUrl","numberOfDaysUrl","getDrawRepeatOptions","drawRepeatOptions","count","v","sort","getDrawRepeatDefault","getLightningOptions","lightningOptions","getLightningDefaultRowCount","getOpenDraw","getStakeDefault","stakeOptions","IsDefault","Value","Model","AllOrNothingInfo","DataLayer","AllOrNothingGame","_this","infoFeed","api","_generatedRows","numberOfDrawsOptions","numbersIntervalMax","numbersPerRow","purchaseTracked","rebuyCouponId","rowsToGenerate","startUrl","status","stakePerRow","isProductDetailsTracked","isAddToCartTracked","isPurchaseCompleteTracked","plusSubscriptionJackpot","firstDepositInfo","verticalType","drawDays","numbersPerRowMax","addNumber","autogenerated","getRow","addRow","rowCount","autogenerateNumbers","rowNumber","requiredNumbers","generatedNumber","sets","areAllRowsValid","every","isRowValid","autofillClassicRows","_asyncToGenerator","promises","emptyRows","fullyGeneratedRows","rowsNumbers","rowNumbers","emptyRow","j","Promise","all","gameGenerateRows","generatedRows","getRows","valid","hasNumber","copyFromOldCoupon","multiWagers","games","index","drawDateHtmlShort","dates","drawDates","firstDate","lastDate","draw","closingTime","futureDate","setDate","hasJoker","isGameValid","numbersLeft","trackPurchase","trackingPurchaseComplete","drawId","getRowsSummary","multidraw","salesChannel","useGenerated","summary","getNumbersForRow","prepareNextStep","nextStep","nextStepUrl","sync","removeNumber","splice","removeRow","removeAllRows","resetRow","setRow","sendToSubscription","trackingAddToCart","createDataLayerProduct","subscription","dataLayerProducts","product","getRowAmount","trackingProductDetails","setNumberOfDraws","sortRow","rowAmount","setupGame","gameInstanceId","timeRemaining","previous","ticks","cardStackElement","values","randomPosition","upper","lower","flip","computeValues","prev","randomArray","endtime","getTimeRemaining","Scroll","$bar","$top","ctaFlowBarTexts","sticky","barHeight","offsetHeight","topTop","containerHeight","containerTop","calculateElementOuterWidth","parentElement","aboveViewport","belowViewport","relativeViewport","bottom","position","paddingBottom","back","backButtonText","loading","processingText","nextButtonText","Resize","daysStyle","height","dayListItemHeight","$header","transform","getComputedStyle","headerHeight","formatDraws","setDraws","containerEnd","scrollBottom","node","totalstake","pushWeekToHash","dateFormating","completedDrawsDates","dateA","valueOf","selectDate","datePickerDays","formattedSelectedDate","selectedDrawDate","selectedDateYear","datePickerMonthOffset","datePickerMonth","datePickerYear","datePickerMonthName","numberOfDaysForCurrentMonth","numberOfDaysForPreviousMonth","firstDayIndex","getDay","numberOfDaysForNextMonth","startDayLimit","isFirstMonth","endDayLimit","isLastMonth","changeMonth","direction","dayObj","dayNumber","dateFormattet","cssClass","daysFromPreviousMonth","daysFromCurrentMonth","daysFromNextMonth","numberOfDays","insertWeekNumbers","weekAndYear","matchingDate","checkHashForDate","isDatepickerOpened","isInactive","winningNumbers","dom","winningPrizes","getNumberOfWinners","obj","numberOfWinners","getPrizeForCategory","prizeForCategory","trust","firstNumber","secondNumber","_ref2","onchange","offset","deceleration","selectedOption","selectedOptionIndex","activeRotation","idleRotation","selectOption","swipeHandler","isInitialized","onPress","isPressed","startX","touches","clientX","startRotation","onRelease","isSwipeMotion","onMove","deltaX","rotation","indexFromRotation","round","passive","_ref3","classNames","valuePostfix","transformProperty","descriptionSlot","transformValue","selectorNumbersStructure","numberWrapperClass","dataId","NumberGamesRotarySelector","numberOfRows","openRowsOverlay","isRowsOverlayOn","ignoreBar","pageYOffset","currentPosition","$buyContainer","$classicButton","$autogenerateButton","isSubscriptionMode","contains","actionsBarWrapper","$gameClientWrapper","scroll","gameWrapper","resize","isClassicViewOn","storage","rowsForOverlay","closeRowOverlay","$rowsOverlayWrapper","initNumbersStack","_rowsOverlayFadeOutAnimationEnded","animationName","hasFirstRowOverlayAppeared","removeEventListener","currentRowNumber","cellsLeft","DOM","deleteRow","changeCurrentRow","addingNewRow","increaseStepCount","onboardingWrapper","$onboardingWrapper","hammer","on","viewBox","startOffset","currentRow","selectNumber","numberElem","numbersCellsNode","numberCellValue","numbersOrderInStack","onToggleNumber","addNewRow","groupSelecting","groupNumbers","moveToTheEndOfTheStack","onkeydown","which","keyCode","onkeyup","onmousedown","onmouseup","prevShowCreate","currentRowNumbers","groupedNumbers","$elem","_onSelectingNumberAnimationEnd","selectedNumbers","_completeRowGridBounceAnimationEnd","shouldFirstRowOverlayAppeared","unshift","_shakeSelectedNumbersInClassicViewAnimationEnd","$numberCell","numberValue","movingToTheEndOfTheStackDirection","shift","movingToTheEndOfTheStack","timeStamp","transitionDuration","shakeIncompleteGridCells","_shakeingIncompleteGridCellsEnded","numberCellWrapperClassName","indexOfFirstNumberInStack","movingDirection","gridCellClassName","numbersPickerWrapper","pickedNumbersGridWrapper","numbersCellsWrapper","rowInit","numberCellIndex","innerText","hasHammerEvents","hasClickEvent","_firstCardSlideInAnimationStarted","fadeInPlaceholderGrid","_slideInNumbersAnimationEnded","_fanOutAnimationStarted","_fanOutAnimationEnded","layoutHardReset","isIE","cardNode","$cardNode","touchAction","threshold","pointers","srcEvent","groupingNumbers","cssTransformMatrix","numberCellStartXYSonPan","x","y","scale","deltaY","s","deltaTime","$numbersPickerWrapper","$pickedNumbersGridWrapper","swipeOnNumberPickerGrid","pointerX","pointerY","clientRect","hammerPickerWrapper","center","showCreate","slideRow","fire","_slidePickerGridEnded","_slideRowEnded","propertyName","Component","route","numberOfCardStacks","cardStacksArray","cardsStack","numberOfCardsInStack","cardNumber","card","cardIndex","Ensighten","Confirm","AllOrNothingDictionary","DeleteOverlay","ConfirmBar","returnToCompletedGamesOverviewLink","page","period","channel","root","askForDeposit","errorOverlay","rebuyCouponNotFound","receiptLink","gradientHeight","rowLimit","rowHeight","receiptUrl","deleteOverlay","drawDateInterval","drawingTime","dateInterval","endIntervalDate","allRows","pushVirtualPage","showAllRows","rowsContainerConfig","windowWith","clientWidth","$rowWrapper","rowMarginBottom","parseFloat","marginBottom","getContainerStyle","maxRowsReached","min","toggleCollapsible","ev","currentTarget","gameDrawDates","Params","CardsCountdown","RotarySelector","drawDate","rowsOptions","topManchete","bottomManchete","iconUrl","PurchaseBar","confirmLink","stopPropagation","populateNumbers","selectRow","toggleNumber","ignorem","ignoreSettings","SelectDropdown","gameCompleted","numberOfDrawsOptionsFormat","singleDraw","formatedOptions","DatePicker","WinningNumbersSpot","WinningPrizesTable","prizes","isWinningNumbersReady","selectedDraw","componentSource","Countdown","CouponOverlay","nextLink","backLink","showSubscribeReminder","alreadySubscribed","subscribed","loadingReminderAlert","couponOverlay","countdownOptions","isCountdownDisabled","gotoCoupon","subscribeUserLoggedOut","icon","ActionsBar","RowsOverlay","MobileOnboarding","KeyboardNavigation","NumbersPicker","subscriptionsMode","shuffledNumbers","ShuffledNumbers","groupingInterval","isRulesPanelOn","startPoint","disableGroupingEvents","repeat","numberOfNumbersLeft","numbersAvailableForGrouping","countStartPoint","clearInterval","toggleRulesPanel","ua","msie","trident","edge","onfocus","AllOrNothingClassicClient","sitecoreEnv"],"mappings":"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","file":"region-allornothing.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/Helpers/Scroll', function () {\r\n\r\n // Variables:\r\n var callbacks = [];\r\n\r\n // Functions:\r\n var add = function ($element, callback) {\r\n if (typeof callback === 'undefined') {\r\n callbacks.push($element);\r\n } else {\r\n $element.addEventListener('scroll', callback);\r\n }\r\n };\r\n\r\n // Init:\r\n window.addEventListener('scroll', function () {\r\n var amount = callbacks.length;\r\n\r\n for (var i = 0; i < amount; i++) {\r\n callbacks[i]();\r\n }\r\n });\r\n\r\n // Public functions:\r\n return add;\r\n\r\n});\r\n","defineDs('Shared/Framework/Mithril/Scripts/Core/Model',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Cleanup'\r\n ],\r\n function (m, Cleanup) {\r\n\r\n // Functions:\r\n var model = function (modelName, constructor) {\r\n modelName = 'Model-' + modelName;\r\n\r\n constructor.generateId = function () {\r\n return 'xxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n /* eslint-disable no-bitwise, no-mixed-operators, one-var */\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n /* eslint-enable no-bitwise, no-mixed-operators, one-var */\r\n return v.toString(16);\r\n });\r\n };\r\n\r\n constructor.cache = {};\r\n\r\n constructor.construct = function (content, state, save) {\r\n content = content || {};\r\n\r\n var record = new this(content);\r\n\r\n record.id = m.prop(content.id ? content.id : this.generateId());\r\n record.state = m.prop(state ? state : 'clean');\r\n record.timestamp = m.prop(content.timestamp || (new Date()).getTime());\r\n\r\n if (typeof record.init === 'function') {\r\n record.init(content);\r\n }\r\n\r\n if (typeof save === 'undefined' || save) {\r\n record.save();\r\n }\r\n\r\n return record;\r\n };\r\n\r\n constructor.prototype.save = function () {\r\n this.state('clean');\r\n this.timestamp((new Date()).getTime());\r\n\r\n var data = JSON.stringify(this.toJSON());\r\n\r\n try {\r\n localStorage.setItem(modelName + '-' + this.id(), data);\r\n } catch (e) {\r\n console.warn('Model.js Cannot write to localStorage');\r\n }\r\n\r\n constructor.cache[this.id()] = this;\r\n };\r\n\r\n constructor.update = function (record, content) {\r\n\r\n var id = record.id();\r\n\r\n content.id = id;\r\n\r\n var updatedRecord = this.construct(content, 'new');\r\n\r\n Object.keys(updatedRecord).forEach(function (key) {\r\n record[key] = updatedRecord[key];\r\n });\r\n\r\n return record;\r\n\r\n };\r\n\r\n constructor.get = function (query) {\r\n var type = typeof query;\r\n\r\n if (type === 'undefined') {\r\n return null;\r\n }\r\n\r\n // Get by ID:\r\n if (type === 'number' || type === 'string') {\r\n var cached = constructor.cache[query];\r\n\r\n if (cached) {\r\n return cached;\r\n }\r\n\r\n try {\r\n var val = localStorage.getItem(modelName + '-' + query);\r\n } catch (e) {\r\n console.warn('Model.js Cannot read from localStorage');\r\n }\r\n\r\n if (!val) {\r\n return null;\r\n }\r\n\r\n var json = JSON.parse(val);\r\n var record = this.construct(json);\r\n\r\n return record;\r\n }\r\n\r\n var bulk = [];\r\n var keys = Object.keys(constructor.cache);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n bulk.push(constructor.cache[keys[i]]);\r\n }\r\n\r\n // Query:\r\n if (type === 'object') {\r\n keys = Object.keys(query);\r\n var length = keys.length;\r\n\r\n bulk = bulk.filter(function (record) {\r\n var match = true;\r\n\r\n for (var i = 0; i < length; i++) {\r\n var first = typeof first === 'function' ? query[keys[i]]() : query[keys[i]];\r\n var second = record[keys[i]]();\r\n\r\n if (/delete|remove/.test(record.state()) || first !== second) {\r\n match = false;\r\n\r\n break;\r\n }\r\n }\r\n\r\n return match;\r\n });\r\n\r\n }\r\n\r\n // Bulk:\r\n return bulk;\r\n\r\n };\r\n\r\n constructor.delete = function (query) {\r\n if (!query) {\r\n return;\r\n }\r\n\r\n try {\r\n localStorage.removeItem(modelName + '-' + query);\r\n delete constructor.cache[query];\r\n } catch (e) {\r\n console.warn('Model.js Cannot remove from localStorage');\r\n }\r\n };\r\n\r\n constructor.new = function (content, state, save) {\r\n return this.construct(content, state || 'new', save);\r\n };\r\n\r\n return constructor;\r\n };\r\n\r\n // Cleanup\r\n Cleanup();\r\n\r\n // Public functions:\r\n return model;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/FlipClock/Scripts/MithrilFlipClock',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/MithrilRedrawEverySecond'\r\n ],\r\n function (m, Render, TimeUtils, MithrilRedrawEverySecond) {\r\n var render = Render();\r\n\r\n return {\r\n controller: function (options) {\r\n this.settings = m.prop(options.settings);\r\n this.flipClockSizeCss = m.prop('flip-clock--hidden');\r\n this.deadline = m.prop(new Date(this.settings().endDate));\r\n var countersBefore = {};\r\n var countersActive = {};\r\n var toggleStates = {};\r\n var flipClockOptionsCss = ' ';\r\n flipClockOptionsCss += this.settings().staticFlip ? 'flip-clock--static ' : '';\r\n flipClockOptionsCss += this.settings().colorLight ? 'flip-clock--light ' : '';\r\n flipClockOptionsCss += this.settings().labelLight ? 'flip-clock--label-light ' : '';\r\n\r\n this.flipper = function (counter) {\r\n var diff = this.deadline() - TimeUtils.getServerDateTime();\r\n var t = TimeUtils.getCompoundTimeObject(diff);\r\n\r\n if (countersBefore[counter] !== t[counter]) {\r\n countersBefore[counter] = t[counter];\r\n countersActive[counter] = t[counter] + 1;\r\n toggleStates[counter] = !toggleStates[counter];\r\n }\r\n\r\n var state = toggleStates[counter];\r\n var valBefore = formatCounter(counter, countersBefore[counter]);\r\n var valActive = formatCounter(counter, countersActive[counter]);\r\n\r\n return m('ul.flip', [\r\n m('li', { class: state ? 'active' : 'before' },\r\n m('.flipper', [\r\n m('.up', [\r\n m('.shadow'),\r\n m('.inn.js-up', state ? valBefore : valActive)\r\n ]),\r\n m('.down', [\r\n m('.shadow'),\r\n m('.inn.js-down', state ? valBefore : valActive)\r\n ]),\r\n ])),\r\n m('li', { class: !state ? 'active' : 'before' },\r\n m('.flipper', [\r\n m('.up', [\r\n m('.shadow'),\r\n m('.inn.js-up', !state ? valBefore : valActive)\r\n ]),\r\n m('.down', [\r\n m('.shadow'),\r\n m('.inn.js-down', !state ? valBefore : valActive)\r\n ]),\r\n ]))\r\n ]);\r\n }.bind(this);\r\n\r\n var formatCounter = function (counter, val) {\r\n if (counter === 'days') {\r\n val = val >= 99 ? 99 : val;\r\n } else if (counter === 'hours') {\r\n val = val === 24 ? 0 : val;\r\n } else {\r\n // mins and secs\r\n val = val === 60 ? 0 : val;\r\n }\r\n // prefix with zero for value 0-9\r\n val = ('0' + val).slice(-2);\r\n return val;\r\n };\r\n\r\n var resized = function () {\r\n var windowWidth = document.querySelector('body').offsetWidth;\r\n var breakPoints = {\r\n small: parseInt(this.settings().sizeSmall, 10) || 400,\r\n default: parseInt(this.settings().sizeDefault, 10) || 550,\r\n large: parseInt(this.settings().sizeLarge, 10) || 700,\r\n extraLarge: parseInt(this.settings().sizeExtraLarge, 10) || 900,\r\n };\r\n\r\n if (breakPoints.extraLarge && windowWidth >= breakPoints.extraLarge) {\r\n this.flipClockSizeCss('flip-clock--xlarge');\r\n } else if (breakPoints.large && windowWidth >= breakPoints.large) {\r\n this.flipClockSizeCss('flip-clock--large');\r\n } else if (breakPoints.default && windowWidth >= breakPoints.default) {\r\n this.flipClockSizeCss('flip-clock--default');\r\n } else if (breakPoints.small && windowWidth >= breakPoints.small) {\r\n this.flipClockSizeCss('flip-clock--small');\r\n } else {\r\n this.flipClockSizeCss('flip-clock--xsmall');\r\n }\r\n }.bind(this);\r\n\r\n this.flipClockStyles = function () {\r\n return this.flipClockSizeCss() + flipClockOptionsCss;\r\n }.bind(this);\r\n\r\n render.ready.then(function () {\r\n // \"manually\" redraw every second if Time Consuming Notification is not doing it for us\r\n if (!document.querySelector('div[data-component=time-consuming-notification]')) {\r\n MithrilRedrawEverySecond.start();\r\n }\r\n\r\n window.addEventListener('resize', resized);\r\n resized();\r\n });\r\n\r\n return this;\r\n },\r\n\r\n view: function (controller) {\r\n if (controller.settings().deactivated || !controller.settings().endDate) {\r\n // returning null or an empty string generates a Mithril error, as it\r\n // cannot read the attributes of that, so we return an empty mithril instead\r\n return m('');\r\n }\r\n\r\n return m('.flip-clock.play.js-mithril-flip-clock', {\r\n config: render.depend(),\r\n class: controller.flipClockStyles()\r\n }, [\r\n controller.flipper('days'),\r\n controller.flipper('hours'),\r\n controller.flipper('mins'),\r\n controller.flipper('secs')\r\n ]);\r\n }\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/FlipClock/Scripts/FlipClock', [\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils',\r\n], function (TimeUtils, Utils, DOMUtils) {\r\n\r\n var resizeClocks = function () {\r\n if (document.querySelector('.js-flip-clock')) {\r\n Utils.logDeprecated('Framework/FlipClock/Scripts/FlipClock.js - .js-flip-clock found'); // Added by MIPE 2022-08-04\r\n }\r\n\r\n document.querySelectorAll('.js-flip-clock').forEach(function ($clock) {\r\n var breakPoints = $clock.dataset['breakPoints'];\r\n var parentWidth = $clock.parentNode.getBoundingClientRect().width;\r\n var invertColors = $clock.dataset['invertColor'];\r\n\r\n $clock.classList.remove('flip-clock--xsmall', 'flip-clock--small', 'flip-clock--default', 'flip-clock--large', 'flip-clock--xlarge', 'flip-clock--invert');\r\n\r\n if (invertColors === 'True') {\r\n $clock.classList.add('flip-clock--invert');\r\n }\r\n\r\n if (breakPoints.xlarge && parentWidth >= breakPoints.xlarge) {\r\n $clock.classList.add('flip-clock--xlarge');\r\n } else if (breakPoints.large && parentWidth >= breakPoints.large) {\r\n $clock.classList.add('flip-clock--large');\r\n } else if (breakPoints.default && parentWidth >= breakPoints.default) {\r\n $clock.classList.add('flip-clock--default');\r\n } else if (breakPoints.small && parentWidth >= breakPoints.small) {\r\n $clock.classList.add('flip-clock--small');\r\n } else {\r\n $clock.classList.add('flip-clock--xsmall');\r\n }\r\n });\r\n };\r\n\r\n var domCounter = function ($clock, counter, val) {\r\n var ul = $clock.querySelectorAll('ul')[counter];\r\n\r\n var beforeVal = ul.querySelector('.before .js-up')?.textContent ?? '';\r\n var valUp;\r\n var valDown = val;\r\n\r\n if (counter === 0) {\r\n // days\r\n if (val > 99) {\r\n valUp = 99;\r\n valDown = 99;\r\n } else {\r\n valUp = val === 99 ? 99 : val + 1;\r\n }\r\n } else if (counter === 1) {\r\n // hours\r\n valUp = val === 23 ? 0 : val + 1;\r\n } else {\r\n // mins and secs\r\n valUp = val === 59 ? 0 : val + 1;\r\n }\r\n\r\n // prefix with zero for value 0-9\r\n valUp = ('0' + valUp).slice(-2);\r\n valDown = ('0' + valDown).slice(-2);\r\n\r\n if (beforeVal !== valUp) {\r\n var $flipper = ul.querySelector('li.active');\r\n\r\n const $jsUpActive = ul.querySelector('.active .js-up');\r\n const $jsDownActive = ul.querySelector('.active .js-down');\r\n const $jsUpBefore = ul.querySelector('.before .js-up');\r\n const $jsDownBefore = ul.querySelector('.before .js-down');\r\n\r\n if ($jsUpActive && $jsDownActive && $jsUpBefore && $jsDownBefore) {\r\n $jsUpActive.textContent = valUp;\r\n $jsDownActive.textContent = valUp;\r\n $jsUpBefore.textContent = valDown;\r\n $jsDownBefore.textContent = valDown;\r\n }\r\n\r\n if (!$flipper?.innerHTML) {\r\n $flipper = ul.querySelectorAll('li')[0];\r\n $flipper.classList.add('before');\r\n $flipper.classList.remove('active');\r\n $flipper.nextElementSibling.classList.add('active');\r\n } else if ($flipper.nextElementSibling === null) {\r\n ul.querySelectorAll('li')?.forEach(($el) => {\r\n $el.classList.remove('before');\r\n });\r\n $flipper.classList.add('before');\r\n $flipper.classList.remove('active');\r\n $flipper = ul.querySelectorAll('li')[0];\r\n $flipper.classList.add('active');\r\n $flipper.closest('.flip-clock').classList.add('play');\r\n } else {\r\n ul.querySelectorAll('li')?.forEach(($el) => {\r\n $el.classList.remove('before');\r\n });\r\n $flipper.classList.add('before');\r\n $flipper.classList.remove('active');\r\n $flipper.nextElementSibling.classList.add('active');\r\n $flipper.closest('.flip-clock').classList.add('play');\r\n }\r\n }\r\n };\r\n\r\n var flipPlay = function ($clock) {\r\n var deadline = new Date(parseInt($clock.dataset['endDate'], 10));\r\n var diff = new Date(deadline) - TimeUtils.getServerDateTime();\r\n var t = TimeUtils.getCompoundTimeObject(diff);\r\n domCounter($clock, 3, t.secs);\r\n domCounter($clock, 2, t.mins);\r\n domCounter($clock, 1, t.hours);\r\n domCounter($clock, 0, t.days);\r\n };\r\n\r\n var init = function () {\r\n document.querySelectorAll('.js-flip-clock').forEach(function ($clock) {\r\n const parser = new DOMParser();\r\n const flipClock = parser.parseFromString('', 'text/html').body.firstChild;\r\n\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n\r\n setInterval(function () {\r\n flipPlay($clock);\r\n }, 1000);\r\n });\r\n\r\n resizeClocks();\r\n\r\n window.addEventListener('resize', () => {\r\n setTimeout(resizeClocks, 100);\r\n });\r\n };\r\n\r\n DOMUtils.ready(function () {\r\n init();\r\n });\r\n\r\n});\r\n","/* eslint-disable */\r\ndefineDs('DanskeSpil/Framework/NumberGames/Scripts/Framework/HammerTime', function () {\r\n\r\n // Hammer-Time:\r\n !function () { var a = window.MutationObserver || window.WebKitMutationObserver, b = \"ontouchstart\" in window || window.DocumentTouch && document instanceof DocumentTouch, c = void 0 !== document.documentElement.style[\"touch-action\"] || document.documentElement.style[\"-ms-touch-action\"]; if (!c && b && a) { window.Hammer = window.Hammer || {}; var d = /touch-action[:][\\s]*(none)[^;'\"]*/, e = /touch-action[:][\\s]*(manipulation)[^;'\"]*/, f = /touch-action/, g = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? !0 : !1, h = function () { try { var a = document.createElement(\"canvas\"); return !(!window.WebGLRenderingContext || !a.getContext(\"webgl\") && !a.getContext(\"experimental-webgl\")) } catch (b) { return !1 } }(), i = h && g; window.Hammer.time = { getTouchAction: function (a) { return this.checkStyleString(a.getAttribute(\"style\")) }, checkStyleString: function (a) { return f.test(a) ? d.test(a) ? \"none\" : e.test(a) ? \"manipulation\" : !0 : void 0 }, shouldHammer: function (a) { var b = this.hasParent(a.target); return b && (!i || Date.now() - a.target.lastStart < 125) ? b : !1 }, touchHandler: function (a) { var b = a.target.getBoundingClientRect(), c = b.top !== this.pos.top || b.left !== this.pos.left, d = this.shouldHammer(a); (\"none\" === d || c === !1 && \"manipulation\" === d) && (\"touchend\" === a.type && (a.target.focus(), setTimeout(function () { a.target.click() }, 0)), a.preventDefault()), this.scrolled = !1, delete a.target.lastStart }, touchStart: function (a) { this.pos = a.target.getBoundingClientRect(), i && this.hasParent(a.target) && (a.target.lastStart = Date.now()) }, styleWatcher: function (a) { a.forEach(this.styleUpdater, this) }, styleUpdater: function (a) { if (a.target.updateNext) return void (a.target.updateNext = !1); var b = this.getTouchAction(a.target); return b ? void (\"none\" !== b && (a.target.hadTouchNone = !1)) : void (!b && (a.oldValue && this.checkStyleString(a.oldValue) || a.target.hadTouchNone) && (a.target.hadTouchNone = !0, a.target.updateNext = !1, a.target.setAttribute(\"style\", a.target.getAttribute(\"style\") + \" touch-action: none;\"))) }, hasParent: function (a) { for (var b, c = a; c && c.parentNode; c = c.parentNode) if (b = this.getTouchAction(c)) return b; return !1 }, installStartEvents: function () { document.addEventListener(\"touchstart\", this.touchStart.bind(this)), document.addEventListener(\"mousedown\", this.touchStart.bind(this)) }, installEndEvents: function () { document.addEventListener(\"touchend\", this.touchHandler.bind(this), !0), document.addEventListener(\"mouseup\", this.touchHandler.bind(this), !0) }, installObserver: function () { this.observer = new a(this.styleWatcher.bind(this)).observe(document, { subtree: !0, attributes: !0, attributeOldValue: !0, attributeFilter: [\"style\"] }) }, install: function () { this.installEndEvents(), this.installStartEvents(), this.installObserver() } }, window.Hammer.time.install() } }();\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/DataLayer',\r\n function () {\r\n\r\n // Variables:\r\n var localDataLayer = [];\r\n\r\n // Functions:\r\n var returnAsArray = function (array) {\r\n if (!Array.isArray(array)) {\r\n return [array];\r\n } else {\r\n return array;\r\n }\r\n };\r\n\r\n var promoView = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('promoView', {\r\n promoView: {\r\n promotions: productArray\r\n }\r\n });\r\n };\r\n\r\n var promoClick = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('promoClick', {\r\n promoClick: {\r\n promotions: productArray\r\n }\r\n });\r\n };\r\n\r\n var productImpression = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('productImpression', {\r\n impressions: productArray\r\n });\r\n };\r\n\r\n var productDetail = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('productDetail', {\r\n detail: {\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var addToCart = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n push('addToCart', {\r\n add: {\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var removeFromCart = function (productArray) {\r\n productArray = returnAsArray(productArray);\r\n if (productArray.length > 0) {\r\n push('removeFromCart', {\r\n remove: {\r\n products: productArray\r\n }\r\n });\r\n }\r\n };\r\n\r\n var checkout = function (data, productArray) {\r\n productArray = returnAsArray(productArray);\r\n var step = data.step;\r\n var option = data.option;\r\n\r\n push('checkout', {\r\n checkout: {\r\n actionField: {\r\n step: step,\r\n option: option\r\n },\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var purchaseCompleted = function (data, productArray) {\r\n productArray = returnAsArray(productArray);\r\n var id = data.id;\r\n var totalPrice = data.totalPrice.toString();\r\n const actionField = {\r\n id: id,\r\n revenue: totalPrice\r\n };\r\n if (data.firstInteraction) {\r\n actionField.firstInteraction = data.firstInteraction;\r\n }\r\n if (data.lastInteraction) {\r\n actionField.lastInteraction = data.lastInteraction;\r\n }\r\n\r\n push('purchaseComplete', {\r\n purchase: {\r\n actionField: actionField,\r\n products: productArray\r\n }\r\n });\r\n };\r\n\r\n var push = function (event, payload) {\r\n getDataLayer().push({\r\n event: event,\r\n ecommerce: payload\r\n });\r\n };\r\n\r\n var getDataLayer = function () {\r\n if (window.dataLayer) {\r\n for (var i = 0; i < localDataLayer.length; i++) {\r\n window.dataLayer.push(localDataLayer[i]);\r\n }\r\n }\r\n\r\n return window.dataLayer || localDataLayer;\r\n };\r\n\r\n // Set the category field to the correct naming\r\n var categoryName = function (category) {\r\n var lynCategories = ['KenoMillion', 'KenoLarge', 'KenoSmall', 'Lightning'];\r\n var systemCategories = ['KenoSystem', 'System'];\r\n var vaelgSelvCategories = ['KenoClassic', 'Classic'];\r\n var lykkeCategories = ['Lucky'];\r\n\r\n if (lynCategories.indexOf(category) > -1) {\r\n category = 'lyn';\r\n }\r\n\r\n if (systemCategories.indexOf(category) > -1) {\r\n category = 'system';\r\n }\r\n\r\n if (vaelgSelvCategories.indexOf(category) > -1) {\r\n category = 'vaelg_selv';\r\n }\r\n\r\n if (lykkeCategories.indexOf(category) > -1) {\r\n category = 'lykke';\r\n }\r\n\r\n return category;\r\n };\r\n\r\n // Generate the variant field\r\n var variantName = function (brand, rows, playType, systemName) {\r\n var variant;\r\n\r\n // Make sure there is always 2 digits in the row number (fx 02).\r\n rows = ('0' + rows).slice(-2);\r\n\r\n // -- AllOrNothing Variants --\r\n if (brand == 'allornothing' || brand == 'plus_allornothing') {\r\n rows = rows + 'dag' + (rows !== 1 ? 'e' : '');\r\n variant = 'alt_';\r\n\r\n if (brand == 'plus_allornothing') {\r\n rows = '';\r\n variant = 'plu_alt';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic') {\r\n variant += rows + '_raekker';\r\n }\r\n }\r\n\r\n // -- Keno Variants --\r\n if (brand == 'keno' || brand === 'plus_keno') {\r\n rows = rows + 'dage';\r\n variant = 'ken_';\r\n\r\n if (brand === 'plus_keno') {\r\n variant = 'plu_ken';\r\n }\r\n\r\n if (playType == 'KenoMillion') {\r\n variant += rows + '_million';\r\n }\r\n\r\n if (playType == 'KenoClassic') {\r\n variant += rows + '_raekker';\r\n }\r\n\r\n if (playType == 'KenoSystem') {\r\n variant += rows + '_system';\r\n }\r\n\r\n if (playType == 'KenoLarge') {\r\n variant += rows + '_store';\r\n }\r\n\r\n if (playType == 'KenoSmall') {\r\n variant += rows + '_lille';\r\n }\r\n }\r\n\r\n // -- Lotto Variants --\r\n if (brand == 'lotto' || brand == 'plus_lotto') {\r\n rows = rows + 'uger';\r\n variant = 'lot_';\r\n\r\n if (brand == 'plus_lotto') {\r\n rows = '';\r\n variant = 'plu_lot';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'System') {\r\n // Set systemName to 'R', 'M', or 'C'\r\n // These are Reduced, Mathematical, or Chance\r\n systemName = systemName.charAt(0);\r\n if (systemName == 'R' || systemName == 'C') {\r\n variant += rows + '_reduceret';\r\n }\r\n\r\n if (systemName == 'M') {\r\n variant += rows + '_matematisk';\r\n }\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic' || playType == 'Lucky') {\r\n variant += rows + '_raekker';\r\n }\r\n }\r\n\r\n // -- VikingeLotto Variants --\r\n if (brand == 'viking' || brand == 'plus_viking') {\r\n variant = 'vik_';\r\n rows = rows + 'uger';\r\n\r\n if (brand == 'plus_viking') {\r\n rows = '';\r\n variant = 'plu_vik';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'System') {\r\n // Set systemName to 'R', 'M', or 'C'\r\n // These are Reduced, Mathematical, or Chance\r\n systemName = systemName.charAt(0);\r\n if (systemName == 'R' || systemName == 'C') {\r\n variant += rows + '_reduceret';\r\n }\r\n\r\n if (systemName == 'M') {\r\n variant += rows + '_matematisk';\r\n }\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic' || playType == 'Lucky') {\r\n variant += rows + '_raekker';\r\n }\r\n }\r\n\r\n // -- Joker --\r\n if (brand == 'joker' || brand == 'plus_joker') {\r\n rows = '_' + rows + 'uger';\r\n variant = 'jok_';\r\n\r\n if (brand == 'plus_joker') {\r\n rows = '';\r\n variant = 'plu_jok_';\r\n }\r\n\r\n if (playType == 'saturday') {\r\n variant += 'loerdag' + rows;\r\n }\r\n\r\n if (playType == 'wednesday') {\r\n variant += 'onsdag' + rows;\r\n }\r\n }\r\n\r\n // -- EuroJackpot --\r\n if (brand == 'eurojackpot' ||\r\n brand == 'plus_eurojackpot' ||\r\n brand.indexOf('eurojackpot') !== -1) {\r\n rows = rows + 'draws';\r\n variant = 'ejp_';\r\n\r\n var eurojackpotDrawDay = brand.split('eurojackpot_')[1];\r\n if (eurojackpotDrawDay) variant = variant + eurojackpotDrawDay + '_';\r\n\r\n if (brand == 'plus_eurojackpot') {\r\n rows = '';\r\n variant = 'plu_ejp';\r\n // ensure that plus will always have _raekker variant\r\n playType = 'Lightning';\r\n }\r\n\r\n if (playType == 'Lightning' || playType == 'Classic' || playType == 'Lucky') {\r\n variant += rows + '_raekker';\r\n }\r\n\r\n if (playType == 'System') {\r\n variant += rows + '_matematisk';\r\n }\r\n }\r\n\r\n return variant;\r\n };\r\n\r\n var quantity = function (brand, rows, playType, getSystemCombinationAmount) {\r\n if (brand == 'keno') {\r\n if (playType == 'KenoSystem') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n if (playType == 'KenoLarge' || playType == 'KenoSmall') {\r\n rows = 1;\r\n }\r\n }\r\n\r\n // -- Lotto Variants --\r\n if (brand == 'lotto') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n // -- VikingeLotto Variants --\r\n if (brand == 'viking') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n // -- EuroJackpot --\r\n if (brand == 'eurojackpot') {\r\n rows = getSystemCombinationAmount;\r\n }\r\n\r\n return rows;\r\n };\r\n\r\n var rowPrice = function (feedData, numberOfDraws, type) {\r\n var rowPrice;\r\n\r\n if (type === 'AllOrNothingClassic' || type === 'AllOrNothingLightning') {\r\n rowPrice = feedData * numberOfDraws;\r\n } else if (type == 'KenoMillion' || type == 'KenoClassic' || type == 'KenoSystem' || type == 'KenoLarge' || type == 'KenoSmall') {\r\n if (type == 'KenoMillion' || type == 'KenoClassic' || type == 'KenoSystem') {\r\n rowPrice = feedData * numberOfDraws;\r\n }\r\n\r\n if (type == 'KenoLarge') {\r\n rowPrice = (feedData * numberOfDraws) * 10;\r\n }\r\n\r\n if (type == 'KenoSmall') {\r\n rowPrice = (feedData * numberOfDraws) * 5;\r\n }\r\n } else {\r\n if (type != 'joker') {\r\n rowPrice = feedData.draws && feedData.draws[0] && feedData.draws[0].rowPrice ? feedData.draws[0].rowPrice : 0;\r\n rowPrice = rowPrice * numberOfDraws;\r\n }\r\n\r\n if (type == 'plus') {\r\n rowPrice = feedData.draws && feedData.draws[0] && feedData.draws[0].rowPrice ? feedData.draws[0].rowPrice : 0;\r\n }\r\n\r\n if (type == 'joker') {\r\n rowPrice = feedData * 2 * numberOfDraws;\r\n }\r\n\r\n if (type == 'plus_joker') {\r\n rowPrice = feedData * 2;\r\n }\r\n }\r\n\r\n rowPrice = rowPrice.toString();\r\n\r\n return rowPrice;\r\n };\r\n\r\n // Public functions:\r\n return {\r\n variantName: variantName,\r\n categoryName: categoryName,\r\n quantity: quantity,\r\n rowPrice: rowPrice,\r\n promoView: promoView,\r\n promoClick: promoClick,\r\n productImpression: productImpression,\r\n productDetail: productDetail,\r\n addToCart: addToCart,\r\n removeFromCart: removeFromCart,\r\n checkout: checkout,\r\n purchaseCompleted: purchaseCompleted,\r\n push: push\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/NumberUtils', () => {\r\n\r\n\r\n /**\r\n * Formats a number as currency.\r\n * @param {number} [amount=0] - The amount to be formatted as currency.\r\n * @param {number} [decimals=0] - The number of decimal places to use in the formatting.\r\n * @returns {string} - The formatted currency string.\r\n */\r\n const formatCurrency = (amount = 0, decimals = 0) => {\r\n amount = Number(amount);\r\n if (isNaN(amount)) return '-';\r\n return new Intl.NumberFormat('da-DK', {\r\n style: 'currency',\r\n currency: 'DKK',\r\n minimumFractionDigits: decimals ? decimals : 0,\r\n maximumFractionDigits: decimals ? decimals : 0,\r\n }).format(amount);\r\n };\r\n\r\n\r\n /**\r\n * Formats a number to the Danish decimal format.\r\n * @param {number} [number=0] The number to be formatted.\r\n * @param {number} [decimals=0] The number of decimal places to include in the formatted number.\r\n * @returns {string} The formatted number as a string. If the input is not a valid number, returns '-'.\r\n */\r\n const formatNumber = (number = 0, decimals = 0) => {\r\n number = Number(number);\r\n if (isNaN(number)) return '-';\r\n return new Intl.NumberFormat('da-DK', {\r\n style: 'decimal',\r\n minimumFractionDigits: decimals ? decimals : 0,\r\n maximumFractionDigits: decimals ? decimals : 0,\r\n }).format(number);\r\n };\r\n\r\n\r\n /**\r\n * Prefixes a number with zeros.\r\n * @param {number} number - The number to be prefixed.\r\n * @param {number} [digits=2] - The total number of digits the result should have.\r\n * @returns {string} The prefixed number as a string.\r\n */\r\n const prefixNumberWithZeros = (number, digits = 2) => {\r\n if (typeof number !== 'number' || digits <= 0) return '';\r\n let numString = number.toString().padStart(digits, '0');\r\n return numString;\r\n };\r\n\r\n return {\r\n formatCurrency,\r\n formatNumber,\r\n prefixNumberWithZeros,\r\n };\r\n});\r\n\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/DateUtils', [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/NumberUtils',\r\n], (NumberUtils) => {\r\n\r\n\r\n var formatISO8601 = function (timestamp, options) {\r\n if (!timestamp) return '';\r\n\r\n options = options || {};\r\n\r\n var includeDate = typeof options.includeDate === 'undefined' ? true : options.includeDate;\r\n var includeTime = typeof options.includeTime === 'undefined' ? true : options.includeTime;\r\n var includeTimePrefix = typeof options.includeTimePrefix === 'undefined' ? true : options.includeTimePrefix;\r\n var includeYear = typeof options.includeYear === 'undefined' ? true : options.includeYear;\r\n var includeDayName = typeof options.includeDayName === 'undefined' ? false : options.includeDayName;\r\n var dayNameSeparatorFromDate = typeof options.dayNameSeparatorFromDate === 'undefined' ? false : options.dayNameSeparatorFromDate;\r\n\r\n var parsed = parseISO8601(timestamp);\r\n\r\n var output = [];\r\n\r\n if (includeDayName) {\r\n output.push(parsed.dayName);\r\n }\r\n\r\n if (dayNameSeparatorFromDate !== false) {\r\n output.push(dayNameSeparatorFromDate);\r\n }\r\n\r\n if (includeDate) {\r\n var monthName = options.shortenMonthNames ? parsed.monthName.slice(0, 3) + '.' : parsed.monthName;\r\n options.shortenDate ? output.push(parseInt(parsed.date, 10) + ' ' + monthName) : output.push(parseInt(parsed.date, 10) + '. ' + monthName);\r\n }\r\n\r\n if (includeYear) {\r\n output.push(parsed.year);\r\n }\r\n\r\n if (includeTime) {\r\n if (includeTimePrefix) {\r\n output.push('kl.');\r\n }\r\n\r\n output.push(parsed.hours + ':' + parsed.minutes);\r\n }\r\n\r\n return output.join(' ');\r\n };\r\n\r\n\r\n var getLongDate = function (date, addYear) {\r\n var dateObj = parseISO8601(date.toISOString());\r\n return dateObj.dayName.charAt(0).toUpperCase() + dateObj.dayName.slice(1)\r\n + ' d. ' + Number(dateObj.date) + '. ' + dateObj.monthName\r\n + (addYear ? ' ' + dateObj.year : '');\r\n };\r\n\r\n\r\n const getNumberOfDaysInMonth = (year, month) => {\r\n return new Date(year, month, 0).getDate();\r\n };\r\n\r\n\r\n /**\r\n * Returns the year of a date.\r\n * * @param {String|Date} date\r\n * * @return {Number|String}\r\n */\r\n const getYear = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n return d.getFullYear();\r\n };\r\n\r\n\r\n /**\r\n * Returns week number from a date.\r\n * Function converts a locale date object to a UTC date, then calculates a week number based on the start of the year\r\n * This function takes Week 53 into account as well (happens roughly every 6 years)\r\n * \"Inspiration\" from: https://stackoverflow.com/a/6117889\r\n * * @param {Date} date - The date to where the week number is to be found.\r\n * * @return {Number|String}\r\n */\r\n const getWeekNumber = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n const utcDate = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));\r\n const dayNum = utcDate.getUTCDay() || 7;\r\n utcDate.setUTCDate(utcDate.getUTCDate() + 4 - dayNum);\r\n const yearStart = new Date(Date.UTC(utcDate.getUTCFullYear(), 0, 1));\r\n return Math.ceil((((utcDate - yearStart) / 86400000) + 1) / 7);\r\n };\r\n\r\n\r\n /**\r\n * Returns a date formatted with ex. '27. oktober'.\r\n * @param {String|Date} date - The date to be formatted.\r\n * @return {String}\r\n */\r\n const formatDateDayMonth = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n return new Intl.DateTimeFormat('da-DK', { day: 'numeric', month: 'long' }).format(d);\r\n };\r\n\r\n\r\n /**\r\n * Returns a date formatted with ex. 'oktober 2022'.\r\n * @param {String|Date} date - The date to be formatted.\r\n * @return {String}\r\n */\r\n const formatDateMonthYear = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n return new Intl.DateTimeFormat('da-DK', { month: 'long', year: 'numeric' }).format(d);\r\n };\r\n\r\n\r\n /**\r\n * Returns a date formatted with ex. '27. oktober 2022'.\r\n * @param {String|Date} date - The date to be formatted.\r\n * @return {String}\r\n */\r\n const formatDateDayMonthYear = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n return new Intl.DateTimeFormat('da-DK', { day: 'numeric', month: 'long', year: 'numeric' }).format(d);\r\n };\r\n\r\n\r\n /**\r\n * Returns a date formatted with ex. 'Lørdag 27. oktober 2022'.\r\n * @param {String|Date} date - The date to be formatted.\r\n * @return {String}\r\n */\r\n const formatDateDayDateMonthYear = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n let dayString = formatDateWeekDay(d);\r\n dayString = dayString.charAt(0).toUpperCase() + dayString.slice(1);\r\n const dateString = formatDateDayMonthYear(d);\r\n return `${dayString} ${dateString}`;\r\n };\r\n\r\n\r\n /**\r\n * Returns a week date, ex. 'torsdag'.\r\n * @param {String|Date} date - The date from where the day is found.\r\n * @return {String}\r\n */\r\n const formatDateWeekDay = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n return new Intl.DateTimeFormat('da-DK', { weekday: 'long' }).format(d);\r\n };\r\n\r\n\r\n /**\r\n * Returns a date formatted with ex. '2022-10-27'.\r\n * @param {String|Date} date - The date to be formatted.\r\n * @return {String}\r\n */\r\n const formatDateYearMonthDay = (date) => {\r\n if (isDateInvalid(date)) return '';\r\n const d = getDate(date);\r\n const year = d.getFullYear();\r\n const month = NumberUtils.prefixNumberWithZeros(d.getMonth() + 1);\r\n const day = NumberUtils.prefixNumberWithZeros(d.getDate());\r\n return `${year}-${month}-${day}`;\r\n };\r\n\r\n /**\r\n * Calculates the difference in months between two dates.\r\n * @param {String|Date} date1\r\n * @param {String|Date} date2\r\n * @returns {number}\r\n */\r\n const getDifferenceInMonths = (date1 = new Date(), date2 = new Date()) => {\r\n if (isDateInvalid(date1) || isDateInvalid(date2)) return 0;\r\n const d1 = new Date(date1);\r\n const d2 = new Date(date2);\r\n let months;\r\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\r\n months -= d1.getMonth();\r\n months += d2.getMonth();\r\n return months <= 0 ? 0 : months;\r\n };\r\n\r\n\r\n const getMatchingDateFromWeekAndYear = (week, year, arrayOfDates, property) => {\r\n if (!arrayOfDates || !week || !year) return;\r\n\r\n const dateToMatch = arrayOfDates.filter((d) => {\r\n if (property) {\r\n return week === getWeekNumber(d[property]) && year === getYear(d[property]);\r\n }\r\n\r\n return week === getWeekNumber(d) && year === getYear(d);\r\n });\r\n\r\n if (dateToMatch?.[0]) {\r\n return dateToMatch[0];\r\n }\r\n };\r\n\r\n\r\n const getWeekAndYearFromHash = () => {\r\n // hash should look like \"#uge35-2020\".\r\n const hashMatch = location.hash.match(/uge(\\d{1,2})-(\\d{4})/);\r\n if (hashMatch) {\r\n const week = Number(hashMatch[1]);\r\n const year = Number(hashMatch[2]);\r\n if (week && year) {\r\n return { week, year };\r\n }\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Checks if a date is invalid.\r\n * @param {String|Date} date - The date to be checked.\r\n * @return {Boolean}\r\n */\r\n const isDateInvalid = (date) => {\r\n return isNaN(Date.parse(date));\r\n };\r\n\r\n\r\n /**\r\n * Compares two dates, to see if they're the same day (ignoring time differences).\r\n * @param {String|Date} date1 - The first date to be compared.\r\n * @param {String|Date} date2 - The second date to be compared.\r\n * @return {Boolean}\r\n */\r\n const isSameDay = (date1, date2) => {\r\n if (isDateInvalid(date1) || isDateInvalid(date2)) return false;\r\n return formatDateYearMonthDay(date1) === formatDateYearMonthDay(date2);\r\n };\r\n\r\n\r\n /**\r\n * Checks to see if ex. January 1, 2022 is part of Week 52 of 2021.\r\n * @param {String|Date} date\r\n * @return {Boolean}\r\n */\r\n const isWeekEndOfYearAndMonthIsJanuary = (date) => {\r\n if (isDateInvalid(date)) return false;\r\n const d = getDate(date);\r\n return getWeekNumber(d) > 50 && d.getMonth() === 0;\r\n };\r\n\r\n const parseTimeZone = (timeOffset) => {\r\n const parts = timeOffset.split(':');\r\n if (parts.length !== 2) {\r\n throw new Error('Invalid time offset format');\r\n }\r\n\r\n const hours = parseInt(parts[0], 10);\r\n const minutes = parseInt(parts[1], 10);\r\n\r\n if (isNaN(hours) || isNaN(minutes)) {\r\n throw new Error('Invalid time offset format');\r\n }\r\n\r\n const millisecondsInHour = 60 * 60 * 1000;\r\n const millisecondsInMinute = 60 * 1000;\r\n\r\n return (hours * millisecondsInHour) + (minutes * millisecondsInMinute);\r\n };\r\n\r\n\r\n var parseISO8601 = function (timestamp) {\r\n var data = {};\r\n if (timestamp.length < 19) {\r\n console.warn('Timestamp too short for ISO 8601 formatting!');\r\n } else if (timestamp.indexOf('Z') === timestamp.length - 1) {\r\n // if timestamp is given in UTC, convert it to danish timezone\r\n // swedish locale is used because it resembles ISO8601\r\n data.dateObject = new Date(timestamp);\r\n timestamp = data.dateObject.toLocaleString('sv', { timeZone: 'Europe/Copenhagen' });\r\n }\r\n\r\n data.year = timestamp.substring(0, 4);\r\n data.month = timestamp.substring(5, 7);\r\n data.date = timestamp.substring(8, 10);\r\n data.hours = timestamp.substring(11, 13);\r\n data.minutes = timestamp.substring(14, 16);\r\n data.seconds = timestamp.substring(17, 19);\r\n data.timezone = timestamp.substring(19, 25);\r\n\r\n if (!data.dateObject) {\r\n try {\r\n data.dateObject = new Date(data.year, data.month - 1, data.date, data.hours, data.minutes, data.seconds);\r\n if (data.timezone) {\r\n data.dateObject = new Date(Date.UTC(data.year, data.month - 1, data.date, data.hours, data.minutes, data.seconds)\r\n - parseTimeZone(data.timezone));\r\n }\r\n } catch (e) {\r\n // Empty\r\n }\r\n }\r\n\r\n data.dayName = data.dateObject.toLocaleString('da-DK', { weekday: 'long', timeZone: 'Europe/Copenhagen' });\r\n data.monthName = data.dateObject.toLocaleString('da-DK', { month: 'long', timeZone: 'Europe/Copenhagen' });\r\n\r\n return data;\r\n };\r\n\r\n\r\n const setWeekAndYearToHash = (date) => {\r\n if (history.pushState) {\r\n let year = getYear(date);\r\n if (isWeekEndOfYearAndMonthIsJanuary(date)) {\r\n year--;\r\n }\r\n history.pushState(null, null, `#uge${getWeekNumber(date)}-${year}`);\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Returns a new Date object with default Copenhagen time zone.\r\n * Useful when you only have a simple date string, eg. '2022-12-31', and you want to convert\r\n * it to a date that still resembles December 31, 2022 for eg. Greenland users.\r\n * @param {String|Date} [date=new Date()]\r\n * @param {String} timeZone [timeZone='sv']\r\n * @returns {Date}\r\n */\r\n const getDate = (date = new Date(), timeZone = 'Europe/Copenhagen') => {\r\n // Swedish locale is used because its output format can be used to create a new Date object.\r\n const locales = 'sv';\r\n\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n\r\n date = date.toLocaleString(locales, { timeZone });\r\n date = date.replace(/-/g, '/'); // Safari version 0-15 fix.\r\n return new Date(date);\r\n };\r\n\r\n\r\n return {\r\n formatISO8601,\r\n getDate,\r\n getLongDate,\r\n getNumberOfDaysInMonth,\r\n getYear,\r\n getWeekNumber,\r\n formatDateDayMonth,\r\n formatDateMonthYear,\r\n formatDateDayMonthYear,\r\n formatDateDayDateMonthYear,\r\n formatDateWeekDay,\r\n formatDateYearMonthDay,\r\n getDifferenceInMonths,\r\n getMatchingDateFromWeekAndYear,\r\n getWeekAndYearFromHash,\r\n isDateInvalid,\r\n isSameDay,\r\n isWeekEndOfYearAndMonthIsJanuary,\r\n parseISO8601,\r\n setWeekAndYearToHash,\r\n };\r\n});\r\n\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils', [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/DateUtils',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils/NumberUtils',\r\n], function (DateUtils, NumberUtils) {\r\n\r\n // Functions:\r\n var openCoupon = function () {\r\n window.location.replace(location.protocol + '//' + location.hostname + '/roed-konto/mine-spil#/1/365/aktive/alle-kanaler/');\r\n };\r\n\r\n var getQueryParam = function (key) {\r\n var params = location.search.slice(1).split('&');\r\n\r\n for (var i = 0; i < params.length; i++) {\r\n var args = params[i].split('=');\r\n if (args[0] == key) {\r\n return decodeURIComponent(args[1]);\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n var prepareParamString = function (options) {\r\n options = options || {};\r\n var keys = Object.keys(options);\r\n var params = [];\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var val = options[key];\r\n\r\n if (val && val instanceof Array) {\r\n val = val.join(',');\r\n }\r\n\r\n params.push(key + '=' + val);\r\n }\r\n\r\n return params.length ? '?' + params.join('&') : '';\r\n };\r\n\r\n const isMobile = () => document.querySelector('body.is-mobile-detected') || false;\r\n\r\n const isTabletDevice = () => document.querySelector('body.is-tablet-detected') || false;\r\n\r\n var elementFullyScrolledInViewport = function (selector) {\r\n var elem = document.getElementsByClassName(selector);\r\n elem = elem.length > 0 ? elem[0] : null;\r\n if (!elem) return;\r\n\r\n var bounding = elem.getBoundingClientRect();\r\n\r\n return (bounding.left < 0 && Math.abs(bounding.left) > (bounding.width / 2)) ||\r\n (bounding.right > window.innerWidth && (bounding.right - window.innerWidth) > (bounding.width / 2));\r\n };\r\n\r\n var formatNaming = function (name, format, options) {\r\n if (options &&\r\n options.excludedNames &&\r\n options.excludedNames.indexOf(name.toLowerCase()) !== -1) return name;\r\n\r\n if (format === 'lowercase') return name.toLowerCase();\r\n if (format === 'capitalized') return name.charAt(0).toUpperCase() + name.slice(1);\r\n\r\n if (format === 'camelCase') {\r\n var camelCase = {\r\n vikinglotto: 'vikingLotto',\r\n eurojackpot: 'euroJackpot',\r\n allornothing: 'allOrNothing',\r\n lottosaturday: 'lottoSaturday'\r\n };\r\n if (camelCase[name.toLowerCase()]) return camelCase[name.toLowerCase()];\r\n }\r\n\r\n if (format === 'pascalCase') {\r\n var pascalCase = {\r\n lotto: 'Lotto',\r\n vikinglotto: 'VikingLotto',\r\n eurojackpot: 'EuroJackpot',\r\n keno: 'Keno',\r\n allornothing: 'AllOrNothing',\r\n lottosaturday: 'LottoSaturday'\r\n };\r\n if (pascalCase[name.toLowerCase()]) return pascalCase[name.toLowerCase()];\r\n }\r\n\r\n if (format === 'kebabCase') {\r\n var kebabCase = {\r\n vikinglotto: 'viking-lotto',\r\n allornothing: 'all-or-nothing',\r\n lottosaturday: 'lotto-saturday',\r\n eurojackpot: 'euro-jackpot'\r\n };\r\n if (kebabCase[name.toLowerCase()]) return kebabCase[name.toLowerCase()];\r\n }\r\n\r\n if (format === 'alternativeName') {\r\n var alternative = {\r\n lotto: 'lottosaturday'\r\n };\r\n if (options &&\r\n options.alternativeNameFormat &&\r\n alternative[name.toLowerCase()]) {\r\n return formatNaming(alternative[name.toLowerCase()], options.alternativeNameFormat);\r\n }\r\n if (alternative[name.toLowerCase()]) return alternative[name.toLowerCase()];\r\n }\r\n\r\n return name;\r\n };\r\n\r\n\r\n // Public functions:\r\n return {\r\n openCoupon,\r\n getQueryParam,\r\n prepareParamString,\r\n isMobile,\r\n isTabletDevice,\r\n elementFullyScrolledInViewport,\r\n formatNaming,\r\n ...DateUtils,\r\n ...NumberUtils,\r\n };\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration', [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginCache',\r\n 'DanskeSpil/Domain/Authentification/Scripts/SitecoreAuth',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController'\r\n], function (m, Event, LoginCache, SitecoreAuth, LoginController) {\r\n\r\n // Variables:\r\n var ready = m.deferred();\r\n\r\n var triggerBalanceUpdate = function () {\r\n window.DSAPI && DSAPI.ready(function () {\r\n DSAPI.Account.doBalanceUpdate();\r\n });\r\n };\r\n\r\n var getLoginStatus = function () {\r\n var deferred = m.deferred();\r\n\r\n SitecoreAuth.getLoginStatus(function (loggedIn) {\r\n deferred.resolve(loggedIn);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var checkBalance = function (requiredAmount) {\r\n console.debug('AccountIntegration.checkBalance');\r\n var deferred = m.deferred();\r\n\r\n SitecoreAuth.getUserObj(function (data) {\r\n if (data && data.customerInfo && typeof data.customerInfo.balance !== 'undefined') {\r\n console.debug('current balance', data.customerInfo.balance);\r\n\r\n if (requiredAmount <= data.customerInfo.balance) {\r\n deferred.resolve(true);\r\n } else { // not enough money\r\n deferred.resolve(false);\r\n }\r\n } else { // communcation error or user not logged in\r\n deferred.reject();\r\n }\r\n\r\n }, false);\r\n\r\n return deferred.promise;\r\n\r\n };\r\n\r\n\r\n var getUserData = function () {\r\n var deferred = m.deferred();\r\n\r\n var userObj = LoginCache.getUserObj();\r\n if (userObj && userObj.customerInfo) {\r\n // First, use cache:\r\n deferred.resolve(userObj.customerInfo);\r\n } else {\r\n // Retrieve user data:\r\n SitecoreAuth.getUserObj(function (data) {\r\n if (data && data.customerInfo) {\r\n deferred.resolve(data.customerInfo);\r\n } else { // communcation error or user not logged in\r\n deferred.reject();\r\n }\r\n });\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n\r\n var openLogin = function (loginSuccessUrl, cancelUrl) {\r\n window.DSAPI && DSAPI.ready(function () {\r\n DSAPI.Account.openLogin({\r\n cancelUrl: cancelUrl || null,\r\n loginSuccessUrl: loginSuccessUrl || null,\r\n });\r\n\r\n });\r\n };\r\n\r\n var openDeposit = function (price) {\r\n var url = DS.Config.PRETTYPREFIX + '/indbetaling?returnurl=' + encodeURIComponent(location.pathname + location.search + location.hash);\r\n\r\n if (price && LoginCache.getUserObj() && LoginCache.getUserObj().customerInfo) {\r\n var instantAmount = price - LoginCache.getUserObj().customerInfo.balance;\r\n if (instantAmount > 0) {\r\n url += '&instantAmount=' + instantAmount;\r\n }\r\n }\r\n\r\n location.href = url;\r\n };\r\n\r\n var openAccountPage = function () {\r\n window.location.href = DS.Config.PRETTYPREFIX + '/mine-spil';\r\n };\r\n\r\n var logout = function (callback) {\r\n LoginController.logout(callback ? { callback: callback } : undefined);\r\n };\r\n\r\n // Initialize - Ready when page load auth sync is finished\r\n if (LoginController.isSynced()) {\r\n ready.resolve();\r\n } else {\r\n Event.subscribe('pageload-auth-synced', function () {\r\n ready.resolve();\r\n });\r\n }\r\n\r\n\r\n return {\r\n ready: ready.promise,\r\n getUserData: getUserData,\r\n getLoginStatus: getLoginStatus,\r\n triggerBalanceUpdate: triggerBalanceUpdate,\r\n checkBalance: checkBalance,\r\n openLogin: openLogin,\r\n openDeposit: openDeposit,\r\n openAccountPage: openAccountPage,\r\n logout: logout\r\n };\r\n\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Confirm',\r\n ['Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration'],\r\n function (m, AccountIntegration) {\r\n\r\n // Authenficiation and balance checks:\r\n var checkAuth = function () {\r\n var deferred = m.deferred();\r\n\r\n // Auth check:\r\n AccountIntegration.getLoginStatus().then(function (isLoggedIn) {\r\n if (isLoggedIn) {\r\n deferred.resolve();\r\n } else {\r\n deferred.reject();\r\n }\r\n }, function () {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var checkBalance = function (requiredAmount) {\r\n var deferred = m.deferred();\r\n\r\n AccountIntegration.checkBalance(requiredAmount).then(function (balanceOk) {\r\n if (!balanceOk) {\r\n deferred.reject('INSUFFICIENT_AMOUNT');\r\n } else {\r\n deferred.resolve();\r\n }\r\n }, function () {\r\n // Something odd went wrong with auth\r\n deferred.reject('AUTH_FAILED');\r\n });\r\n\r\n return deferred.promise;\r\n\r\n };\r\n\r\n var authFailed = function (game) {\r\n console.debug('Auth service failed');\r\n AccountIntegration.logout();\r\n\r\n console.warn('opening login with ', location.href, game().cancelUrl());\r\n\r\n AccountIntegration.openLogin(location.href, game().cancelUrl());\r\n };\r\n\r\n var checkAuthAndBalance = function (game) {\r\n var deferred = m.deferred();\r\n var requiredAmount = game().totalPrice();\r\n\r\n checkAuth().then(function () {\r\n checkBalance(requiredAmount).then(function () {\r\n deferred.resolve();\r\n }, function (error) {\r\n console.debug('checkBalance error', error);\r\n\r\n if (error === 'INSUFFICIENT_AMOUNT') {\r\n\r\n var paymentMethod = 'window';\r\n\r\n if (paymentMethod === 'window') {\r\n deferred.reject('ASK_FOR_DEPOSIT');\r\n } else if (paymentMethod === 'iframe') {\r\n AccountIntegration.openDeposit(requiredAmount, function () {\r\n location.href = game().cancelUrl();\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n if (error === 'AUTH_FAILED') {\r\n // Auth failed\r\n authFailed(game);\r\n }\r\n\r\n });\r\n }, function () {\r\n // Auth failed\r\n authFailed(game);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var getPurchaseError = function (errorType) {\r\n var customErrors = {\r\n 'NUMBERGAMES.NO_OPEN_DRAW': 'NoOpenDraw',\r\n 'NUMBERGAMES.OPEN_DRAW_MISMATCH': 'DrawMismatch',\r\n 'NUMBERGAMES.PLAYER_RESTRICTED_FROM_BUY': 'PlayerRestrictedFromBuy',\r\n 'NUMBERGAMES.GAMEPROVIDER_TIMEOUT': 'GameProviderTimeout',\r\n 'CLIENT.TIMEOUT': 'ClientConnectionTimeout',\r\n 'CLIENT.REFUSED': 'ClientConnectionRefused'\r\n };\r\n return customErrors[errorType] || 'TechnicalError';\r\n };\r\n\r\n\r\n var handlePurchaseError = function (game, errorMessage, showErrorCallback) {\r\n\r\n if (errorMessage == 'NUMBERGAMES.NO_FUNDS') {\r\n AccountIntegration.openDeposit(game().totalPrice(), function () {\r\n location.href = game().cancelUrl();\r\n });\r\n } else if (errorMessage == 'USER_UNAUTHORIZED') {\r\n checkAuthAndBalance();\r\n } else {\r\n showErrorCallback(errorMessage);\r\n }\r\n\r\n };\r\n\r\n\r\n return {\r\n checkAuthAndBalance: checkAuthAndBalance,\r\n getPurchaseError: getPurchaseError,\r\n handlePurchaseError: handlePurchaseError\r\n };\r\n\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params', [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Params'\r\n], function (MithrilParams) {\r\n\r\n // Functions:\r\n var destruct = function (params) {\r\n var segments = params.split('&');\r\n var properties = {};\r\n var singles = [];\r\n\r\n for (var i = 0; i < segments.length; i++) {\r\n var segment = segments[i];\r\n\r\n if (segment !== '') {\r\n var split = segment.split('=');\r\n\r\n if (split.length === 1) {\r\n singles.push(split[0]);\r\n } else {\r\n properties[split[0]] = split[1];\r\n }\r\n }\r\n }\r\n\r\n return { properties: properties, singles: singles };\r\n };\r\n\r\n var extract = function (param) {\r\n return MithrilParams.extract(param, null);\r\n };\r\n\r\n var set = function (params) {\r\n var additional = destruct(params);\r\n var existing = destruct(location.search.slice(1));\r\n var final = [];\r\n let hash = location.hash;\r\n\r\n // Maybe URL is constucted with hash, e.g. /roed-konto/mine-oplysninger#/cards?foo&bar.\r\n const hasParamsInHash = location.hash?.split('?');\r\n\r\n if (hasParamsInHash?.length > 1) {\r\n hash = hasParamsInHash[0];\r\n final.push(hasParamsInHash[1]);\r\n }\r\n\r\n Object.keys(additional.properties).map(function (key) {\r\n existing.properties[key] = additional.properties[key];\r\n });\r\n\r\n additional.singles.map(function (key) {\r\n if (existing.singles.indexOf(key) === -1) {\r\n existing.singles.push(key);\r\n }\r\n });\r\n\r\n Object.keys(existing.properties).map(function (property) {\r\n final.push(property + '=' + existing.properties[property]);\r\n });\r\n\r\n existing.singles.map(function (single) {\r\n final.push(single);\r\n });\r\n\r\n history.replaceState(\r\n null,\r\n document.title,\r\n location.pathname + '?' + final.join('&') + hash\r\n );\r\n };\r\n\r\n /**\r\n * Removes specified URL parameters from the current URL and updates the browser history.\r\n * @param {string} params - A string containing URL parameters to be removed (e.g., \"param1¶m2\").\r\n */\r\n const remove = (params) => {\r\n // Split the parameters to be removed and the existing parameters into arrays.\r\n const removeParams = params.split('&');\r\n const existing = location.search.slice(1).split('&');\r\n\r\n // Filter and construct the URL parameters to keep.\r\n const urlParams = existing\r\n .filter((existingUrlParam) => !removeParams.includes(existingUrlParam.split('=')[0]))\r\n .filter((element) => element !== '')\r\n .join('&');\r\n\r\n // Create the final URL.\r\n const finalURL = urlParams.length ? `?${urlParams}` : '';\r\n\r\n // Update the browser history with the new URL.\r\n setTimeout(() => {\r\n history.replaceState(null, document.title, location.pathname + finalURL + location.hash);\r\n }, 0);\r\n };\r\n\r\n var uniqueParams = function (params) {\r\n var querySplit = params.split('?');\r\n\r\n if (querySplit.length !== 2) {\r\n return params;\r\n }\r\n\r\n var paramsSplit = querySplit[1].split('&').filter(function (param) {\r\n // remove empty items in array.\r\n return param;\r\n });\r\n var unique = [];\r\n\r\n for (var i = 0; i < paramsSplit.length; i++) {\r\n var param = paramsSplit[i];\r\n\r\n if (unique.indexOf(param) === -1) {\r\n unique.push(param);\r\n }\r\n }\r\n\r\n return querySplit[0] + '?' + unique.join('&');\r\n };\r\n\r\n // Public functions:\r\n return {\r\n detect: MithrilParams.detect,\r\n extract: extract,\r\n set: set,\r\n remove,\r\n uniqueParams: uniqueParams\r\n };\r\n\r\n});\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/Resize',\r\n function () {\r\n\r\n // Variables:\r\n var callbacks = [];\r\n\r\n // Functions:\r\n var add = function (callback) {\r\n callbacks.push(callback);\r\n };\r\n\r\n // Init:\r\n window.addEventListener('resize', function () {\r\n var amount = callbacks.length;\r\n\r\n for (var i = 0; i < amount; i++) {\r\n callbacks[i]();\r\n }\r\n });\r\n\r\n // Public functions:\r\n return add;\r\n\r\n });\r\n","\r\ndefineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var Overlay = 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 function onAnimationEnd() {\r\n if ($container && $container.parentNode) {\r\n $container.parentNode.removeChild($container);\r\n }\r\n\r\n $wrapper.className = $wrapper.className.replace('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 $gameOverlay.classList.add('remove-overlay');\r\n\r\n $wrapper.className = $wrapper.className.replace('overlay-active', 'remove-overlay');\r\n\r\n $gameOverlay.addEventListener('animationend', onAnimationEnd);\r\n };\r\n }.bind(this);\r\n\r\n this.render = function (confirm, dismiss) {\r\n var $overlay = document.createElement('div');\r\n\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 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 Overlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var ErrorOverlay = function (className, dictionary) {\r\n\r\n // Return:\r\n return {\r\n class: m.prop(className),\r\n\r\n render: function (dismiss) {\r\n return m('div', { class: this.class() }, [\r\n m('div', { class: 'pannel' }, [\r\n m('div', { class: 'icon-wrapper' }, [\r\n m('svg', { class: 'icon' }, m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-error' }))\r\n ]),\r\n m('h2', { class: 'headline' }, dictionary.header),\r\n m('p', { class: 'text' }, dictionary.body),\r\n m('div', { class: 'buttons' }, [\r\n m('button', { class: 'btn dogderblue button-confirm', onclick: dismiss, style: 'float: none;' }, dictionary.dismiss)\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n\r\n // Public functions:\r\n return ErrorOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/CouponOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Context:\r\n var CouponOverlay = function (className, couponId, dictionary) {\r\n\r\n var printCoupon = function () {\r\n return function () {\r\n document.getElementsByClassName('coupon-iframe')[0].contentWindow.focus();\r\n document.getElementsByClassName('coupon-iframe')[0].contentWindow.print();\r\n };\r\n };\r\n\r\n // Return:\r\n return {\r\n class: m.prop(className),\r\n\r\n render: function (dismiss) {\r\n return m('div', { class: this.class() }, [\r\n m('div', { class: 'pannel' }, [\r\n m('div', { class: 'coupon-iframe-wrapper' }, [\r\n m('iframe', {\r\n class: 'coupon-iframe',\r\n src: window.location.origin + '/' + window.location.pathname.split('/')[1] + '/vis-kupon?couponId=' + couponId,\r\n frameborder: '0',\r\n allowfullscreen: '0'\r\n })\r\n ]),\r\n m('div', { class: 'buttons' }, [\r\n m('button', { class: 'btn cta', onclick: printCoupon() }, dictionary.printButton),\r\n m('button', { class: 'btn cta', onclick: dismiss }, dictionary.closeButton)\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n\r\n // Public functions:\r\n return CouponOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/Countdown',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/MithrilRedrawEverySecond'\r\n ],\r\n function (m, TimeUtils, MithrilRedrawEverySecond) {\r\n\r\n // View:\r\n var Countdown = function (options) {\r\n\r\n // Variables:\r\n var d = options.dictionary;\r\n\r\n // Calculate diff\r\n var currentTime = TimeUtils.getCurrentDateTime();\r\n var diffSeconds = 0;\r\n\r\n if (options.countdownTime) {\r\n diffSeconds = Math.floor((options.countdownTime) - (currentTime.getTime() / 1000));\r\n var days = Math.floor(diffSeconds / 86400) <= 0 ? 0 : Math.floor(diffSeconds / 86400);\r\n var hours = Math.floor(diffSeconds / 3600 % 24) <= 0 ? 0 : Math.floor(diffSeconds / 3600) % 24;\r\n var minutes = Math.floor(diffSeconds % 3600 / 60) <= 0 ? 0 : Math.floor(diffSeconds % 3600 / 60);\r\n var seconds = Math.floor(diffSeconds % 3600 % 60) <= 0 ? 0 : Math.floor(diffSeconds % 3600 % 60);\r\n }\r\n\r\n // Config:\r\n var setupTimer = function (ignoredElement, rendered) {\r\n if (!rendered) {\r\n MithrilRedrawEverySecond.start();\r\n }\r\n };\r\n\r\n\r\n // View:\r\n if (diffSeconds < 1) {\r\n return null;\r\n }\r\n\r\n if (options.disabled) {\r\n return m('.countdown', [\r\n m('h2', { class: 'countdown-headline disabled' }, d('Countdown/CountdownDisabledHeading'))\r\n ]);\r\n } else {\r\n let headlineText = d('Countdown/ReceiptCountdownHeading', { gameName: options.gameName });\r\n if (options.noOpenDraw) {\r\n headlineText = d('Countdown/NoOpenDrawCountdownHeading') !== '!' ? d('Countdown/NoOpenDrawCountdownHeading') : null;\r\n }\r\n if (options.alternativeHeadline) {\r\n headlineText = options.alternativeHeadline;\r\n }\r\n return m('.countdown' + (options.noOpenDraw === true ? ' .no-opendraw' : ''), { config: setupTimer }, [\r\n m('h2', { class: 'countdown-headline' }, headlineText),\r\n (days > 0 ?\r\n m('.number-container', [\r\n m('span.number.days', days),\r\n m('span.time-denominator', days === 1 ? 'dag' : 'dage')\r\n ]) : ''\r\n ),\r\n m('.number-container', [\r\n m('span.number.hours', hours),\r\n m('span.time-denominator', hours === 1 ? 'time' : 'timer')\r\n ]),\r\n m('.number-container', [\r\n m('span.number.minutes', minutes),\r\n m('span.time-denominator', 'min.')\r\n ]),\r\n (days <= 0 ? [\r\n m('.number-container', [\r\n m('span.number.seconds', seconds),\r\n m('span.time-denominator', 'sek.')\r\n ])\r\n ] : '')\r\n ]);\r\n }\r\n\r\n };\r\n\r\n // Public functions:\r\n return Countdown;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Templates/SelectDropdown',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Common/Framework/EventHandling/Scripts/OutsideClick',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils',\r\n ],\r\n function (m, Render, OutsideClick, DOMUtils) {\r\n\r\n // Variables:\r\n var dropdownActive = false;\r\n\r\n // View:\r\n var SelectDropdown = function (controller, options, selected, select) {\r\n\r\n // Elements:\r\n var $selectDropdown = m.prop();\r\n var $selectPlaceholder = m.prop();\r\n var $selectOptions = m.prop();\r\n var $selectOptionsList = m.prop();\r\n var $selectOptionsItem = m.prop();\r\n\r\n // Variables:\r\n var render = Render();\r\n\r\n // Functions:\r\n var selectOption = function (value) {\r\n return function () {\r\n select(value);\r\n };\r\n };\r\n\r\n const setScrollTop = (element, value) => {\r\n if (!element) return;\r\n element.scrollTop = value;\r\n };\r\n\r\n\r\n var toggleSelect = function () {\r\n var $wrapper = $selectDropdown();\r\n var $placeholder = $selectPlaceholder();\r\n var placeholderHeight = DOMUtils.calculateElementOuterHeight($placeholder);\r\n var $selectOptionsBox = $selectOptions();\r\n var $optionsList = $selectOptionsList();\r\n var $optionsItem = $selectOptionsItem();\r\n var dropdownListHeight = DOMUtils.calculateElementOuterHeight($optionsList);\r\n var dropdownHeight = dropdownListHeight + placeholderHeight;\r\n var itemHeight = $optionsItem ? DOMUtils.calculateElementOuterHeight($optionsItem) : 0;\r\n var selectPosition = DOMUtils.getElementOffset($placeholder).top - window.scrollY; // eslint-disable-line compat/compat\r\n var possibleMaxHeight = 0;\r\n var windowHeight = window.innerHeight;\r\n\r\n dropdownActive = !dropdownActive;\r\n\r\n if (dropdownActive) {\r\n $wrapper.classList.remove('reversed');\r\n }\r\n\r\n if (dropdownHeight > windowHeight - selectPosition && dropdownActive) {\r\n if (windowHeight - selectPosition - placeholderHeight > itemHeight * 3) {\r\n $selectOptionsBox.classList.add('overflowed');\r\n setScrollTop($selectOptionsBox, 0);\r\n $wrapper.classList.remove('reversed');\r\n\r\n possibleMaxHeight = windowHeight - selectPosition - placeholderHeight;\r\n } else {\r\n $wrapper.classList.add('reversed');\r\n\r\n if (dropdownListHeight > selectPosition) {\r\n possibleMaxHeight = selectPosition;\r\n } else {\r\n possibleMaxHeight = dropdownListHeight + 10;\r\n }\r\n\r\n if (possibleMaxHeight < dropdownListHeight) {\r\n $selectOptionsBox.classList.add('overflowed');\r\n setScrollTop($selectOptionsBox, dropdownListHeight - possibleMaxHeight);\r\n }\r\n }\r\n } else {\r\n possibleMaxHeight = dropdownListHeight + 10;\r\n\r\n $selectOptionsBox.classList.remove('overflowed');\r\n }\r\n\r\n $wrapper.classList.toggle('is-active', dropdownActive);\r\n\r\n $selectOptionsBox.style.maxHeight = (dropdownActive ? possibleMaxHeight - 10 : 0) + 'px';\r\n\r\n };\r\n // Renders:\r\n render.ready.then(function (nodes) {\r\n\r\n $selectDropdown((nodes['select-dropdown'].$element));\r\n $selectPlaceholder((nodes['select-placeholder'].$element));\r\n $selectOptions((nodes['select-options'].$element));\r\n $selectOptionsList((nodes['select-options-list'].$element));\r\n\r\n if (nodes['select-options-item']) {\r\n var $options = [];\r\n\r\n for (var i = 0; i < nodes['select-options-item'].length; i++) {\r\n $options.push(nodes['select-options-item'][i].$element);\r\n }\r\n\r\n $selectOptionsItem(($options));\r\n }\r\n\r\n OutsideClick(nodes['select-dropdown'].$element, nodes['select-dropdown'].context, function () {\r\n $selectDropdown().classList.toggle('is-active', false);\r\n $selectOptions().style.maxHeight = 0;\r\n\r\n dropdownActive = dropdownActive || false;\r\n });\r\n });\r\n\r\n // View:\r\n return m('div', { class: 'select-dropdown', config: render.depend('select-dropdown'), onclick: toggleSelect }, [\r\n m('span', { class: 'cs-placeholder', config: render.depend('select-placeholder') }, [\r\n selected() ? selected().name : controller.d('SelectDropdown/Placeholder'),\r\n m('svg', { class: 'select-dropdown-arrow' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: 'select-options', config: render.depend('select-options') }, [\r\n m('ul', { config: render.depend('select-options-list') }, [\r\n options().map(function (option) {\r\n return m('li', { config: render.depend('select-options-item') }, [\r\n m('span', { onclick: selectOption(option) }, option.name)\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return SelectDropdown;\r\n\r\n });\r\n","defineDs('DanskeSpil/Framework/NumberGames/Scripts/Helpers/StorageCheck',\r\n [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage'\r\n ],\r\n function (Overlay, ErrorOverlay, Storage) {\r\n\r\n // Support:\r\n if (!Storage.supported) {\r\n new Overlay(ErrorOverlay('all-or-nothing-classic-game-overlay eurojackpot-classic-game-overlay keno-million-game-overlay lotto-classic-game-overlay vikinglotto-classic-game-overlay', {\r\n header: 'HOVSA!',\r\n body: 'Din browser er indstillet til ikke at gemme webside-data. Hvis du vil tilgÃ¥ danskespil.dk, er du nødt til at gøre det i normal browsertilstand.',\r\n dismiss: 'OK'\r\n })).show();\r\n }\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Helpers/NumberGamesDictionary',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Dictionary'\r\n ],\r\n function (Dictionary) {\r\n\r\n return new Dictionary('/NumberGames');\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils'\r\n ],\r\n function (Utils) {\r\n\r\n // Public functions:\r\n return {\r\n formatCurrency: Utils.formatCurrency,\r\n formatNumber: Utils.formatNumber,\r\n parseISO8601: Utils.parseISO8601,\r\n formatISO8601: Utils.formatISO8601,\r\n getQueryParam: Utils.getQueryParam,\r\n getLongDate: Utils.getLongDate,\r\n isMobile: Utils.isMobile,\r\n isTablet: Utils.isTabletDevice,\r\n prepareParamString: Utils.prepareParamString\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingApi',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/ApiRequest',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils'\r\n ],\r\n function (m, ApiRequest, AllOrNothingUtils) {\r\n\r\n // Variables:\r\n var baseURL = '/dlo/scapi/danskespil/numbergames/allornothing';\r\n var prepareParamString = AllOrNothingUtils.prepareParamString;\r\n\r\n // Functions:\r\n var createCoupon = function (data) {\r\n var deferred = m.deferred();\r\n\r\n ApiRequest({\r\n method: 'POST',\r\n url: baseURL + '/coupon',\r\n data: data\r\n }).then(function (response) {\r\n response = response || {};\r\n\r\n if (response && !response.Message) {\r\n deferred.resolve(response);\r\n } else {\r\n deferred.reject(response);\r\n }\r\n }, function (response) {\r\n response = response || { Message: 'ERROR_NOT_GIVEN' };\r\n\r\n deferred.reject(response);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var getInfo = function () {\r\n return ApiRequest({\r\n method: 'GET',\r\n url: baseURL + '/gameInformation'\r\n });\r\n };\r\n\r\n var getRandomNumbers = function (options) {\r\n var params = prepareParamString(options);\r\n\r\n return ApiRequest({\r\n url: baseURL + '/random' + params,\r\n unwrapSuccess: function (response) {\r\n var rows = [];\r\n\r\n if (response && response.rows) {\r\n response.rows.map(function (row) {\r\n rows.push(row.numbers);\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n });\r\n };\r\n\r\n var getShuffledNumbers = function (option) {\r\n var numberOfCombinations = option !== undefined ? option : 10;\r\n\r\n return ApiRequest({\r\n url: baseURL + '/shufflednumbers?setsToGenerate=' + numberOfCombinations\r\n });\r\n };\r\n\r\n var getCoupon = function (couponId) {\r\n var options = { couponId: couponId };\r\n var params = prepareParamString(options);\r\n\r\n return ApiRequest({\r\n url: baseURL + '/coupon' + params\r\n });\r\n };\r\n\r\n var getCompletedDrawsData = function () {\r\n\r\n return ApiRequest({\r\n url: baseURL + '/completedDrawDates',\r\n localCacheTTL: 60\r\n });\r\n };\r\n\r\n var getWinningNumbers = function (options) {\r\n var params = prepareParamString(options);\r\n\r\n return ApiRequest({\r\n url: baseURL + '/winningNumbers' + params,\r\n localCacheTTL: 60\r\n });\r\n };\r\n\r\n // Public functions:\r\n return {\r\n createCoupon: createCoupon,\r\n getInfo: getInfo,\r\n getRandomNumbers: getRandomNumbers,\r\n getShuffledNumbers: getShuffledNumbers,\r\n getCoupon: getCoupon,\r\n getCompletedDrawsData: getCompletedDrawsData,\r\n getWinningNumbers: getWinningNumbers\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingApi',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage'\r\n ],\r\n function (m, AllOrNothingApi, Storage) {\r\n\r\n // Variables:\r\n var data = m.prop({});\r\n var isFeedDown = m.prop(false);\r\n var noOpenDraw = m.prop(false);\r\n var ready = m.deferred();\r\n\r\n // Functions:\r\n var getDrawRepeatOptions = function () {\r\n var options = data().draws && data().drawRepeatOptions && data().drawRepeatOptions.options ? data().drawRepeatOptions.options : [1, 2, 3, 4, 5, 6, 7, 14];\r\n var count = data().draws ? data().draws.length : 0;\r\n\r\n options.filter(function (v) {\r\n return v <= count;\r\n }).sort(function (a, b) { return a > b ? 1 : -1; });\r\n\r\n return options;\r\n };\r\n\r\n var getDrawRepeatDefault = function () {\r\n return data().drawRepeatOptions && data().drawRepeatOptions.default ? data().drawRepeatOptions.default : 1;\r\n };\r\n\r\n var getStakeDefault = function () {\r\n var defaults = data().stakeOptions ? data().stakeOptions.filter(function (v) { return v.IsDefault; }).map(function (v) { return v.Value; }) : [];\r\n\r\n return defaults[0] || 10; // !!! we need to look at this !!!\r\n };\r\n\r\n // Lightning Options:\r\n var getLightningOptions = function () {\r\n return data().lightningOptions && data().lightningOptions.options ? data().lightningOptions.options : [1, 2, 3, 4, 5, 6, 7, 14, 30];\r\n };\r\n\r\n var getLightningDefaultRowCount = function () {\r\n return data().lightningOptions && data().lightningOptions.default ? data().lightningOptions.default : 5;\r\n };\r\n\r\n // Open draw:\r\n var getOpenDraw = function () {\r\n return data().openDraw;\r\n };\r\n\r\n var feedValid = function (data) {\r\n try {\r\n var json = JSON.parse(data);\r\n\r\n if (json && typeof json.openDraw !== 'undefined') {\r\n return true;\r\n }\r\n } catch (e) { }\r\n\r\n return false;\r\n };\r\n\r\n var storeToCache = function (json) {\r\n Storage.set('AllOrNothingInfoFeed', json ? JSON.stringify(json) : null, 120);\r\n };\r\n\r\n // Initialize:\r\n var init = function () {\r\n\r\n // 1) LOOK IN DOM\r\n var $allOrNothingFeedData = document.querySelector('#all-or-nothing-info');\r\n if ($allOrNothingFeedData) {\r\n var domData = $allOrNothingFeedData.innerHTML;\r\n\r\n if (feedValid(domData)) {\r\n var domJson = JSON.parse(domData);\r\n\r\n data(domJson);\r\n\r\n noOpenDraw(!data().openDraw);\r\n\r\n // Store to cache\r\n storeToCache(domJson);\r\n ready.resolve();\r\n\r\n return;\r\n }\r\n }\r\n\r\n // 2) LOOK IN LOCALSTORAGE\r\n var cacheData = Storage.get('AllOrNothingInfoFeed');\r\n\r\n if (!cacheData || !feedValid(cacheData)) {\r\n // Clear cache\r\n storeToCache(null);\r\n } else {\r\n // Use cache\r\n var d = JSON.parse(cacheData);\r\n\r\n d.confirmUrl ? null : d.confirmUrl = '/alt-eller-intet/bekraeft';\r\n d.numberOfDaysUrl ? null : d.numberOfDaysUrl = '/alt-eller-intet/antal-dage';\r\n\r\n data(d);\r\n\r\n noOpenDraw(!data().openDraw);\r\n\r\n ready.resolve();\r\n\r\n return;\r\n }\r\n\r\n // 3) LOAD INFO FROM FEED\r\n AllOrNothingApi.getInfo().then(function (d) {\r\n d.confirmUrl ? null : d.confirmUrl = '/alt-eller-intet/bekraeft';\r\n d.numberOfDaysUrl ? null : d.numberOfDaysUrl = '/alt-eller-intet/antal-dage';\r\n\r\n data(d);\r\n\r\n noOpenDraw(!data().openDraw);\r\n\r\n // Store to cache\r\n storeToCache(d);\r\n\r\n ready.resolve();\r\n }, function () {\r\n isFeedDown(true);\r\n noOpenDraw(true);\r\n\r\n ready.resolve();\r\n\r\n console.error('### ALL OR NOTHING FEED DOWN ###');\r\n });\r\n\r\n };\r\n\r\n try {\r\n init();\r\n } catch (error) {\r\n console.warn('### ALL OR NOTHING FEED DOWN ###', error);\r\n }\r\n\r\n // Public functions:\r\n return {\r\n data: data,\r\n getDrawRepeatOptions: getDrawRepeatOptions,\r\n getDrawRepeatDefault: getDrawRepeatDefault,\r\n getLightningOptions: getLightningOptions,\r\n getLightningDefaultRowCount: getLightningDefaultRowCount,\r\n getOpenDraw: getOpenDraw,\r\n getStakeDefault: getStakeDefault,\r\n isFeedDown: isFeedDown,\r\n noOpenDraw: noOpenDraw,\r\n ready: ready.promise\r\n };\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Dictionary'\r\n ],\r\n function (Dictionary) {\r\n\r\n // Return:\r\n return new Dictionary('/NumberGames/AllOrNothing');\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Models/AllOrNothingGame',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Core/Model',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingApi',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/DataLayer'\r\n ],\r\n function (m, Model, AllOrNothingApi, AllOrNothingInfo, AllOrNothingUtils, DataLayer) {\r\n\r\n // Model:\r\n var AllOrNothingGame = Model('AllOrNothingGame', function (content) {\r\n this.infoFeed = () => AllOrNothingInfo;\r\n this.api = () => AllOrNothingApi;\r\n\r\n // Variables:\r\n this._generatedRows = m.prop(content._generatedRows || []);\r\n this.couponId = m.prop(content.couponId);\r\n this.numberOfDraws = m.prop(typeof content.numberOfDraws !== 'undefined' ? content.numberOfDraws : AllOrNothingInfo.getDrawRepeatDefault());\r\n this.numberOfDrawsOptions = m.prop(AllOrNothingInfo.getDrawRepeatOptions());\r\n this.numbersIntervalMax = m.prop(24);\r\n this.numbersPerRow = m.prop(content.numbersPerRow || 12);\r\n this.playType = m.prop(content.playType);\r\n this.purchaseTracked = m.prop(content.purchaseTracked || false);\r\n this.rebuyCouponId = m.prop(content.rebuyCouponId);\r\n this.ready = m.prop(m.deferred());\r\n this.rows = m.prop(content.rows || []);\r\n this.rowsToGenerate = m.prop(content.rowsToGenerate || 0);\r\n this.startUrl = m.prop(content.startUrl || window.location.href.split('?')[0]);\r\n this.status = m.prop(content.status || 'open');\r\n this.stakePerRow = m.prop(content.stakePerRow || AllOrNothingInfo.getStakeDefault()); // Required by PurchaseBar\r\n this.isProductDetailsTracked = m.prop(content.isProductDetailsTracked || false);\r\n this.isAddToCartTracked = m.prop(content.isAddToCartTracked || false);\r\n this.isPurchaseCompleteTracked = m.prop(content.isPurchaseCompleteTracked || false);\r\n this.plusSubscriptionJackpot = m.prop(content.plusSubscriptionJackpot || null);\r\n this.firstDepositInfo = m.prop(content.firstDepositInfo || null);\r\n this.verticalType = m.prop(content.verticalType);\r\n // drawDays is an array of booleans, where each index represents a day of the week, starting with Monday\r\n this.drawDays = m.prop([true, true, true, true, true, true, true]);\r\n this.numbersPerRowMax = this.numbersPerRow;\r\n\r\n // Functions:\r\n this.addNumber = function (row, number, autogenerated) {\r\n row = this.getRow(row);\r\n\r\n row.numbers.push({ number: number, autogenerated: autogenerated || false });\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.addRow = function (numbers) {\r\n numbers = numbers || [];\r\n\r\n this.rows().push({ count: this.rowCount(), numbers: numbers, state: 'clean' });\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.autogenerateNumbers = function (rowNumber) {\r\n var self = this;\r\n var deferred = m.deferred();\r\n var row = this.getRow(rowNumber);\r\n var numbers = [];\r\n\r\n for (var i = 0; i < row.numbers.length; i++) {\r\n var number = row.numbers[i];\r\n\r\n numbers.push(number.number);\r\n }\r\n\r\n var options = { rowsToGenerate: 1, requiredNumbers: numbers };\r\n\r\n AllOrNothingApi.getRandomNumbers(options).then(function (rows) {\r\n rows = rows[0];\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n var generatedNumber = rows[i];\r\n\r\n if (generatedNumber && numbers.indexOf(generatedNumber) === -1) {\r\n self.addNumber(rowNumber, generatedNumber, true);\r\n }\r\n }\r\n\r\n deferred.resolve();\r\n }, function () {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n this.getShuffledNumbers = function () {\r\n var deferred = m.deferred();\r\n\r\n AllOrNothingApi.getShuffledNumbers(50).then(function (data) {\r\n\r\n deferred.resolve(data.sets);\r\n }, function () {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n this.areAllRowsValid = () => {\r\n return this.rows().every((row) => this.isRowValid(row.count + 1));\r\n };\r\n\r\n this.autofillClassicRows = async () => {\r\n const promises = [];\r\n const emptyRows = [];\r\n for (let i = 0; i < this.rows().length; i++) {\r\n const row = this.rows()[i];\r\n const rowNumber = row.count + 1;\r\n if (!this.isRowValid(rowNumber)) {\r\n if (row.numbers.length > 0) {\r\n promises.push(this.autogenerateNumbers(rowNumber));\r\n } else {\r\n emptyRows.push(row);\r\n }\r\n }\r\n }\r\n if (emptyRows.length > 0) {\r\n const fullyGeneratedRows = this.api().getRandomNumbers({ rowsToGenerate: emptyRows.length }).then((rowsNumbers) => {\r\n for (let i = 0; i < rowsNumbers.length; i++) {\r\n const rowNumbers = rowsNumbers[i];\r\n const emptyRow = emptyRows[i];\r\n for (let j = 0; j < rowNumbers.length; j++) {\r\n this.addNumber(emptyRow.count + 1, rowNumbers[j], true);\r\n }\r\n }\r\n });\r\n promises.push(fullyGeneratedRows);\r\n }\r\n await Promise.all(promises);\r\n\r\n this.save();\r\n };\r\n\r\n // AllOrNothing Lightning: generate output rows:\r\n this.gameGenerateRows = function () {\r\n var self = this;\r\n var deferred = m.deferred();\r\n\r\n if (['Lightning'].indexOf(this.playType()) === -1) {\r\n console.error('AllOrNothingGame gameGenerateRows: This method cannot be used for playType', this.playType());\r\n\r\n deferred.reject();\r\n\r\n return;\r\n }\r\n\r\n if (this.playType() === 'Lightning') {\r\n var options = { rowsToGenerate: this.rowsToGenerate() };\r\n\r\n AllOrNothingApi.getRandomNumbers(options).then(function (rows) {\r\n var generatedRows = [];\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i];\r\n var numbers = row.map(function (number) { return { number: number, autogenerated: true }; });\r\n\r\n generatedRows.push({ count: i, numbers: numbers, state: 'clean' });\r\n }\r\n\r\n self.generatedRows(generatedRows);\r\n self.save();\r\n\r\n deferred.resolve();\r\n }, function () {\r\n deferred.reject();\r\n }).bind(this);\r\n }\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n this.getRow = function (row) {\r\n if (!this.rows()[row - 1]) {\r\n row = this.rows().length;\r\n }\r\n return this.rows()[row - 1];\r\n }.bind(this);\r\n\r\n this.getRows = function (valid) {\r\n var numbersPerRow = this.numbersPerRow();\r\n\r\n return this.rows().filter(function (row) {\r\n return valid ? row.numbers.length === numbersPerRow : row;\r\n });\r\n }.bind(this);\r\n\r\n this.hasNumber = function (row, number) {\r\n row = this.getRow(row);\r\n\r\n var numbers = row.numbers;\r\n\r\n for (var i = 0; i < numbers.length; i++) {\r\n if (numbers[i].number === number) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }.bind(this);\r\n\r\n this.copyFromOldCoupon = function () {\r\n var self = this;\r\n\r\n AllOrNothingApi.getCoupon(this.rebuyCouponId()).then(function (data) {\r\n self.numberOfDraws(!data.multiWagers ? 1 : data.multiWagers.length);\r\n self.playType(data.playType);\r\n\r\n data.games.forEach(function (game) {\r\n var rows = [];\r\n var rowNumbers = [];\r\n\r\n // Classic:\r\n if (self.playType() === 'Classic') {\r\n game.rows.forEach(function (row, index) {\r\n rowNumbers = { count: index, numbers: [], state: 'clean' };\r\n\r\n row.numbers.forEach(function (number) {\r\n rowNumbers.numbers.push({ autogenerated: false, number: number.number });\r\n });\r\n\r\n self.rows().push(rowNumbers);\r\n });\r\n\r\n // Lightning:\r\n } else if (self.playType() === 'Lightning') {\r\n game.rows.forEach(function (row, index) {\r\n rowNumbers = { count: index, numbers: [], state: 'clean' };\r\n\r\n row.numbers.forEach(function (number) {\r\n rowNumbers.numbers.push({ autogenerated: false, number: number.number });\r\n });\r\n\r\n rows.push(rowNumbers);\r\n });\r\n\r\n self.generatedRows(rows);\r\n self.rowsToGenerate(rows.length);\r\n }\r\n\r\n });\r\n\r\n self.save();\r\n\r\n self.ready().resolve();\r\n }, function () {\r\n self.ready().reject('coupon-not-found');\r\n });\r\n }.bind(this);\r\n\r\n this.drawDateHtmlShort = function () {\r\n var dates = this.drawDates();\r\n var firstDate = dates[0];\r\n var lastDate = dates[dates.length - 1];\r\n\r\n // if there's more than one date, output the range. otherwise output the first date.\r\n if (dates.length > 1) {\r\n return firstDate.draw.getDate() + '/' + (firstDate.draw.getMonth() + 1) + ' - ' + lastDate.draw.getDate() + '/' + (lastDate.draw.getMonth() + 1) + ' ' + lastDate.draw.getFullYear();\r\n } else {\r\n return firstDate.draw.getDate() + '/' + (firstDate.draw.getMonth() + 1) + ' ' + firstDate.draw.getFullYear();\r\n }\r\n }.bind(this);\r\n\r\n this.drawDates = function () {\r\n var drawDates = [];\r\n var openDraw = AllOrNothingInfo.data().openDraw;\r\n var draws = this.numberOfDraws();\r\n\r\n if (!openDraw || !openDraw.closingTime) {\r\n return drawDates;\r\n }\r\n\r\n var closingTime = openDraw.closingTime;\r\n\r\n while (draws--) {\r\n var futureDate = new Date(closingTime);\r\n futureDate.setDate(futureDate.getDate() + draws);\r\n drawDates.push({\r\n draw: futureDate,\r\n hasJoker: false\r\n });\r\n }\r\n\r\n drawDates.sort(function (a, b) {\r\n return a.draw.getTime() - b.draw.getTime();\r\n });\r\n\r\n return drawDates;\r\n }.bind(this);\r\n\r\n this.generatedRows = function (value) {\r\n var playType = this.playType();\r\n\r\n // Classic:\r\n if (playType === 'Classic') {\r\n if (value) {\r\n console.error('AllOrNothingGame: play type Classic does not support setting generatedRows.');\r\n }\r\n\r\n return this.getRows(true);\r\n }\r\n\r\n // Lightning:\r\n if (playType === 'Lightning') {\r\n if (value) {\r\n this._generatedRows(value);\r\n }\r\n\r\n return this._generatedRows();\r\n }\r\n }.bind(this);\r\n\r\n this.init = function () {\r\n if (this.rebuyCouponId() && this.state() === 'new') {\r\n this.copyFromOldCoupon();\r\n } else {\r\n if (this.state() === 'new') {\r\n this.addRow();\r\n }\r\n\r\n this.ready().resolve();\r\n }\r\n }.bind(this);\r\n\r\n this.isGameValid = function () {\r\n var rows = this.rows();\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n if (!this.isRowValid(i + 1)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }.bind(this);\r\n\r\n this.isRowValid = function (rowNumber) {\r\n return this.getRow(rowNumber).numbers.length === this.numbersPerRow();\r\n }.bind(this);\r\n\r\n this.numbersLeft = function (rowNumber) {\r\n return this.numbersPerRow() - this.getRow(rowNumber).numbers.length;\r\n }.bind(this);\r\n\r\n this.trackPurchase = function () {\r\n var self = this;\r\n\r\n if (!self.purchaseTracked() && self.status() === 'completed') {\r\n window.DSAPI && DSAPI.ready(function () {\r\n self.purchaseTracked(true);\r\n });\r\n\r\n this.trackingPurchaseComplete();\r\n }\r\n }.bind(this);\r\n\r\n this.cancelUrl = function () {\r\n if (this.rebuyCouponId()) {\r\n // This is called when going from confirm page, back to completed games overview page.\r\n return this.startUrl();\r\n }\r\n\r\n // This is called when going from confirm page, back to game.\r\n return this.startUrl() + '?gameInstanceId=' + this.id();\r\n }.bind(this);\r\n\r\n this.purchase = function (params) {\r\n params = params || {};\r\n\r\n var deferred = m.deferred();\r\n var self = this;\r\n\r\n if (!params.drawId) {\r\n console.error('No drawId given.');\r\n\r\n deferred.reject({ errorMessage: 'NUMBERGAMES.NO_OPEN_DRAW' });\r\n } else {\r\n this.status('pending-confirmation');\r\n\r\n this.save();\r\n\r\n var rows = this.getRowsSummary();\r\n var rowNumbers = rows.map(function (row) { return { numbers: row }; });\r\n\r\n var options = {\r\n drawId: params.drawId,\r\n totalPrice: parseInt(self.totalPrice(), 10),\r\n multidraw: parseInt(self.numberOfDraws(), 10),\r\n playType: this.playType() || null,\r\n rows: rowNumbers,\r\n salesChannel: (AllOrNothingUtils.isMobile() || AllOrNothingUtils.isTablet()) ? 'mobile' : 'web'\r\n };\r\n\r\n AllOrNothingApi.createCoupon(options).then(function (data) {\r\n self.status('completed');\r\n\r\n self.couponId(data.couponId);\r\n\r\n self.save();\r\n\r\n deferred.resolve(data);\r\n }, function (data) {\r\n self.status('open');\r\n\r\n self.save();\r\n\r\n deferred.reject(data);\r\n });\r\n }\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n this.getRowsSummary = function (useGenerated) {\r\n useGenerated = typeof useGenerated === 'undefined' ? true : useGenerated;\r\n\r\n var summary = [];\r\n var rows = useGenerated ? this.generatedRows() : this.getRows(true);\r\n\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = rows[i].numbers.map(function (numbers) { return numbers.number; });\r\n\r\n summary.push(row);\r\n }\r\n\r\n return summary;\r\n }.bind(this);\r\n\r\n this.getNumbersForRow = function (row) {\r\n var numbers = [];\r\n var rowNumbers = this.getRow(row).numbers;\r\n\r\n rowNumbers.forEach(function (number) {\r\n numbers.push(number.number);\r\n });\r\n\r\n return numbers;\r\n }.bind(this);\r\n\r\n this.prepareNextStep = function (nextStep) {\r\n var nextStepUrl = AllOrNothingInfo.data()[nextStep] + '?gameInstanceId=' + this.id();\r\n var deferred = m.deferred();\r\n var status = this.status();\r\n\r\n if (status !== 'processing') {\r\n this.status('processing');\r\n\r\n var promises = this.playType() !== 'Classic' ? [this.gameGenerateRows()] : [];\r\n var self = this;\r\n\r\n m.sync(promises).then(function () {\r\n self.status(status);\r\n\r\n self.save();\r\n\r\n deferred.resolve(nextStepUrl);\r\n }, function () {\r\n self.status('prepare-confirm-error');\r\n\r\n self.save();\r\n\r\n deferred.reject();\r\n });\r\n } else {\r\n deferred.resolve(nextStepUrl);\r\n }\r\n\r\n return deferred.promise;\r\n }.bind(this);\r\n\r\n this.removeNumber = function (row, number) {\r\n row = this.getRow(row);\r\n\r\n var index = -1;\r\n var numbers = row.numbers;\r\n\r\n for (var i = 0; i < numbers.length; i++) {\r\n if (numbers[i].number === number) {\r\n index = i;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index > -1) {\r\n row.numbers.splice(index, 1);\r\n }\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.removeRow = function (rowNumber) {\r\n var rows = this.rows();\r\n\r\n rows.splice(rowNumber - 1, 1);\r\n\r\n this.rows(rows);\r\n\r\n if (rows.length === 0) {\r\n this.addRow();\r\n }\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.removeAllRows = function () {\r\n this.rows([]);\r\n\r\n this.addRow();\r\n this.addRow();\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.resetRow = function (rowNumber) {\r\n var row = this.getRow(rowNumber);\r\n\r\n row.numbers = [];\r\n row.state = 'clean';\r\n\r\n this.setRow(rowNumber, row);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.rowCount = function () {\r\n var count = 0;\r\n var rows = this.rows();\r\n var amount = rows.length;\r\n\r\n for (var i = 0; i < amount; i++) {\r\n var row = rows[i];\r\n\r\n if (row.count > count) {\r\n count = row.count + 1;\r\n } else {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }.bind(this);\r\n\r\n this.sendToSubscription = function () {\r\n // Tracking for DataLayer\r\n this.status('processing');\r\n this.trackingAddToCart('plus');\r\n\r\n window.location.href = '/plus-abonnement/se-kurv?plus&mcGameType=allornothing&mcGameId=' + this.id();\r\n }.bind(this);\r\n\r\n\r\n // Functions - For tracking (DataLayer eCommerce buzzword)\r\n\r\n this.createDataLayerProduct = function (subscription, event) {\r\n // Product array for datalayer\r\n var dataLayerProducts = [];\r\n\r\n // Main product\r\n var product = {};\r\n\r\n if (subscription) {\r\n // subscription product (PLUS abonnement)\r\n product.name = 'plus';\r\n product.price = this.stakePerRow().toString();\r\n product.brand = 'dlo_plu';\r\n product.category = DataLayer.categoryName(this.playType());\r\n product.variant = DataLayer.variantName('plus_allornothing', this.numberOfDraws(), 'AllOrNothing' + this.playType());\r\n product.quantity = this.getRowAmount();\r\n for (var i = 0; i < 7; i++) { // 7 is for the number of days in a week.\r\n dataLayerProducts.push(product);\r\n }\r\n } else {\r\n product.name = 'alt_eller_intet';\r\n product.price = DataLayer.rowPrice(this.stakePerRow(), this.numberOfDraws(), 'AllOrNothing' + this.playType());\r\n product.brand = 'dlo_alt';\r\n product.category = DataLayer.categoryName(this.playType());\r\n product.variant = DataLayer.variantName('allornothing', this.numberOfDraws(), this.playType());\r\n\r\n if (event != 'productDetails') {\r\n product.quantity = DataLayer.quantity('allornothing', this.getRowsSummary().length, this.playType());\r\n }\r\n dataLayerProducts.push(product);\r\n }\r\n\r\n return dataLayerProducts;\r\n };\r\n\r\n this.trackingAddToCart = function () {\r\n // Check if the event has already been pushed\r\n if (this.isAddToCartTracked() == false) {\r\n this.isAddToCartTracked(true);\r\n\r\n this.save();\r\n\r\n // Push DataLayer addToCart Event\r\n DataLayer.addToCart(this.createDataLayerProduct());\r\n } else {\r\n console.warn('addToCart has been pushed already!');\r\n }\r\n }.bind(this);\r\n\r\n this.trackingProductDetails = function () {\r\n // Check if the event has already been pushed\r\n if (this.isProductDetailsTracked() == false) {\r\n this.isProductDetailsTracked(true);\r\n this.save();\r\n\r\n // Push DataLayer addToCart Event\r\n DataLayer.productDetail(this.createDataLayerProduct(false, 'productDetails'));\r\n } else {\r\n console.warn('productDetails has been pushed already!');\r\n }\r\n }.bind(this);\r\n\r\n this.trackingPurchaseComplete = function () {\r\n\r\n if (this.isPurchaseCompleteTracked() == false) {\r\n this.isPurchaseCompleteTracked(true);\r\n this.save();\r\n\r\n // Push DataLayer purchaseComplete Event\r\n DataLayer.purchaseCompleted({\r\n totalPrice: this.totalPrice().toString(),\r\n id: this.couponId()\r\n }, this.createDataLayerProduct());\r\n } else {\r\n console.warn('purchaseCompleted has been pushed already!');\r\n }\r\n }.bind(this);\r\n\r\n this.setNumberOfDraws = function (draws) {\r\n this.numberOfDraws(draws);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.setRow = function (row, content) {\r\n var rows = this.rows();\r\n\r\n rows[row - 1] = content;\r\n\r\n this.rows(rows);\r\n\r\n this.save();\r\n }.bind(this);\r\n\r\n this.sortRow = function (numbers) {\r\n numbers.sort(function (a, b) {\r\n return a.number < b.number ? -1 : 1;\r\n });\r\n\r\n return numbers;\r\n };\r\n\r\n this.toJSON = function () {\r\n return {\r\n _generatedRows: this._generatedRows(),\r\n couponId: this.couponId(),\r\n id: this.id(),\r\n numberOfDraws: this.numberOfDraws(),\r\n numbersIntervalMax: this.numbersIntervalMax(),\r\n numbersPerRow: this.numbersPerRow(),\r\n playType: this.playType(),\r\n purchaseTracked: this.purchaseTracked(),\r\n rebuyCouponId: this.rebuyCouponId(),\r\n rows: this.rows(),\r\n rowsToGenerate: this.rowsToGenerate(),\r\n startUrl: this.startUrl(),\r\n status: this.status(),\r\n isProductDetailsTracked: this.isProductDetailsTracked(),\r\n isAddToCartTracked: this.isAddToCartTracked(),\r\n isPurchaseCompleteTracked: this.isPurchaseCompleteTracked(),\r\n firstDepositInfo: this.firstDepositInfo(),\r\n plusSubscriptionJackpot: this.plusSubscriptionJackpot(),\r\n drawDays: this.drawDays(),\r\n numbersPerRowMax: this.numbersPerRowMax(),\r\n };\r\n }.bind(this);\r\n\r\n this.getRowAmount = function () {\r\n var playType = this.playType();\r\n\r\n if (playType === 'Lightning') {\r\n return this.rowsToGenerate();\r\n }\r\n\r\n // Classic:\r\n return this.getRows(true).length;\r\n }.bind(this);\r\n\r\n this.totalPrice = function () {\r\n var data = AllOrNothingInfo.data();\r\n var rowAmount = this.getRowAmount();\r\n var price = 0;\r\n\r\n for (var i = 0; i < this.numberOfDraws(); i++) {\r\n price += rowAmount * (data.draws && data.draws[i] && data.draws[i].rowPrice ? data.draws[i].rowPrice : 0);\r\n }\r\n\r\n return price;\r\n }.bind(this);\r\n\r\n });\r\n\r\n // Extensions:\r\n AllOrNothingGame.setupGame = function (options) {\r\n var game = undefined;\r\n\r\n if (options.gameInstanceId) {\r\n game = AllOrNothingGame.get(options.gameInstanceId);\r\n\r\n if (!game || game.status() === 'completed' || (options.playType && game.playType() !== options.playType)) {\r\n game = undefined;\r\n }\r\n }\r\n\r\n if (!game) {\r\n game = AllOrNothingGame.construct(options, options.state || 'new');\r\n }\r\n\r\n return game;\r\n };\r\n\r\n // Public functions:\r\n return AllOrNothingGame;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/CardsCountdown',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/CardsCountdown'\r\n ],\r\n function (Component, AllOrNothingDictionary, AllOrNothingUtils, AllOrNothingInfo, CardsCountdown) {\r\n\r\n // Component:\r\n Component('all-or-nothing-cards-countdown', [AllOrNothingDictionary, AllOrNothingUtils, AllOrNothingInfo], function (ignorem, route, ignoreSettings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.d = AllOrNothingDictionary.get;\r\n this.property = property;\r\n this.feedData = AllOrNothingInfo.data();\r\n\r\n var draw = this.feedData.openDraw;\r\n this.drawDate = draw ? AllOrNothingUtils.parseISO8601(draw.closingTime).dateObject.getTime() : 0;\r\n this.now = new Date().getTime();\r\n\r\n this.property('endCountdownDate', this.drawDate);\r\n },\r\n\r\n view: function (controller) {\r\n return controller.drawDate > controller.now ? CardsCountdown(controller) : null;\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/ConfirmBar',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Scroll',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils'\r\n ],\r\n function (m, Render, Scroll, DOMUtils) {\r\n\r\n // Template:\r\n var ConfirmBar = function (controller) {\r\n\r\n // Variables:\r\n var $bar = null;\r\n var $container = null;\r\n var $top = null;\r\n var ctaFlowBarTexts = controller.ctaFlowBarTexts();\r\n var render = Render();\r\n\r\n // Functions:\r\n var sticky = function () {\r\n var barHeight = $bar.offsetHeight;\r\n var topTop = $top ? DOMUtils.getElementOffset($top).top : 0;\r\n var containerHeight = $container.offsetHeight;\r\n var containerTop = DOMUtils.getElementOffset($container).top;\r\n var parentWidth = DOMUtils.calculateElementOuterWidth($bar.element.parentElement);\r\n var scrollTop = document.documentElement.scrollTop;\r\n var windowHeight = window.innerHeight;\r\n\r\n // Viewport:\r\n var aboveViewport = scrollTop > (topTop === 0 ? containerTop : topTop) + containerHeight;\r\n var belowViewport = scrollTop + windowHeight < (topTop === 0 ? containerTop : topTop);\r\n var relativeViewport = scrollTop + windowHeight > containerTop + containerHeight;\r\n\r\n $bar.setAttribute('style', '');\r\n $container.setAttribute('style', '');\r\n\r\n // Sticky:\r\n if (!aboveViewport && !belowViewport && !relativeViewport) {\r\n $bar.style.bottom = '0';\r\n $bar.style.position = 'fixed';\r\n $bar.style.width = parentWidth + 'px';\r\n $container.style.paddingBottom = barHeight + 'px';\r\n }\r\n\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n $container = document.querySelector('.confirm-bar-container');\r\n $top = document.querySelector('.confirm-bar-top');\r\n\r\n if (!nodes['confirm-bar'].rendered && $container) {\r\n $bar = document.querySelector(nodes['confirm-bar'].$element);\r\n\r\n sticky();\r\n\r\n Scroll(function () {\r\n sticky();\r\n });\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', { class: 'confirm-bar-wrapper', config: render.depend('confirm-bar') }, [\r\n m('div', { class: 'confirm-bar' }, [\r\n m('div', { class: 'confirm-bar-content' }, [\r\n controller.back ? m('div', { class: 'confirm-bar-back', onclick: controller.back }, [\r\n m('a', { class: 'back' }, [\r\n m('div', { class: 'total-price' }, ctaFlowBarTexts.backButtonText)\r\n ])\r\n ]) : null,\r\n controller.confirm ? m('div', { class: 'confirm-bar-cta' + (controller.loading() ? ' processing' : ''), onclick: controller.confirm }, [\r\n m('a', { class: 'confirm' }, [\r\n m('div', { class: 'purchase-button-loader-box' }, [\r\n m('span', { class: 'loader-text' }, ctaFlowBarTexts.processingText),\r\n m('span', { class: 'loader-animation-box' }, [\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' })\r\n ])\r\n ]),\r\n m('div', { class: 'total-price' }, ctaFlowBarTexts.nextButtonText())\r\n ])\r\n ]) : null\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return ConfirmBar;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/PurchaseBar',\r\n [\r\n 'Common/Framework/EventHandling/Scripts/OutsideClick',\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Scroll',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Resize',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils'\r\n ],\r\n function (OutsideClick, m, Render, Scroll, Resize, AllOrNothingUtils, DOMUtils) {\r\n\r\n // View:\r\n var PurchaseBar = function (controller) {\r\n\r\n // Variables:\r\n var $bar = null;\r\n var $container = null;\r\n var $top = null;\r\n var d = controller.d;\r\n var game = controller.game();\r\n var numberOfDraws = game.numberOfDraws();\r\n var render = Render();\r\n\r\n // Functions:\r\n var headerHeight = function () {\r\n var $header = document.querySelector('.top-navigation');\r\n\r\n if (!$header) {\r\n return 0;\r\n }\r\n\r\n var transform = window.getComputedStyle($header).transform;\r\n var translateY = transform !== 'none' ? parseInt(transform.split(',')[5], 10) : 0;\r\n return translateY < 0 ? 0 : $header.offsetHeight;\r\n };\r\n\r\n var daysStyle = function () {\r\n var height = controller.property('purchaseBarDaysHeight');\r\n var dayListItemHeight = controller.property('dayListItemHeight');\r\n var maxHeight = controller.property('purchaseBarMaxHeight') - headerHeight();\r\n\r\n if (maxHeight < dayListItemHeight * 2.5) {\r\n maxHeight = dayListItemHeight * 2.5;\r\n }\r\n\r\n return controller.property('purchaseBarDays') ? 'max-height: ' + (height < maxHeight ? height : maxHeight) + 'px;' : '';\r\n };\r\n\r\n var formatDraws = function (draws) {\r\n if (draws === 0) {\r\n return d('PurchaseBar/PlayRowsEveryWeek');\r\n }\r\n\r\n return d(draws < 2 ? 'PurchaseBar/NumberOfDrawsSingular' : 'PurchaseBar/NumberOfDrawsPluralis', { draws: draws });\r\n };\r\n\r\n var setDraws = function (value) {\r\n return function () {\r\n game.setNumberOfDraws(value);\r\n };\r\n };\r\n\r\n var sticky = function () {\r\n var barHeight = $bar.offsetHeight;\r\n var topTop = $top ? DOMUtils.getElementOffset($top).top : 0;\r\n var containerHeight = $container.offsetHeight;\r\n var containerTop = DOMUtils.getElementOffset($container).top;\r\n var parentWidth = DOMUtils.calculateElementOuterWidth($bar.element.parentElement);\r\n var scrollTop = document.documentElement.scrollTop;\r\n var windowHeight = window.innerHeight;\r\n\r\n // Viewport:\r\n var aboveViewport = scrollTop > (topTop === 0 ? containerTop : topTop) + containerHeight;\r\n var belowViewport = scrollTop + windowHeight < (topTop === 0 ? containerTop : topTop);\r\n var relativeViewport = !aboveViewport && scrollTop + windowHeight > containerTop + containerHeight;\r\n\r\n $bar.setAttribute('style', '');\r\n $container.setAttribute('style', '');\r\n\r\n // Sticky:\r\n if (!aboveViewport && !belowViewport && !relativeViewport && game.playType() !== 'Lightning') {\r\n\r\n $bar.style.bottom = '0';\r\n $bar.style.position = 'fixed';\r\n $bar.style.width = parentWidth + 'px';\r\n $container.style.paddingBottom = barHeight + 'px';\r\n }\r\n\r\n // Dropdown:\r\n var containerEnd = containerTop + containerHeight;\r\n var scrollBottom = scrollTop + windowHeight;\r\n\r\n controller.property('purchaseBarMaxHeight', (scrollBottom > containerEnd ? (windowHeight - barHeight) - (scrollBottom - containerEnd) : windowHeight - barHeight) - 20);\r\n };\r\n\r\n var toggleDays = function () {\r\n controller.property('purchaseBarDays', !controller.property('purchaseBarDays'));\r\n controller.property('purchaseBarStake', false);\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n $bar = document.querySelector(nodes['purchase-bar'].$element);\r\n $container = document.querySelector('.purchase-bar-container');\r\n $top = document.querySelector('.purchase-bar-top');\r\n\r\n if ($bar) {\r\n setTimeout(function () {\r\n sticky();\r\n }, 250);\r\n }\r\n\r\n if (!nodes['purchase-bar'].rendered && $container) {\r\n setTimeout(function () {\r\n sticky();\r\n }, 50);\r\n\r\n Scroll(function () {\r\n sticky();\r\n });\r\n\r\n Resize(function () {\r\n sticky();\r\n });\r\n\r\n OutsideClick(nodes['purchase-bar'].$element, nodes['purchase-bar'].context, function () {\r\n controller.property('purchaseBarDays', false);\r\n });\r\n }\r\n\r\n if (!nodes['days-list'].rendered) {\r\n var node = document.querySelector(nodes['days-list'].$element);\r\n controller.property('purchaseBarDaysHeight', node.offsetHeight);\r\n }\r\n });\r\n\r\n // Return:\r\n return m('div', { class: 'purchase-bar-wrapper', config: render.depend('purchase-bar') }, [\r\n m('div', { class: 'purchase-bar' }, [\r\n m('div', { class: 'purchase-bar-content' }, [\r\n m('div', { class: 'number-of-draws dropdown-wrapper', config: render.depend('draws-per-row'), onclick: toggleDays }, [\r\n m('div', { class: 'arrow-up-icon' + (daysStyle() !== '' ? ' hide' : '') }, [\r\n m('svg', { class: 'svg-icon-arrow-up' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-up-arrow' })\r\n ])\r\n ]),\r\n m('div', [\r\n m('span', d('PurchaseBar/PlayRowsFor')),\r\n formatDraws(numberOfDraws)\r\n ]),\r\n m('div', { class: 'dropdown-list-wrapper', style: daysStyle() }, [\r\n m('ul', { class: 'select-days dropdown', config: render.depend('days-list') }, [\r\n m('li', { onclick: setDraws(0) }, d('PurchaseBar/PlayRowsFor') + d('PurchaseBar/PlayRowsEveryDay')),\r\n game.numberOfDrawsOptions().map(function (draws) {\r\n return m('li', { onclick: setDraws(draws) }, [\r\n m('span', d('PurchaseBar/PlayRowsFor')),\r\n formatDraws(draws)\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'purchase-bar-cta ' + (game.isGameValid() ? 'is-active' : 'is-inactive') + ' ' + game.status(), onclick: controller.purchase }, [\r\n m('a', { class: 'purchase' }, [\r\n m('div', { class: 'purchase-button-loader-box' }, [\r\n m('span', { class: 'loader-text' }, d('PurchaseBar/Processing')),\r\n m('span', { class: 'loader-animation-box' }, [\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' }),\r\n m('span', { class: 'loader-dot' })\r\n ])\r\n ]),\r\n m('div', { class: 'total-price' }, d('PurchaseBar/SubmitButton' + (numberOfDraws === 0 ? 'Plus' : ''), {\r\n totalstake: AllOrNothingUtils.formatNumber(game.totalPrice())\r\n }))\r\n ])\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return PurchaseBar;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/NumberGames/Scripts/Templates/DatePicker',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Utils'\r\n ],\r\n function (m, Render, Utils) {\r\n // Template:\r\n var DatePicker = function (controller, pushWeekToHash) {\r\n var render = Render();\r\n\r\n if (!controller.property('datePickerMonthOffset')) {\r\n controller.property('datePickerMonthOffset', 0);\r\n }\r\n\r\n var dateFormating = function (year, month, day) {\r\n if (month < 10) {\r\n month = '0' + month;\r\n }\r\n if (day < 10) {\r\n day = '0' + day;\r\n }\r\n return year + '-' + month + '-' + day;\r\n };\r\n if (!controller.property('datepickerOnce')) {\r\n controller.property('datepickerOnce', true);\r\n\r\n // sort completed draw dates and select the newsest draw\r\n controller.completedDrawsDates().sort(function compare(a, b) {\r\n var dateA = new Date(a).valueOf();\r\n var dateB = new Date(b).valueOf();\r\n\r\n return dateB - dateA;\r\n });\r\n controller.selectDate(controller.completedDrawsDates()[0]);\r\n }\r\n\r\n // Warning:\r\n // This component is shared for Vikinglotto, Lotto, Keno And All or nothing.\r\n\r\n // Variables:\r\n var headerNames = ['Uge', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn'];\r\n var datePickerDays = [];\r\n var formattedSelectedDate = Utils.formatISO8601(controller.selectedDrawDate() + ' 00:00:00', { includeTime: false });\r\n var selectedDateYear = parseInt(Utils.parseISO8601(controller.selectedDrawDate() + ' 00:00:00').year, 10);\r\n var selectedDateMonth = parseInt(Utils.parseISO8601(controller.selectedDrawDate() + ' 00:00:00').month, 10);\r\n var datePickerMonthOffset = (selectedDateMonth + controller.property('datePickerMonthOffset'));\r\n var datePickerMonth = new Date(selectedDateYear, datePickerMonthOffset).getMonth();\r\n var datePickerYear = new Date(selectedDateYear, (datePickerMonth === 0 ? (datePickerMonthOffset - 1) : datePickerMonthOffset)).getFullYear();\r\n var datePickerMonthName = Utils.parseISO8601(dateFormating(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth), '1') + ' 00:00:00').monthName;\r\n var numberOfDaysForCurrentMonth = new Date(selectedDateYear, datePickerMonthOffset, 0).getDate();\r\n var numberOfDaysForPreviousMonth = new Date(selectedDateYear, (datePickerMonthOffset - 1), 0).getDate();\r\n var firstDayIndex = new Date(selectedDateYear, (datePickerMonthOffset - 1)).getDay();\r\n var lastDayIndex = new Date(selectedDateYear, (datePickerMonthOffset - 1), numberOfDaysForCurrentMonth).getDay();\r\n var numberOfDaysForNextMonth = 7 - (lastDayIndex + 1);\r\n\r\n var startDayLimit = Utils.parseISO8601(controller.completedDrawsDates()[controller.completedDrawsDates().length - 1] + ' 00:00:00');\r\n var isFirstMonth = new Date(parseInt(startDayLimit.year, 10), parseInt(startDayLimit.month, 10)).getTime() >= new Date(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth)).getTime();\r\n var endDayLimit = Utils.parseISO8601(controller.completedDrawsDates()[0] + ' 00:00:00');\r\n var isLastMonth = new Date(parseInt(endDayLimit.year, 10), parseInt(endDayLimit.month, 10)).getTime() <= new Date(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth)).getTime();\r\n\r\n function daysFromPreviousMonth() {\r\n if (firstDayIndex === 0) {\r\n firstDayIndex = 7;\r\n }\r\n\r\n for (var i = 0; i < firstDayIndex - 1; i++) {\r\n var day = (numberOfDaysForPreviousMonth - firstDayIndex + 1) + i + 1;\r\n var className = 'previous-month' + (i === 0 ? ' first-day-of-the-month' : '') + (i === (firstDayIndex - 1) ? ' last-day-of-the-month' : '');\r\n var dayObj = {\r\n dayNumber: day,\r\n date: new Date(datePickerYear, (datePickerMonth - 1), day),\r\n dateFormattet: dateFormating(datePickerYear, (datePickerMonth - 1), day),\r\n cssClass: className\r\n };\r\n\r\n // January\r\n if (datePickerMonth === 1) {\r\n dayObj.date = new Date((datePickerYear - 1), 11, day); // 11 = deceber\r\n dayObj.dateFormattet = dateFormating(datePickerYear - 1, 12, day); // shown as 12\r\n }\r\n // December fix\r\n if (datePickerMonth === 0) {\r\n dayObj.date = new Date(datePickerYear, 10, day); // 10 = november\r\n dayObj.dateFormattet = dateFormating(datePickerYear, 11, day); // shown as 11\r\n }\r\n\r\n datePickerDays.push(dayObj);\r\n }\r\n\r\n\r\n }\r\n\r\n function daysFromCurrentMonth() {\r\n for (var i = 0; i < numberOfDaysForCurrentMonth; i++) {\r\n var day = i + 1;\r\n var className = 'current-month';\r\n var dayObj = {\r\n dayNumber: day,\r\n date: new Date(datePickerYear, (datePickerMonth === 0 ? 11 : datePickerMonth - 1), day),\r\n dateFormattet: dateFormating(datePickerYear, (datePickerMonth === 0 ? 12 : datePickerMonth), day),\r\n cssClass: className\r\n };\r\n\r\n datePickerDays.push(dayObj);\r\n }\r\n }\r\n\r\n function daysFromNextMonth() {\r\n for (var i = 0; i < numberOfDaysForNextMonth + 1; i++) {\r\n var day = i + 1;\r\n var className = 'next-month' + (day === 1 ? ' first-day-of-the-month' : '') + (i === (numberOfDaysForNextMonth) ? ' last-day-of-the-month' : '');\r\n var dayObj = {\r\n dayNumber: day,\r\n date: new Date(datePickerYear, (datePickerMonth), day),\r\n dateFormattet: dateFormating(datePickerYear, (datePickerMonth + 1), day),\r\n cssClass: className\r\n };\r\n\r\n if (datePickerMonth === 0) {\r\n dayObj.dateFormattet = dateFormating((datePickerYear + 1), 1, day);\r\n dayObj.date = new Date((datePickerYear + 1), 0, day);\r\n }\r\n\r\n datePickerDays.push(dayObj);\r\n }\r\n }\r\n\r\n function insertWeekNumbers() {\r\n var numberOfDays = datePickerDays.length;\r\n\r\n for (var splice = 0; splice < numberOfDays; splice += 8) {\r\n var weeknr = Utils.getWeekNumber(datePickerDays[splice + 4].date);\r\n var className = 'weeknr';\r\n var dayObj = {\r\n dayNumber: weeknr,\r\n date: '',\r\n dateFormattet: '',\r\n cssClass: className\r\n };\r\n\r\n datePickerDays.splice(splice, 0, dayObj);\r\n }\r\n }\r\n\r\n // Functions:\r\n var toggleDatepicker = function () {\r\n if (!controller.isDatepickerOpened()) {\r\n controller.property('datePickerMonthOffset', 0);\r\n }\r\n controller.isDatepickerOpened(!controller.isDatepickerOpened());\r\n };\r\n\r\n var selectDate = function (date, state) {\r\n return function () {\r\n if (!state) {\r\n controller.selectDate(date);\r\n controller.isDatepickerOpened(false);\r\n\r\n if (pushWeekToHash) {\r\n Utils.setWeekAndYearToHash(date);\r\n }\r\n }\r\n };\r\n };\r\n\r\n var changeMonth = function (direction) {\r\n return function () {\r\n if (direction === 'prev' && !isFirstMonth) {\r\n controller.property('datePickerMonthOffset', (controller.property('datePickerMonthOffset') - 1));\r\n }\r\n if (direction === 'next' && !isLastMonth) {\r\n controller.property('datePickerMonthOffset', (controller.property('datePickerMonthOffset') + 1));\r\n }\r\n };\r\n };\r\n\r\n // check to see if we have week and date in hash, to show this.\r\n var checkHashForDate = function () {\r\n if (pushWeekToHash && history.pushState) {\r\n var weekAndYear = Utils.getWeekAndYearFromHash();\r\n if (weekAndYear) {\r\n var matchingDate = Utils.getMatchingDateFromWeekAndYear(weekAndYear.week, weekAndYear.year, controller.completedDrawsDates());\r\n if (matchingDate) controller.selectDate(matchingDate);\r\n }\r\n }\r\n };\r\n\r\n daysFromPreviousMonth();\r\n daysFromCurrentMonth();\r\n daysFromNextMonth();\r\n insertWeekNumbers();\r\n\r\n render.ready.then(function (nodes) {\r\n if (!nodes['date-picker'].rendered) {\r\n checkHashForDate();\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', {\r\n class: 'date-picker-wrapper' + (controller.isDatepickerOpened() ? ' opened' : ''),\r\n config: render.depend('date-picker')\r\n }, [\r\n m('div', { class: 'date-picker-placeholder-wrapper', onclick: toggleDatepicker }, [\r\n m('span', { class: 'date-title' }, formattedSelectedDate),\r\n m('svg', { class: 'icon-arrow' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ]),\r\n\r\n // datepicker section\r\n m('div', { class: 'date-picker-calendar-outer-wrapper' }, [\r\n m('div', { class: 'date-picker-header' }, [\r\n m('span', { class: 'navigate-arrow prev' + (isFirstMonth ? ' disabled' : ''), onclick: changeMonth('prev') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ]),\r\n m('span', { class: 'date-title' }, datePickerMonthName + ' ' + datePickerYear),\r\n m('span', { class: 'navigate-arrow next' + (isLastMonth ? ' disabled' : ''), onclick: changeMonth('next') }, [\r\n m('svg', { class: 'icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-down-arrow' })\r\n ])\r\n ])\r\n ]),\r\n\r\n m('div', { class: 'date-picker-calendar-wrapper' }, [\r\n // header cells\r\n headerNames.map(function (day) {\r\n if (day === 'Uge') {\r\n return m('span', { class: 'calendar-cell-wrapper header weeknr' }, day);\r\n }\r\n return m('span', { class: 'calendar-cell-wrapper header' }, day);\r\n }),\r\n\r\n // days cells\r\n datePickerDays.map(function (day) {\r\n var className = 'calendar-cell-wrapper ' + day.cssClass;\r\n var isInactive = false;\r\n if (controller.completedDrawsDates().indexOf(day.dateFormattet) === -1) {\r\n isInactive = true;\r\n className += ' inactive';\r\n }\r\n if (day.dateFormattet === controller.selectedDrawDate()) {\r\n className += ' selected';\r\n }\r\n return m('span', { class: className, onclick: selectDate(day.dateFormattet, isInactive), title: day.dateFormattet }, [\r\n m('span', { class: 'day-wrapper' }, day.dayNumber)\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return DatePicker;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingWinningNumbers/WinningNumbersSpot',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Template:\r\n var WinningNumbersSpot = function (controller) {\r\n\r\n // Variables:\r\n var winningNumbers = controller.winningNumbers();\r\n\r\n // View:\r\n return m('div', { class: 'all-or-nothing-winning-numbers-spot-wrapper' }, [\r\n function () {\r\n var dom = [];\r\n for (var i = 0; i < 12; i++) {\r\n dom.push(m('div', { class: 'all-or-nothing-number-cell-wrapper selected' }, [\r\n m('div', { class: 'number-wrapper' }, winningNumbers[i] ? winningNumbers[i] : '?')\r\n ]));\r\n }\r\n return dom;\r\n }(),\r\n winningNumbers.length < 12 ?\r\n m('div', { class: 'all-or-nothing-no-winning-numbers-data-wrapper' }, [\r\n m('div', { class: 'no-winning-numbers-data-text' }, controller.d('AllOrNothingWinningNumbers/NoData'))\r\n ]) : null\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return WinningNumbersSpot;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingWinningNumbers/WinningPrizesTable',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils'\r\n ],\r\n function (m, AllOrNothingUtils) {\r\n\r\n // Template:\r\n var WinningPrizesTable = function (controller) {\r\n\r\n // Variables:\r\n var winningPrizes = controller.winningPrizes();\r\n\r\n // Functions:\r\n var getNumberOfWinners = function (category) {\r\n var amount = 0;\r\n winningPrizes.filter(function (obj) {\r\n if (obj.name === category) {\r\n amount = obj.numberOfWinners;\r\n }\r\n });\r\n return amount;\r\n };\r\n\r\n var getPrizeForCategory = function (category) {\r\n var prizeForCategory = 0;\r\n winningPrizes.filter(function (obj) {\r\n if (obj.name === category) {\r\n prizeForCategory = obj.amount;\r\n }\r\n });\r\n return AllOrNothingUtils.formatCurrency(prizeForCategory);\r\n };\r\n\r\n // View:\r\n return m('div', { class: 'all-or-nothing-winning-prizes-wrapper' }, [\r\n m('div', { class: 'winning-prizes-table' }, [\r\n m('div', { class: 'winning-prizes-table-row header' }, [\r\n m('span', { class: 'prizes-table-column' }, controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/PrizeCategoryTitle')),\r\n m('span', { class: 'prizes-table-column' }, controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/NumberOfWinnersTitle')),\r\n m('span', { class: 'prizes-table-column' }, controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/PrizeValueTitle'))\r\n ]),\r\n m('div', { class: 'winning-prizes-table-row' }, [\r\n m('span', { class: 'prizes-table-column' }, [\r\n m('span', m.trust(controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/CategoryName', { firstNumber: '12', secondNumber: '0' })))\r\n ]),\r\n m('span', { class: 'prizes-table-column' }, (getNumberOfWinners('12/12') + getNumberOfWinners('0/12'))),\r\n m('span', { class: 'prizes-table-column' }, getPrizeForCategory('12/12'))\r\n ]),\r\n m('div', { class: 'winning-prizes-table-row' }, [\r\n m('span', { class: 'prizes-table-column' }, [\r\n m('span', m.trust(controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/CategoryName', { firstNumber: '11', secondNumber: '1' })))\r\n ]),\r\n m('span', { class: 'prizes-table-column' }, (getNumberOfWinners('11/12') + getNumberOfWinners('1/12'))),\r\n m('span', { class: 'prizes-table-column' }, getPrizeForCategory('11/12'))\r\n ]),\r\n m('div', { class: 'winning-prizes-table-row' }, [\r\n m('span', { class: 'prizes-table-column' }, [\r\n m('span', m.trust(controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/CategoryName', { firstNumber: '10', secondNumber: '2' })))\r\n ]),\r\n m('span', { class: 'prizes-table-column' }, (getNumberOfWinners('10/12') + getNumberOfWinners('2/12'))),\r\n m('span', { class: 'prizes-table-column' }, getPrizeForCategory('10/12'))\r\n ]),\r\n m('div', { class: 'winning-prizes-table-row' }, [\r\n m('span', { class: 'prizes-table-column' }, [\r\n m('span', m.trust(controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/CategoryName', { firstNumber: '9', secondNumber: '3' })))\r\n ]),\r\n m('span', { class: 'prizes-table-column' }, (getNumberOfWinners('9/12') + getNumberOfWinners('3/12'))),\r\n m('span', { class: 'prizes-table-column' }, getPrizeForCategory('9/12'))\r\n ]),\r\n m('div', { class: 'winning-prizes-table-row' }, [\r\n m('span', { class: 'prizes-table-column' }, [\r\n m('span', m.trust(controller.d('AllOrNothingWinningNumbers/WinningPrizesTable/CategoryName', { firstNumber: '8', secondNumber: '4' })))\r\n ]),\r\n m('span', { class: 'prizes-table-column' }, (getNumberOfWinners('8/12') + getNumberOfWinners('4/12'))),\r\n m('span', { class: 'prizes-table-column' }, getPrizeForCategory('8/12'))\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return WinningPrizesTable;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/DeleteOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Template:\r\n var DeleteOverlay = function (d) {\r\n\r\n // Return:\r\n return {\r\n class: m.prop('all-or-nothing-delete-row-overlay'),\r\n\r\n render: function (confirm, dismiss) {\r\n return m('div', { class: this.class() }, [\r\n m('div', { class: 'pannel' }, [\r\n m('div', { class: 'icon-wrapper' }, [\r\n m('svg', { class: 'icon icon-rubbish' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingIcons.svg#Delete' })\r\n ])\r\n ]),\r\n m('h2', { class: 'headline' }, d('DeleteRowOverlay/OverlayDeleteHeader')),\r\n m('p', { class: 'text' }, d('DeleteRowOverlay/OverlayDeleteBody')),\r\n m('div', { class: 'buttons' }, [\r\n m('button', { class: 'btn grey button-cancel', onclick: dismiss }, d('DeleteRowOverlay/OverlayDeleteCancel')),\r\n m('button', { class: 'btn button-confirm', onclick: confirm }, d('DeleteRowOverlay/OverlayDeleteConfirm'))\r\n ])\r\n ])\r\n ]);\r\n }\r\n };\r\n };\r\n\r\n // Public functions:\r\n return DeleteOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingLightning/RotarySelector',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Components/NumbersRotarySelector/RotarySelector'\r\n ],\r\n // eslint-disable-next-line no-unused-vars\r\n function (m, NumberGamesRotarySelector) {\r\n\r\n // Template:\r\n var RotarySelector = function (options, value, valuePostfix) {\r\n return ();\r\n };\r\n\r\n // Public functions:\r\n return RotarySelector;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/ActionsBar',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n ],\r\n function (m, Render) {\r\n\r\n // Template:\r\n var ActionsBar = function (controller) {\r\n\r\n // Variables:\r\n var render = Render();\r\n var d = controller.d;\r\n var numberOfRows = controller.game().getRows(true).length;\r\n var numbersLeft = controller.game().numbersLeft(controller.property('currentRow'));\r\n\r\n // Functions:\r\n var toggleAllNumbersGrid = function () {\r\n if (!controller.property('interactionsBlocked')) {\r\n controller.isClassicViewOn(!controller.isClassicViewOn());\r\n }\r\n };\r\n\r\n var openRowsOverlay = function () {\r\n controller.isRowsOverlayOn(true);\r\n m.redraw();\r\n };\r\n\r\n var buyAction = function () {\r\n if (controller.game().getRows(true).length >= 1) {\r\n controller.purchase();\r\n } else {\r\n openRowsOverlay();\r\n }\r\n };\r\n\r\n var sticky = function ($wrapper, ignoreBar) {\r\n var scrollY = window.scrollY || window.pageYOffset; // eslint-disable-line compat/compat\r\n var wrapperBottom = ($wrapper.getBoundingClientRect().height + ($wrapper.getBoundingClientRect().top + scrollY));\r\n var pageBottom = (window.innerHeight + scrollY);\r\n var currentPosition = (wrapperBottom - pageBottom);\r\n\r\n var $buyContainer = document.getElementsByClassName('rows-count-and-buy-container')[0];\r\n var $classicButton = document.getElementsByClassName('full-grid-button-wrapper')[0];\r\n var $autogenerateButton = document.getElementsByClassName('autogenerate-button-wrapper')[0];\r\n\r\n if (!($buyContainer || $classicButton || $autogenerateButton)) {\r\n return;\r\n }\r\n\r\n if (!controller.isSubscriptionMode()) {\r\n if (currentPosition >= 0) {\r\n $buyContainer.classList.add('fixed-position');\r\n $classicButton.classList.add('fixed-position');\r\n $autogenerateButton.classList.add('fixed-position');\r\n\r\n // buy bar logic\r\n if (currentPosition >= 35) {\r\n $buyContainer.classList.add('row-layout');\r\n $buyContainer.classList.remove('column-layout');\r\n } else {\r\n if ($buyContainer.classList.contains('row-layout')) {\r\n $buyContainer.classList.remove('row-layout');\r\n $buyContainer.classList.add('column-layout');\r\n }\r\n }\r\n\r\n // classic button logic\r\n if (currentPosition >= 35) {\r\n $classicButton.classList.add('to-the-left');\r\n } else {\r\n $classicButton.classList.remove('to-the-left');\r\n }\r\n\r\n } else {\r\n $buyContainer.classList.remove('fixed-position', 'row-layout', 'column-layout');\r\n $classicButton.classList.remove('fixed-position', 'to-the-left');\r\n $autogenerateButton.classList.remove('fixed-position');\r\n }\r\n } else {\r\n $buyContainer.classList.add('fixed-position');\r\n $classicButton.classList.add('fixed-position');\r\n $classicButton.classList.add('to-the-left');\r\n $autogenerateButton.classList.add('fixed-position');\r\n }\r\n };\r\n\r\n var autogenerateButtonClassName = function () {\r\n var className = '';\r\n\r\n if (numbersLeft === 0 || controller.property('autogeneratingNumbers')) {\r\n className += ' inactive-button';\r\n }\r\n\r\n if (controller.property('autogeneratingNumbers')) {\r\n className += ' pulsing';\r\n }\r\n\r\n return className;\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n if (controller.isMobile && !controller.property('classicGameActionsBarRendered')) {\r\n var actionsBarWrapper = nodes['actions-bar-wrapper'];\r\n var $actionsBarWrapper = actionsBarWrapper.$element;\r\n var $gameClientWrapper = $actionsBarWrapper.parentElement;\r\n\r\n if (actionsBarWrapper.rendered) {\r\n controller.property('classicGameActionsBarRendered', true);\r\n\r\n sticky($gameClientWrapper, actionsBarWrapper);\r\n controller.scroll(function () {\r\n sticky($gameClientWrapper, actionsBarWrapper);\r\n });\r\n\r\n if (controller.isSubscriptionMode()) {\r\n var gameWrapper = document.querySelector('.subscriptions-fullpage-mode .subscriptions-game-client-wrapper');\r\n\r\n if (!gameWrapper) {\r\n gameWrapper = document.querySelector('.wizard .game-client');\r\n }\r\n\r\n if (gameWrapper) {\r\n gameWrapper.addEventListener('scroll', function () {\r\n sticky(gameWrapper, actionsBarWrapper);\r\n });\r\n }\r\n }\r\n\r\n controller.resize(function () {\r\n sticky($gameClientWrapper, actionsBarWrapper);\r\n });\r\n }\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', {\r\n class: 'all-or-nothing-classic-game-actions-bar-wrapper',\r\n config: render.depend('actions-bar-wrapper')\r\n }, [\r\n m('div', {\r\n class: 'all-or-nothing-special-button-container autogenerate-button-wrapper',\r\n onclick: controller.autogenerateNumbers\r\n }, [\r\n m('div', { class: 'special-button-wrapper' + autogenerateButtonClassName() }, [\r\n m('span', { class: 'button-text' }, controller.isMobile ? d('AllOrNothingClassic/ActionsBar/AutogenerateNumbersMobile') : d('AllOrNothingClassic/ActionsBar/AutogenerateNumbers'))\r\n ])\r\n ]),\r\n m('div', {\r\n class: 'all-or-nothing-special-button-container full-grid-button-wrapper',\r\n onclick: toggleAllNumbersGrid\r\n }, [\r\n m('div', { class: 'special-button-wrapper' + (controller.isClassicViewOn() ? ' selected' : '') }, [\r\n m('svg', { class: 'button-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingIcons.svg#Numpad' })\r\n ])\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_2' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/ClassicView'))\r\n ])\r\n ]),\r\n m('div', { class: 'rows-count-and-buy-container' }, [\r\n m('div', { class: 'all-or-nothing-special-button-container' }, [\r\n m('div', { class: 'rows-count-wrapper', onclick: openRowsOverlay }, [\r\n m('div', { class: 'number-of-valid-rows' }, numberOfRows),\r\n m('div', { class: 'rows-count-text' }, d('AllOrNothingClassic/ActionsBar/Row' + (numberOfRows ? '' : 's')))\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_3' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/RowsOverview'))\r\n ]),\r\n !controller.isSubscriptionMode() ? m('div', {\r\n class: 'special-button-wrapper yellow-button buy-button-wrapper' + (controller.game().getRows(true).length >= 1 ? '' : ' inactive-button'),\r\n onclick: buyAction\r\n }, [\r\n m('span', { class: 'button-text' }, d('AllOrNothingClassic/ActionsBar/BuyButton'))\r\n ]) : null\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return ActionsBar;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/RowsOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril'\r\n ],\r\n function (m) {\r\n\r\n // Template:\r\n var RowsOverlay = function (controller) {\r\n\r\n // Variables:\r\n var d = controller.d;\r\n var numberOfRows = controller.game().getRows(true).length;\r\n var currentRow = controller.game().getRow(controller.property('currentRow'));\r\n var rowsForOverlay = [currentRow];\r\n\r\n // Functions:\r\n controller.closeRowOverlay = function () {\r\n if (controller.isRowsOverlayOn()) {\r\n var $rowsOverlayWrapper = document.getElementsByClassName('all-or-nothing-classic-game-rows-overlay-wrapper')[0];\r\n\r\n $rowsOverlayWrapper.classList.add('closing-overlay');\r\n controller.initNumbersStack();\r\n\r\n $rowsOverlayWrapper.addEventListener('animationend', function _rowsOverlayFadeOutAnimationEnded(event) {\r\n if (event.animationName === 'all-or-nothing-classic-game-rows-overlay-wrapper-background-fade-out-animation') {\r\n controller.isRowsOverlayOn(false);\r\n m.redraw();\r\n\r\n if (controller.game().getRows(true).length === 1 && !controller.hasFirstRowOverlayAppeared() && !controller.storage.get('allOrNothing-hasDisplayedFirstRowCompleted')) {\r\n controller.storage.set('allOrNothing-hasDisplayedFirstRowCompleted', true);\r\n controller.hasFirstRowOverlayAppeared(true);\r\n }\r\n\r\n $rowsOverlayWrapper.removeEventListener('animationend', _rowsOverlayFadeOutAnimationEnded, true);\r\n }\r\n }, true);\r\n }\r\n };\r\n\r\n var addNewRow = function () {\r\n if (!controller.property('interactionsBlocked')) {\r\n controller.closeRowOverlay();\r\n controller.addingNewRow();\r\n }\r\n };\r\n\r\n // View:\r\n return m('div', { class: 'all-or-nothing-classic-game-rows-overlay-wrapper' }, [\r\n m('div', { class: 'rows-overlay-panel-wrapper' }, [\r\n m('div', { class: 'close-overlay-button-wrapper', onclick: controller.closeRowOverlay }, [\r\n m('svg', { class: 'button-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingIcons.svg#Close' })\r\n ])\r\n ]),\r\n m('div', { class: 'rows-overlay-header' }, [\r\n function () {\r\n if (controller.game().getRows(true).length === 1 && !controller.hasFirstRowOverlayAppeared() && !controller.storage.get('allOrNothing-hasDisplayedFirstRowCompleted')) {\r\n return [\r\n m('div', { class: 'headline' }, d('AllOrNothingClassic/RowsOverviewOverlay/FirstTimeHeadline')),\r\n m('div', { class: 'subheadline' }, d('AllOrNothingClassic/RowsOverviewOverlay/FirstTimeSubheadline'))\r\n ];\r\n } else {\r\n return [\r\n m('div', { class: 'headline' }, d('AllOrNothingClassic/RowsOverviewOverlay/RegularHeadline')),\r\n m('div', { class: 'rows-count' }, d('AllOrNothingClassic/RowsOverviewOverlay/RowsCounter', { currentRowNumber: controller.property('currentRow'), numberOfRows: controller.game().rows().length }))\r\n ];\r\n }\r\n }()\r\n ]),\r\n m('div', { class: 'rows-overlay-wrapper' }, [\r\n rowsForOverlay.map(function (row) {\r\n var cellsLeft = (12 - row.numbers.length);\r\n\r\n return m('div', { class: 'row-wrapper', onclick: controller.closeRowOverlay }, [\r\n (cellsLeft > 0) ? m('div', { class: 'auto-generate-numbers-button-wrapper' }, [\r\n m('div', { class: 'all-or-nothing-button white' + (controller.property('autogeneratingNumbers') ? ' loading-pulse' : ''), onclick: controller.autogenerateNumbers }, d('AllOrNothingClassic/RowsOverviewOverlay/AutogenerateButtonText'))\r\n ]) : null,\r\n row.numbers.map(function (number) {\r\n return m('div', { class: 'number-cell' }, number.number);\r\n }),\r\n function () {\r\n var DOM = [];\r\n for (var i = cellsLeft; i > 0; i--) {\r\n DOM.push(m('div', { class: 'number-cell' }));\r\n }\r\n return DOM;\r\n }()\r\n ]);\r\n })\r\n ]),\r\n (controller.game().getRows(true).length === 1 && !controller.hasFirstRowOverlayAppeared() && !controller.storage.get('allOrNothing-hasDisplayedFirstRowCompleted')) ? null :\r\n m('div', { class: 'rows-overlay-actions-bar-wrapper' }, [\r\n m('div', { class: 'all-or-nothing-special-button-container' }, [\r\n m('div', { class: 'special-button-wrapper' + ((numberOfRows > 0) ? '' : ' inactive-button'), onclick: controller.deleteRow(controller.property('currentRow')) }, [\r\n m('svg', { class: 'button-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingIcons.svg#Delete' })\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container navigation-wrapper' }, [\r\n m('div', { class: 'special-button-wrapper prev' + ((controller.property('currentRow') > 1) ? '' : ' inactive-button'), onclick: controller.changeCurrentRow('prev') }, [\r\n m('svg', { class: 'button-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingIcons.svg#Back-arrow' })\r\n ])\r\n ]),\r\n m('div', { class: 'special-button-wrapper next' + ((controller.property('currentRow') === controller.game().rowCount()) ? ' inactive-button' : ''), onclick: controller.changeCurrentRow('next') }, [\r\n m('svg', { class: 'button-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingIcons.svg#Back-arrow' })\r\n ])\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'rows-overlay-confirm-bar-wrapper' }, [\r\n m('div', { class: 'all-or-nothing-special-button-container' }, [\r\n m('div', { class: 'special-button-wrapper', onclick: addNewRow }, [\r\n m('span', { class: 'button-text' }, d('AllOrNothingClassic/RowsOverviewOverlay/NewRowButtonText'))\r\n ]),\r\n !controller.isSubscriptionMode() ? m('div', { class: 'special-button-wrapper yellow-button' + (controller.game().getRows(true).length >= 1 ? '' : ' inactive-button'), onclick: controller.purchase }, [\r\n m('span', { class: 'button-text' }, d('AllOrNothingClassic/RowsOverviewOverlay/BuyButtonText', { totalPrice: controller.game().totalPrice() }))\r\n ]) : null\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return RowsOverlay;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/MobileOnboarding',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Hammer',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Framework/HammerTime'\r\n ],\r\n function (m, Render, Hammer) {\r\n\r\n // Template:\r\n var MobileOnboarding = function (controller) {\r\n\r\n // Variables:\r\n var render = Render();\r\n var d = controller.d;\r\n if (!controller.property('onboardingStep')) {\r\n controller.property('onboardingStep', 1);\r\n }\r\n // Functions:\r\n var increaseStepCount = function () {\r\n controller.property('onboardingStep', controller.property('onboardingStep') + 1);\r\n m.redraw();\r\n };\r\n\r\n if (controller.property('onboardingStep') === 4) {\r\n if (!controller.storage.get('allOrNothing-mobileOnboardingStepShowed')) {\r\n\r\n // after the last onboarding slide we wait a bit before doing a m.redraw to remove the mobile onboarding from the DOM\r\n setTimeout(function () {\r\n controller.storage.set('allOrNothing-mobileOnboardingStepShowed', true);\r\n m.redraw();\r\n }, 1500);\r\n }\r\n }\r\n\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var onboardingWrapper = nodes['mobile-onboarding-wrapper'];\r\n\r\n if (onboardingWrapper.rendered && !controller.property('mobile-onboarding-wrapper')) {\r\n controller.property('mobile-onboarding-wrapper', true);\r\n\r\n var $onboardingWrapper = onboardingWrapper.$element;\r\n var hammer = new Hammer($onboardingWrapper);\r\n\r\n hammer.on('swipeleft swipeup swipedown tap', function () {\r\n if (controller.property('onboardingStep') < 4) {\r\n controller.property('onboardingStep', controller.property('onboardingStep') + 1);\r\n m.redraw();\r\n }\r\n });\r\n\r\n hammer.on('swiperight', function () {\r\n if (controller.property('onboardingStep') > 1) {\r\n controller.property('onboardingStep', controller.property('onboardingStep') - 1);\r\n m.redraw();\r\n }\r\n });\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', { class: 'all-or-nothing-classic-mobile-onboarding-wrapper' + (controller.property('onboardingStep') === 4 ? ' hide-onboarding' : ''), config: render.depend('mobile-onboarding-wrapper') }, [\r\n m('div', { class: 'mobile-onboarding-panel-wrapper' }, [\r\n m('div', { class: 'mobile-onboarding-steps-wrapper' }, [\r\n // General headline\r\n m('div', { class: 'mobile-onboarding-headline-wrapper' }, [\r\n m('svg', { class: 'onboarding-headline', viewBox: '0 0 300 15' }, [\r\n m('path', { id: 'onboarding-headline-curve-path', d: 'M0,15C100-5,200-5,300,15' }),\r\n m('text', { class: 'onboarding-headline-text' }, [\r\n m('textPath', { startOffset: '50%', 'text-anchor': 'middle', href: '#onboarding-headline-curve-path' }, d('AllOrNothingClassic/Onboarding/ForMobile/GeneralHeadline'))\r\n ])\r\n ])\r\n ]),\r\n // Frist step:\r\n m('div', { class: 'mobile-onboarding-step-wrapper first-step' + (controller.property('onboardingStep') >= 1 ? ' active' : '') }, [\r\n m('div', { class: 'step-headline' }, d('AllOrNothingClassic/Onboarding/ForMobile/FirstStep')),\r\n m('div', { class: 'indications-outer-wrapper' }, [\r\n m('div', { class: 'indications-inner-wrapper' }, [\r\n m('div', { class: 'indications-icon-wrapper' }, [\r\n m('svg', { class: 'indications-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_1' })\r\n ])\r\n ]),\r\n m('div', { class: 'numbers-wrapper' }, [\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '22')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '5')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '12')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '4')\r\n ])\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container' }, [\r\n m('div', { class: 'special-button-wrapper', onclick: increaseStepCount }, [\r\n m('div', { class: 'button-text' }, d('AllOrNothingClassic/Onboarding/ForMobile/NextButtonText'))\r\n ])\r\n ])\r\n ]),\r\n // Second step:\r\n m('div', { class: 'mobile-onboarding-step-wrapper second-step' + (controller.property('onboardingStep') >= 2 ? ' active' : '') }, [\r\n m('div', { class: 'step-headline' }, d('AllOrNothingClassic/Onboarding/ForMobile/SecondStep')),\r\n m('div', { class: 'indications-outer-wrapper' }, [\r\n m('div', { class: 'indications-inner-wrapper' }, [\r\n m('div', { class: 'indications-icon-wrapper' }, [\r\n m('svg', { class: 'indications-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_2' })\r\n ])\r\n ]),\r\n m('div', { class: 'numbers-wrapper' }, [\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '22')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '5')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '12')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '4')\r\n ])\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container' }, [\r\n m('div', { class: 'special-button-wrapper', onclick: increaseStepCount }, [\r\n m('div', { class: 'button-text' }, d('AllOrNothingClassic/Onboarding/ForMobile/NextButtonText'))\r\n ])\r\n ])\r\n ]),\r\n // Third step:\r\n m('div', { class: 'mobile-onboarding-step-wrapper third-step' + (controller.property('onboardingStep') >= 3 ? ' active' : '') }, [\r\n m('div', { class: 'step-headline' }, d('AllOrNothingClassic/Onboarding/ForMobile/ThirdStep')),\r\n m('div', { class: 'indications-outer-wrapper' }, [\r\n m('div', { class: 'indications-inner-wrapper' }, [\r\n m('div', { class: 'indications-icon-wrapper' }, [\r\n m('svg', { class: 'indications-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#hand_pointer' })\r\n ])\r\n ]),\r\n m('div', { class: 'numbers-wrapper' }, [\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '22')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '5')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '12')\r\n ]),\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, '4')\r\n ])\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container' }, [\r\n m('div', { class: 'special-button-wrapper', onclick: increaseStepCount }, [\r\n m('div', { class: 'button-text' }, d('AllOrNothingClassic/Onboarding/ForMobile/StartButtonText'))\r\n ])\r\n ])\r\n ]),\r\n // Steps indicator\r\n m('div', { class: 'steps-indicator-wrapper' }, [\r\n m('div', { class: 'step-indicator' + (controller.property('onboardingStep') === 1 ? ' active' : '') }),\r\n m('div', { class: 'step-indicator' + (controller.property('onboardingStep') === 2 ? ' active' : '') }),\r\n m('div', { class: 'step-indicator' + (controller.property('onboardingStep') >= 3 ? ' active' : '') })\r\n ])\r\n ])\r\n ])\r\n ]);\r\n };\r\n\r\n // Public functions:\r\n return MobileOnboarding;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/KeyboardNavigation',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render'\r\n ],\r\n function (m, Render) {\r\n\r\n // Template:\r\n var KeyboardNavigation = function (controller) {\r\n\r\n // Variables:\r\n var render = Render();\r\n var d = controller.d;\r\n var currentRow = controller.property('currentRow');\r\n var game = controller.game();\r\n var numbersLeft = game.numbersLeft(currentRow);\r\n\r\n // Functions:\r\n var selectNumber = function () {\r\n if (!controller.isClassicViewOn() && !controller.isRowsOverlayOn()) {\r\n var numberElem = null;\r\n controller.numbersCellsNode.forEach(function (elem) {\r\n if (elem.context.numberCellValue === controller.numbersOrderInStack()[0]) {\r\n numberElem = elem;\r\n }\r\n });\r\n\r\n if (numberElem !== null) {\r\n controller.onToggleNumber(numberElem);\r\n }\r\n }\r\n };\r\n\r\n var addNewRow = function () {\r\n if (!controller.property('interactionsBlocked')) {\r\n if (controller.isRowsOverlayOn()) {\r\n controller.closeRowOverlay();\r\n }\r\n controller.addingNewRow();\r\n }\r\n };\r\n\r\n var groupSelecting = function (event) {\r\n if (!controller.isClassicViewOn() && !controller.isRowsOverlayOn() && !controller.property('numberPanning')) {\r\n if (event.type === 'mousedown' || event.type === 'keydown') {\r\n controller.groupNumbers(event, 3);\r\n } else {\r\n controller.groupNumbers(event);\r\n }\r\n }\r\n };\r\n\r\n var moveToTheEndOfTheStack = function () {\r\n if (!controller.isClassicViewOn() && !controller.isRowsOverlayOn()) {\r\n var numberElem = null;\r\n controller.numbersCellsNode.forEach(function (elem) {\r\n if (elem.context.numberCellValue === controller.numbersOrderInStack()[0]) {\r\n numberElem = elem;\r\n }\r\n });\r\n\r\n if (numberElem !== null) {\r\n controller.moveToTheEndOfTheStack(numberElem, 'down');\r\n }\r\n }\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var keyboardPadWrapper = nodes['keyboard-pad-wrapper'];\r\n\r\n if (!keyboardPadWrapper.rendered) {\r\n // keyboard events\r\n document.onkeydown = function (event) {\r\n // keyCode 13 = enter\r\n if ((event.which == 13 || event.keyCode == 13) ||\r\n // keyCode 32 = space bar\r\n (event.which == 32 || event.keyCode == 32) ||\r\n // keyCode 37 = arrow left\r\n (event.which == 37 || event.keyCode == 37) ||\r\n // keyCode 38 = arrow up\r\n (event.which == 38 || event.keyCode == 38) ||\r\n // keyCode 39 = arrow right\r\n (event.which == 39 || event.keyCode == 39) ||\r\n // keyCode 40 = arrow down\r\n (event.which == 40 || event.keyCode == 40) ||\r\n // keyCode 107 = numpad add '+'\r\n (event.which == 107 || event.keyCode == 107)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event.which == 32 || event.keyCode == 32) {\r\n groupSelecting(event);\r\n m.redraw();\r\n }\r\n };\r\n document.onkeyup = function (event) {\r\n if ((event.which == 38 || event.keyCode == 38) || (event.which == 13 || event.keyCode == 13)) {\r\n event.preventDefault();\r\n selectNumber();\r\n m.redraw();\r\n }\r\n if (event.which == 37 || event.keyCode == 37) {\r\n if (!controller.isClassicViewOn()) {\r\n controller.changeCurrentRow('prev')();\r\n\r\n m.redraw();\r\n }\r\n }\r\n\r\n if (event.which == 32 || event.keyCode == 32) {\r\n controller.groupNumbers(event);\r\n }\r\n\r\n if (event.which == 39 || event.keyCode == 39) {\r\n if (!controller.isClassicViewOn()) {\r\n controller.changeCurrentRow('next')();\r\n\r\n m.redraw();\r\n }\r\n }\r\n if (event.which == 40 || event.keyCode == 40) {\r\n moveToTheEndOfTheStack();\r\n }\r\n if (event.which == 107 || event.keyCode == 107) {\r\n addNewRow();\r\n m.redraw();\r\n }\r\n };\r\n }\r\n });\r\n\r\n // View:\r\n return m('div', { class: 'all-or-nothing-classic-game-keyboard-pad-wrapper' + (controller.isClassicViewOn() ? ' hide-keyboard-pad' : ''), config: render.depend('keyboard-pad-wrapper') }, [\r\n m('div', { class: 'keyboard-pad-inner-wrapper' }, [\r\n m('div', { class: 'arrows-wrapper' }, [\r\n m('div', { class: 'all-or-nothing-special-button-container arrow-key up-key', onclick: selectNumber }, [\r\n m('div', { class: 'special-button-wrapper' + ((numbersLeft === 0) ? ' inactive-button' : '') }, [\r\n m('span', { class: 'button-icon' })\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_2' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/ArrowUp'))\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container arrow-key plus-key', onclick: addNewRow }, [\r\n m('div', { class: 'special-button-wrapper' }, [\r\n m('svg', { class: 'button-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingIcons.svg#Close' })\r\n ])\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_3' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/PlusButton'))\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container arrow-key left-key', onclick: controller.changeCurrentRow('prev') }, [\r\n m('div', { class: 'special-button-wrapper' + ((controller.property('currentRow') > 1) ? '' : ' inactive-button') }, [\r\n m('span', { class: 'button-icon' })\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_1' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/ArrowLeft'))\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container arrow-key down-key', onclick: moveToTheEndOfTheStack }, [\r\n m('div', { class: 'special-button-wrapper' }, [\r\n m('span', { class: 'button-icon' })\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_1' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/ArrowDown'))\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container arrow-key right-key', onclick: controller.changeCurrentRow('next') }, [\r\n m('div', { class: 'special-button-wrapper' + ((controller.property('currentRow') === controller.game().rowCount()) ? ' inactive-button' : '') }, [\r\n m('span', { class: 'button-icon' })\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_2' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/ArrowLeft'))\r\n ])\r\n ])\r\n ]),\r\n m('div', { class: 'all-or-nothing-special-button-container space-bar', onmousedown: groupSelecting, onmouseup: groupSelecting }, [\r\n m('div', { class: 'special-button-wrapper' + ((numbersLeft === 0) ? ' inactive-button' : '') }, [\r\n m('span', { class: 'button-text' }, d('AllOrNothingClassic/KeyboardNavigation/SpaceBar'))\r\n ]),\r\n m('div', { class: 'onboarding-wrapper' + (!controller.storage.get('allOrNothing-onboardingOnDesktopShowed') ? ' show-onboarding' : '') }, [\r\n m('svg', { class: 'onboarding-icon' }, [\r\n m('use', { href: '/Components/DanskeSpil/Domain/AllOrNothing/Graphics/SpriteSheets/AllOrNothingOnboarding.svg#arrow_3' })\r\n ]),\r\n m('div', { class: 'onboarding-text' }, d('AllOrNothingClassic/Onboarding/ForDesktop/SpaceBar'))\r\n ])\r\n ])\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return KeyboardNavigation;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/NumbersPicker',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Mithril',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Render',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Hammer',\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Framework/HammerTime'\r\n ],\r\n function (m, Render, Hammer, Event) {\r\n let prevShowCreate = false;\r\n\r\n // Template:\r\n var NumbersPicker = function (controller) {\r\n\r\n // Variables:\r\n var render = Render();\r\n var d = controller.d;\r\n var game = controller.game();\r\n var numbersLeft = game.numbersLeft(controller.property('currentRow'));\r\n var currentRowNumbers = game.getRow(controller.property('currentRow')).numbers;\r\n var groupedNumbers = controller.groupedNumbers();\r\n\r\n // Functions:\r\n controller.onToggleNumber = function (elem) {\r\n if (controller.property('interactionsBlocked')) {\r\n return;\r\n }\r\n var $elem = elem.$element;\r\n var number = elem.context.numberCellValue;\r\n var hasNumber = game.hasNumber(controller.property('currentRow'), number);\r\n\r\n $elem.addEventListener('animationend', function _onSelectingNumberAnimationEnd() {\r\n if (event.animationName.indexOf('fan-to-grid') !== -1) {\r\n if (controller.selectedNumbers().indexOf(number) === -1) {\r\n controller.selectedNumbers(game.getNumbersForRow(controller.property('currentRow')));\r\n\r\n if (game.isRowValid(controller.property('currentRow'))) {\r\n controller.property('lastNumberSelectedAnimationFinished', true);\r\n\r\n document.getElementsByClassName('picked-numbers-grid-wrapper')[0].addEventListener('animationend', function _completeRowGridBounceAnimationEnd(event) {\r\n if (event.animationName.indexOf('row-completed-grid-bounce-animation') !== -1) {\r\n controller.property('rowCompletedGridBounceAnimationPlayed', true);\r\n m.redraw();\r\n\r\n document.getElementsByClassName('picked-numbers-grid-wrapper')[0].removeEventListener('animationend', _completeRowGridBounceAnimationEnd, true);\r\n }\r\n }, true);\r\n\r\n controller.shouldFirstRowOverlayAppeared();\r\n }\r\n }\r\n\r\n m.redraw();\r\n\r\n $elem.removeEventListener('animationend', _onSelectingNumberAnimationEnd, true);\r\n }\r\n }, true);\r\n\r\n if (!controller.loading() && (hasNumber || numbersLeft > 0)) {\r\n game[(hasNumber ? 'remove' : 'add') + 'Number'](controller.property('currentRow'), number);\r\n\r\n if (hasNumber) {\r\n controller.numbersOrderInStack().unshift(number);\r\n controller.property('lastNumberSelectedAnimationFinished', false);\r\n controller.property('rowCompletedGridBounceAnimationPlayed', false);\r\n controller.selectedNumbers(game.getNumbersForRow(controller.property('currentRow')));\r\n } else {\r\n $elem.classList.add('deselecting-number');\r\n controller.numbersOrderInStack().splice(controller.numbersOrderInStack().indexOf(number), 1);\r\n if (controller.isClassicViewOn()) {\r\n controller.selectedNumbers(game.getNumbersForRow(controller.property('currentRow')));\r\n controller.shouldFirstRowOverlayAppeared();\r\n }\r\n }\r\n } else {\r\n if (numbersLeft === 0) {\r\n if (controller.isClassicViewOn()) {\r\n controller.property('shakeSelectedNumbersInClassicView', true);\r\n var firstSelectednumberToShake = document.getElementsByClassName('all-or-nothing-number-cell-outher-wrapper selected-number')[0];\r\n firstSelectednumberToShake.getElementsByClassName('all-or-nothing-number-cell-wrapper')[0].addEventListener('animationend', function _shakeSelectedNumbersInClassicViewAnimationEnd(event) {\r\n if (event.animationName.indexOf('all-or-nothing-selected-number-shake-in-classic-view-animation') !== -1) {\r\n controller.property('shakeSelectedNumbersInClassicView', false);\r\n m.redraw();\r\n\r\n document.getElementsByClassName('all-or-nothing-number-cell-wrapper')[0].removeEventListener('animationend', _shakeSelectedNumbersInClassicViewAnimationEnd, true);\r\n }\r\n }, true);\r\n }\r\n }\r\n }\r\n\r\n m.redraw();\r\n };\r\n\r\n controller.moveToTheEndOfTheStack = function (elem, direction) {\r\n if (controller.property('interactionsBlocked')) {\r\n return;\r\n }\r\n\r\n var $numberCell = elem.$element;\r\n var numberValue = elem.context.numberCellValue;\r\n elem.context.movingToTheEndOfTheStackDirection = direction;\r\n\r\n controller.numbersOrderInStack().push(controller.numbersOrderInStack().shift());\r\n controller.movingToTheEndOfTheStack().push(numberValue);\r\n m.redraw();\r\n\r\n $numberCell.addEventListener('animationend', function (event) {\r\n if (controller.property('eventTimestamp') !== event.timeStamp) {\r\n controller.property('eventTimestamp', event.timeStamp);\r\n if ((event.animationName.indexOf('all-or-nothing-move-to-the-back-of-the-stack-from-up-animation') !== -1)\r\n || (event.animationName.indexOf('all-or-nothing-move-to-the-back-of-the-stack-from-down-animation') !== -1)) {\r\n if (controller.movingToTheEndOfTheStack().indexOf(numberValue) === (controller.movingToTheEndOfTheStack().length - 1)) {\r\n controller.movingToTheEndOfTheStack([]);\r\n\r\n controller.numbersCellsNode.forEach(function (elem) {\r\n elem.$element.style.transform = '';\r\n });\r\n } else {\r\n controller.movingToTheEndOfTheStack().splice(controller.movingToTheEndOfTheStack().indexOf(numberValue), 1);\r\n }\r\n\r\n $numberCell.style.transform = '';\r\n // we need to wait a bit for IOS before we remove this attribute in order to not get an animation glitch\r\n setTimeout(function () {\r\n $numberCell.style.transitionDuration = '';\r\n }, 1000);\r\n m.redraw();\r\n }\r\n }\r\n });\r\n };\r\n\r\n var onSlideRowTransitionEnd = function () {\r\n document.getElementsByClassName('picked-numbers-grid-wrapper')[0].addEventListener('animationend', function _slidePickerGridEnded() {\r\n if ((event.animationName.indexOf('all-or-nothing-slide-row-to-left-grid-animation') !== -1) ||\r\n (event.animationName.indexOf('all-or-nothing-slide-row-to-right-grid-animation') !== -1)) {\r\n controller.fadeInPlaceholderGrid(false);\r\n\r\n m.redraw();\r\n document.getElementsByClassName('picked-numbers-grid-wrapper')[0].removeEventListener('animationend', _slidePickerGridEnded, true);\r\n }\r\n });\r\n\r\n document.getElementsByClassName('cell-order-in-stack-8')[0].addEventListener('transitionend', function _slideRowEnded() {\r\n if (this.parentElement.parentElement.classList.contains('slide-row')) {\r\n if (event.propertyName.indexOf('transform') !== -1) {\r\n\r\n controller.numbersCellsNode.forEach(function (elem) {\r\n elem.$element.style.transitionDuration = '0s';\r\n });\r\n // we need to wait a bit for IOS before we remove this attribute in order to not get an animation glitch\r\n setTimeout(function () {\r\n controller.numbersCellsNode.forEach(function (elem) {\r\n elem.$element.style.transitionDuration = '';\r\n });\r\n }, 1000);\r\n\r\n controller.slideRow(false);\r\n\r\n controller.property('numbersPickerStateClassName', 'loaded-numbers');\r\n controller.property('interactionsBlocked', true);\r\n\r\n if (this.parentElement.parentElement.classList.contains('adding-new-row')) {\r\n controller.addNewRow();\r\n }\r\n\r\n if (this.parentElement.parentElement.classList.contains('changing-row')) {\r\n if (this.parentElement.parentElement.classList.contains('prev')) {\r\n controller.property('currentRow', controller.property('currentRow') - 1);\r\n }\r\n if (this.parentElement.parentElement.classList.contains('next')) {\r\n controller.property('currentRow', controller.property('currentRow') + 1);\r\n }\r\n\r\n if (controller.property('changeToRow')) {\r\n controller.isRowsOverlayOn(false);\r\n controller.property('currentRow', controller.property('changeToRow'));\r\n controller.property('changeToRow', false);\r\n }\r\n\r\n controller.initNumbersStack();\r\n }\r\n\r\n document.getElementsByClassName('cell-order-in-stack-8')[0].removeEventListener('transitionend', _slideRowEnded, true);\r\n }\r\n }\r\n }, true);\r\n };\r\n\r\n controller.shakeIncompleteGridCells = function () {\r\n if (controller.property('incompleteRow')) {\r\n if (controller.property('incompleteRow') === controller.property('currentRow')) {\r\n controller.property('shakeIncompleteGridCells', true);\r\n\r\n document.getElementsByClassName('grid-cell')[11].addEventListener('animationend', function _shakeingIncompleteGridCellsEnded() {\r\n if ((event.animationName.indexOf('all-or-nothing-grid-cell-shake-animation') !== -1)) {\r\n controller.property('shakeIncompleteGridCells', false);\r\n controller.property('incompleteRow', false);\r\n\r\n m.redraw();\r\n document.getElementsByClassName('grid-cell')[11].removeEventListener('animationend', _shakeingIncompleteGridCellsEnded, true);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n var numberCellWrapperClassName = function (number, index) {\r\n var className = 'all-or-nothing-number-cell-outher-wrapper';\r\n className += ' cell-number-' + number;\r\n\r\n if (game.hasNumber(controller.property('currentRow'), number)) {\r\n currentRowNumbers.forEach(function (item, index) {\r\n if (item.number === number) {\r\n className += ' selected-order-' + (index + 1);\r\n if (controller.selectedNumbers().indexOf(number) === -1) {\r\n className += ' selecting-number-' + (index + 1);\r\n }\r\n }\r\n }.bind(this));\r\n } else {\r\n className += ' cell-order-in-stack-' + (controller.numbersOrderInStack().indexOf(number) + 1);\r\n\r\n if ((controller.numbersOrderInStack().indexOf(number) === 0) ||\r\n ((controller.movingToTheEndOfTheStack().length > 0) &&\r\n controller.movingToTheEndOfTheStack().indexOf(number) === (controller.movingToTheEndOfTheStack().length - 1))) {\r\n if (!controller.isClassicViewOn()) {\r\n className += ' first-in-stack';\r\n }\r\n if (controller.numbersOrderInStack().indexOf(number) === 0) {\r\n controller.indexOfFirstNumberInStack(index);\r\n }\r\n }\r\n\r\n if ((controller.numbersOrderInStack()[controller.numbersOrderInStack().length - 1] === number) &&\r\n (controller.movingToTheEndOfTheStack().indexOf(number) === -1)) {\r\n className += ' last-in-stack';\r\n }\r\n\r\n if (groupedNumbers.indexOf(number) !== -1) {\r\n className += ' added-to-grouping';\r\n }\r\n\r\n if (controller.movingToTheEndOfTheStack().indexOf(number) !== -1) {\r\n var movingDirection = controller.numbersCellsNode[index].context.movingToTheEndOfTheStackDirection;\r\n className += ' move-to-the-end down';\r\n if (movingDirection) {\r\n className += ' ' + movingDirection;\r\n } else {\r\n className += ' down';\r\n }\r\n }\r\n }\r\n\r\n if ((controller.selectedNumbers().indexOf(number) !== -1)) {\r\n className += ' selected-number';\r\n\r\n if (controller.property('shakeSelectedNumbersInClassicView') && controller.isClassicViewOn()) {\r\n className += ' shake';\r\n }\r\n }\r\n\r\n return className;\r\n };\r\n\r\n var numbersPickerWrapperClassName = function () {\r\n var className = 'all-or-nothing-classic-game-numbers-picker-wrapper';\r\n\r\n if (controller.slideRow()) {\r\n className += ' slide-row slide-row-' + controller.slideRow();\r\n onSlideRowTransitionEnd();\r\n }\r\n\r\n if (controller.isClassicViewOn()) {\r\n className += ' show-all-numbers-grid';\r\n if (game.isRowValid(controller.property('currentRow'))) {\r\n className += ' valid-row';\r\n }\r\n }\r\n\r\n if (controller.property('lastNumberSelectedAnimationFinished') && !controller.property('rowCompletedGridBounceAnimationPlayed')) {\r\n className += ' row-completed';\r\n }\r\n\r\n return className;\r\n };\r\n\r\n var gridCellClassName = function (index) {\r\n var className = 'grid-cell';\r\n if ((index > currentRowNumbers.length - 1) && (index < currentRowNumbers.length + groupedNumbers.length) && (groupedNumbers.length > 0)) {\r\n className += ' waiting-for-selection';\r\n }\r\n\r\n if (controller.property('shakeIncompleteGridCells') && (controller.game().numbersLeft(controller.property('currentRow')) >= (12 - index))) {\r\n className += ' shake';\r\n }\r\n\r\n return className;\r\n };\r\n\r\n // Render:\r\n render.ready.then(function (nodes) {\r\n var numbersPickerWrapper = nodes['numbers-picker-wrapper'];\r\n var pickedNumbersGridWrapper = nodes['picked-numbers-grid-wrapper'];\r\n var numbersCellsWrapper = nodes['numbers-cells-wrapper'];\r\n controller.numbersCellsNode = nodes['number-cell'];\r\n\r\n if (numbersCellsWrapper.rendered) {\r\n if (!controller.rowInit()) {\r\n controller.numbersCellsWrapper(numbersCellsWrapper);\r\n controller.numbersCellsNode.forEach(function (item, index) {\r\n item.context.numberCellIndex = index;\r\n item.context.numberCellValue = parseInt(item.$element.innerText, 10);\r\n item.context.hasHammerEvents = false;\r\n item.context.hasClickEvent = false;\r\n item.context.movingToTheEndOfTheStackDirection = null;\r\n\r\n if (!item.context.hasClickEvent) {\r\n item.context.hasClickEvent = true;\r\n\r\n item.$element.addEventListener('click', function (event) {\r\n if (controller.property('eventTimestamp') !== event.timeStamp) {\r\n controller.property('eventTimestamp', event.timeStamp);\r\n\r\n controller.onToggleNumber(item);\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (!controller.isRowsOverlayOn()) {\r\n document.getElementsByClassName('cell-order-in-stack-1')[0].addEventListener('animationstart', function _firstCardSlideInAnimationStarted() {\r\n if (event.animationName.indexOf('slide-in-numbers-to-stack') !== -1) {\r\n controller.fadeInPlaceholderGrid(true);\r\n m.redraw();\r\n }\r\n\r\n document.getElementsByClassName('cell-order-in-stack-1')[0].removeEventListener('animationstart', _firstCardSlideInAnimationStarted, true);\r\n }, true);\r\n\r\n document.getElementsByClassName('cell-order-in-stack-8')[0].addEventListener('animationend', function _slideInNumbersAnimationEnded() {\r\n if (event.animationName.indexOf('slide-in-numbers-to-stack') !== -1) {\r\n controller.property('numbersPickerStateClassName', 'fan-out-stack');\r\n controller.initNumbersStack();\r\n\r\n controller.numbersCellsNode.forEach(function (elem) {\r\n elem.$element.style.transitionDuration = '0s';\r\n });\r\n\r\n m.redraw();\r\n }\r\n\r\n document.getElementsByClassName('cell-order-in-stack-8')[0].removeEventListener('animationend', _slideInNumbersAnimationEnded, true);\r\n }, true);\r\n\r\n document.getElementsByClassName('cell-order-in-stack-4')[0].addEventListener('animationstart', function _fanOutAnimationStarted() {\r\n\r\n if (event.animationName.indexOf('fan-out-stack') !== -1) {\r\n if (controller.property('numbersPickerStateClassName') === 'fan-out-stack') {\r\n if (controller.property('incompleteRow')) {\r\n if (controller.property('incompleteRow') === controller.property('currentRow')) {\r\n controller.shakeIncompleteGridCells();\r\n }\r\n }\r\n }\r\n m.redraw();\r\n }\r\n\r\n document.getElementsByClassName('cell-order-in-stack-4')[0].removeEventListener('animationstart', _fanOutAnimationStarted, true);\r\n }, true);\r\n\r\n document.getElementsByClassName('cell-order-in-stack-4')[0].addEventListener('animationend', function _fanOutAnimationEnded() {\r\n\r\n if (event.animationName.indexOf('fan-out-stack') !== -1) {\r\n // we need to wait a bit for IOS before we remove this attribute in order to not get an animation glitch\r\n setTimeout(function () {\r\n controller.numbersCellsNode.forEach(function (elem) {\r\n elem.$element.style.transitionDuration = '';\r\n });\r\n }, 1000);\r\n\r\n controller.property('numbersPickerStateClassName', 'numbers-stacked');\r\n controller.property('interactionsBlocked', false);\r\n m.redraw();\r\n }\r\n\r\n document.getElementsByClassName('cell-order-in-stack-4')[0].removeEventListener('animationend', _fanOutAnimationEnded, true);\r\n }, true);\r\n }\r\n\r\n controller.rowInit(true);\r\n m.redraw();\r\n\r\n // sometimes when the game loades for the first and the user is not focused on the tab the animationEnd event doesn't get triggered\r\n // layoutHardReset() looks if the layout is how it should be when all initialization animations are done\r\n setTimeout(function () {\r\n controller.layoutHardReset();\r\n }, 2000);\r\n controller.resize(function () {\r\n controller.layoutHardReset();\r\n });\r\n }\r\n\r\n if ((controller.property('firstInStack') !== controller.indexOfFirstNumberInStack()) && !controller.isIE()) {\r\n controller.property('firstInStack', controller.indexOfFirstNumberInStack());\r\n\r\n var cardNode = controller.numbersCellsNode[controller.property('firstInStack')];\r\n var $cardNode = cardNode.$element;\r\n\r\n if (!cardNode.context.hasHammerEvents) {\r\n var hammer = new Hammer($cardNode, {\r\n touchAction: 'none',\r\n threshold: 0,\r\n pointers: 0\r\n });\r\n\r\n hammer.on('panstart', function (event) {\r\n if (controller.property('eventTimestamp') !== event.srcEvent.timeStamp) {\r\n controller.property('eventTimestamp', event.srcEvent.timeStamp);\r\n\r\n controller.property('numberPanning', true);\r\n\r\n if (!game.hasNumber(controller.property('currentRow'), cardNode.context.numberCellValue) && !controller.isClassicViewOn()) {\r\n if (controller.groupingNumbers()) {\r\n controller.groupNumbers(event);\r\n controller.property('panningGroupedNumbers', true);\r\n }\r\n\r\n // getComputedStyle($cardNode).transform returns the transform property of and element in a string like: 'matrix(1, 0, 0, 1, -102, -637)'\r\n // the regExp '/[+-]?\\d+(?:\\.\\d+)?/g' converts that to '['1', '0', '0', '1', '-102', '-637']' so we can get the individual coordinate\r\n var cssTransformMatrix = getComputedStyle($cardNode).transform.match(/[+-]?\\d+(?:\\.\\d+)?/g);\r\n\r\n controller.numberCellStartXYSonPan().x = parseInt(cssTransformMatrix[4], 10);\r\n controller.numberCellStartXYSonPan().y = parseInt(cssTransformMatrix[5], 10);\r\n controller.numberCellStartXYSonPan().scale = parseInt(cssTransformMatrix[3], 10);\r\n\r\n $cardNode.classList.add('panning-on');\r\n }\r\n }\r\n });\r\n\r\n hammer.on('panmove', function (event) {\r\n if (controller.property('eventTimestamp') !== event.srcEvent.timeStamp) {\r\n controller.property('eventTimestamp', event.srcEvent.timeStamp);\r\n\r\n var x = (controller.numberCellStartXYSonPan().x + event.deltaX);\r\n var y = (controller.numberCellStartXYSonPan().y + event.deltaY);\r\n var s = (controller.numberCellStartXYSonPan().scale + (0.45 - (Math.abs(event.deltaY) / 1000)));\r\n\r\n if (!game.hasNumber(controller.property('currentRow'), cardNode.context.numberCellValue) && !controller.isClassicViewOn()) {\r\n if (!controller.property('panningGroupedNumbers')) {\r\n $cardNode.style.transform = 'translate(' + x + 'px, ' + y + 'px) scale(' + s + ')';\r\n }\r\n }\r\n }\r\n });\r\n\r\n hammer.on('panend panup pancancel', function (event) {\r\n if (controller.property('eventTimestamp') !== event.srcEvent.timeStamp) {\r\n controller.property('eventTimestamp', event.srcEvent.timeStamp);\r\n\r\n controller.property('numberPanning', true);\r\n\r\n if (!game.hasNumber(controller.property('currentRow'), cardNode.context.numberCellValue) && !controller.isClassicViewOn()) {\r\n $cardNode.classList.remove('panning-on');\r\n\r\n if (event.deltaY < -100) {\r\n if (!controller.property('panningGroupedNumbers')) {\r\n controller.onToggleNumber(cardNode);\r\n }\r\n }\r\n\r\n if (event.deltaY > 100) {\r\n controller.moveToTheEndOfTheStack(cardNode, 'down');\r\n $cardNode.style.transitionDuration = '0s';\r\n } else if ((Math.abs(event.deltaX) > 100) && (event.deltaY > -100) && (event.deltaTime < 300)) {\r\n if (event.deltaY < 0) {\r\n controller.moveToTheEndOfTheStack(cardNode, 'up');\r\n } else {\r\n controller.moveToTheEndOfTheStack(cardNode, 'down');\r\n }\r\n $cardNode.style.transitionDuration = '0s';\r\n if (controller.groupingNumbers()) {\r\n controller.groupNumbers(event);\r\n }\r\n } else {\r\n $cardNode.style.transform = '';\r\n }\r\n\r\n controller.property('panningGroupedNumbers', false);\r\n }\r\n }\r\n });\r\n\r\n hammer.on('press', function (event) {\r\n if (controller.property('eventTimestamp') !== event.srcEvent.timeStamp) {\r\n controller.property('eventTimestamp', event.srcEvent.timeStamp);\r\n\r\n if (!game.hasNumber(controller.property('currentRow'), cardNode.context.numberCellValue) && !controller.isClassicViewOn()) {\r\n controller.groupNumbers(event);\r\n }\r\n }\r\n });\r\n\r\n hammer.on('pressup', function (event) {\r\n if (controller.property('eventTimestamp') !== event.srcEvent.timeStamp) {\r\n controller.property('eventTimestamp', event.srcEvent.timeStamp);\r\n\r\n if (!game.hasNumber(controller.property('currentRow'), cardNode.context.numberCellValue) && !controller.isClassicViewOn()) {\r\n controller.groupNumbers(event);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (!controller.property('numberPickerWrapperInit') && !controller.isIE()) {\r\n controller.property('numberPickerWrapperInit', true);\r\n var $numbersPickerWrapper = numbersPickerWrapper.$element;\r\n var $pickedNumbersGridWrapper = pickedNumbersGridWrapper.$element;\r\n\r\n var swipeOnNumberPickerGrid = function (pointerX, pointerY, direction) {\r\n var clientRect = $pickedNumbersGridWrapper.getBoundingClientRect();\r\n\r\n if (!controller.isClassicViewOn()) {\r\n if ((pointerX > clientRect.left) && (pointerX < clientRect.right) &&\r\n (pointerY > clientRect.top) && (pointerY < clientRect.bottom)) {\r\n\r\n if (direction === 'swipeleft') {\r\n controller.changeCurrentRow('next')();\r\n\r\n m.redraw();\r\n }\r\n\r\n if (direction === 'swiperight') {\r\n controller.changeCurrentRow('prev')();\r\n\r\n m.redraw();\r\n }\r\n }\r\n }\r\n };\r\n\r\n var hammerPickerWrapper = new Hammer($numbersPickerWrapper);\r\n\r\n hammerPickerWrapper.on('swipeleft', function (event) {\r\n swipeOnNumberPickerGrid((event.center.x - event.deltaX), (event.center.y - event.deltaY), event.type);\r\n });\r\n\r\n hammerPickerWrapper.on('swiperight', function (event) {\r\n swipeOnNumberPickerGrid((event.center.x - event.deltaX), (event.center.y - event.deltaY), event.type);\r\n });\r\n }\r\n }\r\n });\r\n\r\n const showCreate = numbersLeft === 0 && !controller.isClassicViewOn() && !controller.slideRow();\r\n\r\n // If showCreate changes, send an event to the PlusWizard to update the ProceedBar.\r\n if ((prevShowCreate && !showCreate) || (!prevShowCreate && showCreate)) {\r\n prevShowCreate = showCreate;\r\n Event.fire('allornothing:classic:canCreateNewRow', showCreate);\r\n }\r\n\r\n // View:\r\n return m('div', { class: numbersPickerWrapperClassName(), config: render.depend('numbers-picker-wrapper') }, [\r\n m('div', { class: 'picked-numbers-grid-wrapper' + (controller.fadeInPlaceholderGrid() ? ' loaded-numbers' : ''), config: render.depend('picked-numbers-grid-wrapper') },\r\n function () {\r\n var DOM = [];\r\n for (var i = 0; i < 12; i++) {\r\n DOM.push(m('div', { class: gridCellClassName(i) }));\r\n }\r\n return DOM;\r\n }()\r\n ),\r\n m('div', { class: 'all-or-nothing-special-button-container create-new-row-wrapper' + (showCreate ? ' show-button' : '') }, [\r\n m('div', { class: 'special-button-wrapper', onclick: controller.addingNewRow }, [\r\n m('div', { class: 'button-text' }, d('AllOrNothingClassic/NumbersPicker/NewRowButtonText'))\r\n ])\r\n ]),\r\n m('div', { class: 'numbers-picker-full-list-wrapper ' + controller.property('numbersPickerStateClassName'), config: render.depend('numbers-cells-wrapper') }, [\r\n controller.numbers().map(function (number, index) {\r\n return m('div', { class: numberCellWrapperClassName(number, index), key: index, config: render.depend('number-cell') }, [\r\n m('div', { class: 'all-or-nothing-number-cell-wrapper' }, [\r\n m('div', { class: 'number-wrapper' }, number)\r\n ])\r\n ]);\r\n })\r\n ])\r\n ]);\r\n\r\n };\r\n\r\n // Public functions:\r\n return NumbersPicker;\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/CardStacksOverlay',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils'\r\n ],\r\n function (Component, AllOrNothingUtils) {\r\n\r\n // Component:\r\n Component('all-or-nothing-card-stacks-overlay', function (m, route, settings) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.numberOfCardStacks = settings.numberOfCardStacks;\r\n this.cardStacksArray = m.prop([]);\r\n\r\n // Functions:\r\n for (var i = 0; i < this.numberOfCardStacks; i++) {\r\n var cardsStack = [];\r\n var numberOfCardsInStack = Math.floor((Math.random() * 3) + 1);\r\n for (var j = 0; j < numberOfCardsInStack; j++) {\r\n var cardNumber = Math.floor((Math.random() * 24) + 1);\r\n cardsStack.push(cardNumber);\r\n }\r\n this.cardStacksArray().push(cardsStack);\r\n }\r\n },\r\n\r\n view: function (controller) {\r\n if (!(AllOrNothingUtils.isMobile() || AllOrNothingUtils.isTablet())) {\r\n return controller.cardStacksArray().map(function (cardsStack, index) {\r\n return m('div', { class: 'overlay-cards-stack-wrapper' + (' cards-stack-' + (index + 1)) },\r\n cardsStack.map(function (card, cardIndex) {\r\n return m('div', { class: 'all-or-nothing-number-cell-wrapper' + (' card-nuber-in-stack-' + (cardIndex + 1)) }, [\r\n m('div', { class: 'number-wrapper' }, card)\r\n ]);\r\n })\r\n );\r\n });\r\n }\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/AllOrNothingConfirm',\r\n [\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Confirm',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/DataLayer',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Models/AllOrNothingGame',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/DeleteOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Resize',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/ConfirmBar'\r\n ],\r\n function (Ensighten, Component, AccountIntegration, Confirm, DataLayer, AllOrNothingUtils, AllOrNothingDictionary, AllOrNothingInfo, AllOrNothingGame, DeleteOverlay, ErrorOverlay, Overlay, Resize, ConfirmBar) {\r\n\r\n // Component:\r\n Component('all-or-nothing-confirm', [AllOrNothingDictionary, AllOrNothingInfo], function (m, route, settings, property) {\r\n\r\n // Variables:\r\n var id = AllOrNothingUtils.getQueryParam('gameInstanceId');\r\n var rebuyCouponId = AllOrNothingUtils.getQueryParam('rebuyCouponId');\r\n var game;\r\n\r\n // Missing id:\r\n if (!id && !rebuyCouponId) {\r\n return;\r\n }\r\n\r\n if (rebuyCouponId && settings.returnToCompletedGamesOverviewLink) {\r\n var page = AllOrNothingUtils.getQueryParam('page') || 1;\r\n var period = AllOrNothingUtils.getQueryParam('period') || 365;\r\n var offset = AllOrNothingUtils.getQueryParam('offset') || 1;\r\n var type = AllOrNothingUtils.getQueryParam('type') || 'afsluttede';\r\n var channel = AllOrNothingUtils.getQueryParam('channel') || 'alle-kanaler';\r\n game = AllOrNothingGame.new({\r\n rebuyCouponId: rebuyCouponId,\r\n startUrl: settings.returnToCompletedGamesOverviewLink + '#/' + page + '/' + period + '/' + offset + '/' + type + '/' + channel\r\n });\r\n } else {\r\n game = AllOrNothingGame.get(id);\r\n }\r\n\r\n // Missing game:\r\n if (!game) {\r\n console.error('AllOrNothingConfirm: Game not found, id: ' + id);\r\n\r\n return;\r\n }\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.askForDeposit = m.prop(false);\r\n this.d = AllOrNothingDictionary.get;\r\n this.ctaFlowBarTexts = m.prop({\r\n backButtonText: this.d('ConfirmStep/CTAFlowBar/BackToNumberOfDays'),\r\n nextButtonText: function () {\r\n return this.game().numberOfDraws() > 0 ? this.d('ConfirmStep/CTAFlowBar/ConfirmGame', {\r\n totalPrice: AllOrNothingUtils.formatNumber(this.game().totalPrice())\r\n }) : this.d('ConfirmStep/CTAFlowBar/GoToSubscription');\r\n }.bind(this),\r\n processingText: this.d('ConfirmStep/CTAFlowBar/Processing')\r\n });\r\n this.gameInstanceId = m.prop(id);\r\n this.game = m.prop(game);\r\n this.errorOverlay = m.prop(new Overlay(ErrorOverlay('all-or-nothing-generic-error-overlay', {\r\n header: this.d('GenerateRowsErrorOverlay/Header'),\r\n body: this.d('GenerateRowsErrorOverlay/Body'),\r\n dismiss: this.d('GenerateRowsErrorOverlay/Dismiss')\r\n })));\r\n this.loading = m.prop(false);\r\n this.openDraw = m.prop(AllOrNothingInfo.data().openDraw);\r\n this.property = property;\r\n this.ready = m.prop(false);\r\n this.rebuyCouponNotFound = m.prop(false);\r\n this.receiptLink = m.prop(settings.receiptLink);\r\n this.settings = m.prop(settings);\r\n this.gradientHeight = m.prop();\r\n this.rows = m.prop();\r\n this.rowLimit = m.prop(2);\r\n this.rowHeight = m.prop();\r\n\r\n // Functions:\r\n this.back = function () {\r\n if (AllOrNothingUtils.getQueryParam('rebuyCouponId')) {\r\n location.href = this.game().cancelUrl();\r\n }\r\n location.href = AllOrNothingInfo.data().numberOfDaysUrl + '?gameInstanceId=' + this.game().id();\r\n }.bind(this);\r\n\r\n this.confirm = function () {\r\n var self = this;\r\n\r\n if (!this.loading()) {\r\n this.loading(true);\r\n\r\n m.redraw();\r\n\r\n var game = this.game();\r\n\r\n if (game.getRowsSummary().length > 0) {\r\n if (game.numberOfDraws() === 0) {\r\n game.sendToSubscription();\r\n } else {\r\n var openDraw = this.openDraw();\r\n\r\n game.purchase({ drawId: (openDraw && openDraw.id) || null }).then(function () {\r\n self.loading(false);\r\n\r\n m.redraw();\r\n\r\n var receiptUrl = self.receiptLink() + '?gameInstanceId=' + game.id();\r\n\r\n try {\r\n window.history.replaceState({}, self.d('ConfirmStep/ReceiptTitle'), receiptUrl);\r\n } catch (error) {\r\n // Nothing to handle here, just proceed to location.href.\r\n }\r\n\r\n window.location.href = receiptUrl;\r\n }, function () {\r\n self.errorOverlay().show();\r\n\r\n self.loading(false);\r\n });\r\n }\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.deleteOverlay = function () {\r\n return new Overlay(DeleteOverlay(this.d));\r\n }.bind(this);\r\n\r\n this.openDeposit = function () {\r\n AccountIntegration.openDeposit(this.game().totalPrice(), function () {\r\n location.href = this.game().cancelUrl();\r\n });\r\n }.bind(this);\r\n\r\n this.drawDateInterval = function () {\r\n var openDraw = new Date(this.openDraw().drawingTime);\r\n var numberOfDraws = this.game().numberOfDraws();\r\n var dateInterval = AllOrNothingUtils.formatISO8601(openDraw.toISOString(), { includeTime: false });\r\n\r\n if (numberOfDraws > 1) {\r\n dateInterval = dateInterval.split(' ')[0] + ' ' + dateInterval.split(' ')[1].substring(0, 3) + '. ' + dateInterval.split(' ')[2].slice(-2);\r\n\r\n openDraw.setDate(openDraw.getDate() + (numberOfDraws - 1));\r\n\r\n var endIntervalDate = AllOrNothingUtils.formatISO8601(openDraw.toISOString(), { includeTime: false });\r\n\r\n endIntervalDate = endIntervalDate.split(' ')[0] + ' ' + endIntervalDate.split(' ')[1].substring(0, 3) + '. ' + endIntervalDate.split(' ')[2].slice(-2);\r\n dateInterval = dateInterval + ' - ' + endIntervalDate;\r\n }\r\n\r\n return dateInterval;\r\n }.bind(this);\r\n\r\n // Delete row from game, and in view\r\n this.deleteRow = function (rowNumber) {\r\n var allRows = this.game().getRows(false);\r\n var index = 0;\r\n var rows = this.game().getRowsSummary();\r\n var selectedNumbers = rows[rowNumber - 1];\r\n\r\n for (var i = 0; i < allRows.length; i++) {\r\n var row = allRows[i];\r\n var numbers = row.numbers.map(function (numbers) {\r\n return numbers.number;\r\n });\r\n\r\n var match = numbers.length !== 0;\r\n\r\n for (var j = 0; j < numbers.length; j++) {\r\n if (numbers[j] !== selectedNumbers[j]) {\r\n match = false;\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (match) {\r\n index = i;\r\n\r\n break;\r\n }\r\n }\r\n\r\n rowNumber = index + 1;\r\n\r\n this.property('animate', 'remove');\r\n\r\n if (typeof this.deleteOverlay !== 'undefined') {\r\n this.property('deleteRow', rowNumber);\r\n\r\n var self = this;\r\n\r\n this.deleteOverlay().show(function () {\r\n game.removeRow(rowNumber);\r\n\r\n if (!game.isGameValid() && self.back) {\r\n game.addRow();\r\n\r\n game.save();\r\n\r\n window.location.href = game.startUrl();\r\n }\r\n });\r\n }\r\n }.bind(this);\r\n\r\n // Auth check\r\n this.game().ready().promise.then(function () {\r\n var self = this;\r\n\r\n this.rows(this.game().getRowsSummary());\r\n\r\n Confirm.checkAuthAndBalance(this.game).then(function () {\r\n AccountIntegration.getUserData().then(function () {\r\n self.ready(true);\r\n\r\n m.redraw();\r\n }, function () {\r\n self.ready(true);\r\n\r\n m.redraw();\r\n });\r\n }, function (error) {\r\n if (error === 'ASK_FOR_DEPOSIT') {\r\n self.askForDeposit(true);\r\n\r\n // Add Ensighten virtualPage event:\r\n if (self.game) {\r\n Ensighten.pushVirtualPage('tank_op', DataLayer.categoryName(self.game().playType()) + '/tank_op', 'notEnoughCreditPage');\r\n }\r\n }\r\n\r\n self.ready(true);\r\n\r\n m.redraw();\r\n });\r\n }.bind(this), function () {\r\n this.rebuyCouponNotFound(true);\r\n\r\n this.ready(true);\r\n\r\n m.redraw();\r\n }.bind(this));\r\n\r\n\r\n // Show all rows:\r\n this.showAllRows = function () {\r\n this.rowLimit(this.rows().length + 1);\r\n }.bind(this);\r\n\r\n // Config to measure height of rows and gradient, after render, and set the heights on first load:\r\n this.rowsContainerConfig = function ($element, rendered, context) {\r\n if (!rendered || context.windowWith != window.innerWidth) {\r\n context.windowWith = document.body.clientWidth;\r\n\r\n var $rowWrapper = $element.getElementsByClassName('row-wrapper')[0];\r\n\r\n var rowMarginBottom = parseFloat(window.getComputedStyle($rowWrapper).marginBottom.replace(/[^0-9.]+/g, ''));\r\n var height = $rowWrapper.getBoundingClientRect().height + rowMarginBottom;\r\n\r\n this.gradientHeight(height);\r\n this.rowHeight(height);\r\n\r\n $element.style = this.getContainerStyle();\r\n\r\n Resize(function () {\r\n m.redraw();\r\n });\r\n\r\n // IE requires another redraw just after all elements are rendered\r\n setTimeout(function () {\r\n m.redraw();\r\n }, 100);\r\n }\r\n }.bind(this);\r\n\r\n // Is there any more rows in the current game:\r\n this.maxRowsReached = function () {\r\n if (this.rowLimit() > 2 || this.rows().length <= 2) {\r\n return true;\r\n }\r\n }.bind(this);\r\n\r\n this.getContainerStyle = function () {\r\n if (!this.rowHeight()) {\r\n return 'max-height: auto';\r\n }\r\n\r\n if (this.rows().length > 2) {\r\n var height = this.rowHeight() * Math.min(this.rowLimit() - 1, this.rows().length);\r\n\r\n if (!this.maxRowsReached()) {\r\n height += this.gradientHeight();\r\n }\r\n\r\n return 'max-height: ' + height + 'px';\r\n } else {\r\n return 'max-height: auto';\r\n }\r\n }.bind(this);\r\n\r\n // Push addToCart event to dataLayer:\r\n this.game().ready().promise.then(function () {\r\n game.trackingAddToCart();\r\n });\r\n\r\n this.toggleCollapsible = function (ev) {\r\n ev.currentTarget.parentElement.classList.toggle('confirm-page__collapsible--show');\r\n };\r\n },\r\n\r\n view: function (controller) {\r\n\r\n // Ready:\r\n if (!controller.ready()) {\r\n return;\r\n }\r\n\r\n var d = controller.d;\r\n var game = controller.game();\r\n\r\n // Rebuy coupon not found:\r\n if (controller.rebuyCouponNotFound()) {\r\n controller.confirm = null;\r\n return m('div', { class: 'all-or-nothing-prototype all-or-nothing-confirm confirm-bar-container' }, [\r\n m('div', { class: 'all-or-nothing-content-wrapper all-or-nothing-row-display' }, [\r\n m('div', { class: 'all-or-nothing-confirm-page-header' }, [\r\n m('h3', { class: 'confirm-headline' }, d('ConfirmStep/RebuyFromCoupon/RebuyCouponNotFoundTitle')),\r\n m('p', { class: 'alt-text' }, d('ConfirmStep/RebuyFromCoupon/RebuyCouponNotFoundDescription'))\r\n ]),\r\n ConfirmBar(controller)\r\n ])\r\n ]);\r\n }\r\n\r\n // Deposit flow:\r\n if (controller.askForDeposit()) {\r\n return m('div', { class: 'all-or-nothing-section-inner-wrapper' }, [\r\n m('h3', { class: 'headline' }, d('ConfirmStep/Deposit/DepositHeader')),\r\n m('p', { class: 'subheadline' }, d('ConfirmStep/Deposit/DepositText')),\r\n m('a', { class: 'all-or-nothing-button', onclick: controller.openDeposit }, d('ConfirmStep/Deposit/DepositButton'))\r\n ]);\r\n }\r\n\r\n var rows = game.getRowsSummary();\r\n var gameDrawDates = game.drawDates();\r\n\r\n // Confirm:\r\n return m('.confirm-page__content', {\r\n 'data-uitest-id': 'Confirm__content'\r\n }, [\r\n // title.\r\n m('.confirm-page__title', m.trust(controller.d('ConfirmPage/Title', {\r\n playType: controller.d('PlayTypes/' + game.playType())\r\n }))),\r\n\r\n // draw dates.\r\n gameDrawDates.length > 0 ? m('.confirm-page__collapsible.confirm-page__collapsible--can-open', {\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates'\r\n }, [\r\n m('.confirm-page__collapsible-top', {\r\n onclick: controller.toggleCollapsible,\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates-toggle'\r\n }, [\r\n m('.confirm-page__collapsible-top-row', [\r\n m('.confirm-page__collapsible-top-row-icon',\r\n m('svg.confirm-page__collapsible-icon-draw', m('use', {\r\n href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#all-or-nothing-draw'\r\n }))\r\n ),\r\n m('.confirm-page__collapsible-top-row-highlight-text', controller.d('ConfirmPage/TableDraw')),\r\n m('.confirm-page__collapsible-top-row-text', {\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates-date'\r\n }, game.drawDateHtmlShort()),\r\n ])\r\n ]),\r\n m('.confirm-page__collapsible-bottom', [\r\n m('.confirm-page__table', [\r\n gameDrawDates.map(function (date, i) {\r\n return m('.confirm-page__table-row', [\r\n m('.confirm-page__table-cell.confirm-page__table-cell--index', (i + 1) + '.'),\r\n m('.confirm-page__table-cell', {\r\n 'data-uitest-id': 'Confirm__collapsible--draw-dates-date'\r\n }, AllOrNothingUtils.getLongDate(date.draw))\r\n ]);\r\n })\r\n ])\r\n ])\r\n ]) : null,\r\n\r\n // rows.\r\n rows.length > 0 ? m('.confirm-page__collapsible.confirm-page__collapsible--can-open', {\r\n 'data-uitest-id': 'Confirm__collapsible--rows'\r\n }, [\r\n m('.confirm-page__collapsible-top', {\r\n onclick: controller.toggleCollapsible,\r\n 'data-uitest-id': 'Confirm__collapsible--rows-toggle'\r\n }, [\r\n m('.confirm-page__collapsible-top-row', [\r\n m('.confirm-page__collapsible-top-row-icon',\r\n m('svg.confirm-page__collapsible-icon-rows', m('use', {\r\n href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#all-or-nothing-rows'\r\n }))\r\n ),\r\n m('.confirm-page__collapsible-top-row-highlight-text', controller.d('ConfirmPage/TableRows')),\r\n m('.confirm-page__collapsible-top-row-text', {\r\n 'data-uitest-id': 'Confirm__collapsible--rows-rows'\r\n }, rows.length),\r\n ])\r\n ]),\r\n m('.confirm-page__collapsible-bottom', [\r\n game.playType() === 'System'\r\n ? [\r\n m('.confirm-page__table-header', m.trust(controller.d('ConfirmPage/TableChosenSystemNumbers')) + ':'),\r\n m('.confirm-page__table', [\r\n m('.confirm-page__table-row',\r\n m('.confirm-page__table-cell.confirm-page__table-cell--center', { 'data-uitest-id': 'Confirm__collapsible--rows-row' },\r\n game.rows()[0].numbers.map(function (val) {\r\n return val.number;\r\n }).join(', ')\r\n )\r\n )\r\n ])\r\n ]\r\n : m('.confirm-page__table', [\r\n rows.map(function (val, i) {\r\n return m('.confirm-page__table-row', [\r\n m('.confirm-page__table-cell.confirm-page__table-cell--index', (i + 1) + '.'),\r\n m('.confirm-page__table-cell', {\r\n 'data-uitest-id': 'Confirm__collapsible--rows-row'\r\n }, val.join(', ')),\r\n game.playType() === 'Classic' ?\r\n m('.confirm-page__table-cell-icon-delete',\r\n {\r\n onclick: controller.deleteRow.bind(controller, i + 1),\r\n 'data-uitest-id': 'Confirm__collapsible--rows-classic-row-delete'\r\n }, m('svg', m('use', { href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesGenericCommonIcons.svg#icon-x' }))\r\n ) : null,\r\n ]);\r\n })\r\n ]),\r\n ])\r\n ]) : null,\r\n\r\n // days.\r\n game.numberOfDraws()\r\n ? m('.confirm-page__collapsible', {\r\n 'data-uitest-id': 'Confirm__collapsible--days'\r\n }, m('.confirm-page__collapsible-top', m('.confirm-page__collapsible-top-row', [\r\n m('.confirm-page__collapsible-top-row-icon', m('svg.confirm-page__collapsible-icon-calendar', m('use', {\r\n href: '/Components/DanskeSpil/Domain/NumberGames/Graphics/SpriteSheets/NumberGamesCommonIcons.svg#all-or-nothing-calendar'\r\n }))),\r\n m('.confirm-page__collapsible-top-row-highlight-text', controller.d('ConfirmPage/TableDays')),\r\n m('.confirm-page__collapsible-top-row-text', {\r\n 'data-uitest-id': 'Confirm__collapsible--days-days'\r\n }, game.numberOfDraws()),\r\n ])\r\n )\r\n ) : null,\r\n\r\n // total.\r\n game.totalPrice() ? m('.confirm-page__total', {\r\n 'data-uitest-id': 'Confirm__collapsible--total'\r\n }, [\r\n m('.confirm-page__total-label', controller.d('ConfirmPage/TableTotal')),\r\n m('.confirm-page__total-amount', {\r\n 'data-uitest-id': 'Confirm__collapsible--total-amount'\r\n }, AllOrNothingUtils.formatCurrency(game.totalPrice())),\r\n ]) : null,\r\n\r\n // terms and conditions.\r\n m('.confirm-page__terms', {\r\n 'data-uitest-id': 'Confirm__terms'\r\n }, [\r\n controller.d('ConfirmPage/GameVendor')\r\n ? controller.d('ConfirmPage/GameVendor')\r\n : null,\r\n\r\n controller.d('ConfirmPage/GameVendor') && controller.d('ConfirmPage/TermsLink') && controller.d('ConfirmPage/ViewTerms')\r\n ? m('span', ' - ') : '',\r\n\r\n controller.d('ConfirmPage/TermsLink') && controller.d('ConfirmPage/ViewTerms')\r\n ? m('a', {\r\n href: controller.d('ConfirmPage/TermsLink')\r\n }, controller.d('ConfirmPage/ViewTerms'))\r\n : null\r\n ]),\r\n\r\n // confirm bar.\r\n ConfirmBar(controller),\r\n ]);\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/AllOrNothingLightning',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Models/AllOrNothingGame',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/ConfirmBar',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/CardsCountdown',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingLightning/RotarySelector',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay'\r\n ],\r\n function (Component, Params, AllOrNothingDictionary, AllOrNothingInfo, AllOrNothingUtils, AllOrNothingGame, ConfirmBar, CardsCountdown, RotarySelector, ErrorOverlay, Overlay) {\r\n\r\n // Component:\r\n Component('all-or-nothing-lightning', [AllOrNothingDictionary, AllOrNothingInfo], function (m, route, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.d = AllOrNothingDictionary.get;\r\n this.isFeedDown = m.prop(AllOrNothingInfo.isFeedDown());\r\n this.loading = m.prop(false);\r\n this.property = property;\r\n this.ctaFlowBarTexts = m.prop({\r\n nextButtonText: function () {\r\n return this.d('AllOrNothingLightning/CTAFlowBar/ConfirmNumberOfRows', {\r\n totalPrice: AllOrNothingUtils.formatNumber(this.game().totalPrice())\r\n });\r\n }.bind(this),\r\n processingText: this.d('AllOrNothingLightning/CTAFlowBar/Processing')\r\n });\r\n\r\n this.feedData = AllOrNothingInfo.data();\r\n var draw = this.feedData.openDraw;\r\n this.drawDate = draw ? AllOrNothingUtils.parseISO8601(draw.drawingTime).dateObject : 0;\r\n this.property('endCountdownDate', Date.parse(this.drawDate));\r\n\r\n if (!this.isFeedDown()) {\r\n this.gameInstanceId = m.prop(Params.extract('gameInstanceId'));\r\n this.game = m.prop(AllOrNothingGame.setupGame({ gameInstanceId: this.gameInstanceId(), playType: 'Lightning', rowsToGenerate: AllOrNothingInfo.getLightningDefaultRowCount() }));\r\n this.errorOverlay = m.prop(new Overlay(ErrorOverlay('all-or-nothing-generic-error-overlay', { header: this.d('GenerateRowsErrorOverlay/Header'), body: this.d('GenerateRowsErrorOverlay/Body'), dismiss: this.d('GenerateRowsErrorOverlay/Dismiss') })));\r\n this.rows = this.game().rowsToGenerate;\r\n this.rowsOptions = m.prop(AllOrNothingInfo.getLightningOptions());\r\n\r\n // Functions:\r\n this.confirm = function () {\r\n this.loading(true);\r\n\r\n m.redraw();\r\n\r\n this.game().prepareNextStep('numberOfDaysUrl').then(function (nextStepUrl) {\r\n location.href = nextStepUrl;\r\n }, function () {\r\n this.errorOverlay().show();\r\n\r\n this.loading(false);\r\n\r\n m.redraw();\r\n }.bind(this));\r\n }.bind(this);\r\n\r\n }\r\n },\r\n\r\n view: function (controller) {\r\n var d = controller.d;\r\n var isFeedDown = controller.isFeedDown();\r\n\r\n return [\r\n m('div', { class: 'all-or-nothing-game-section' + (settings.topManchete || settings.bottomManchete ? ' manchete' : '') + (settings.topManchete ? ' top' : '') + (settings.bottomManchete ? ' bot' : '') }, [\r\n m('div', { class: 'all-or-nothing-content-wrapper' }, [\r\n function () {\r\n if (isFeedDown || AllOrNothingInfo.noOpenDraw()) {\r\n // Feed down or no open draw, content\r\n return m('div', { class: 'game-not-available-wrapper' }, [\r\n // ICON\r\n settings.iconUrl.length > 0 ? m('img', { class: 'not-available-icon', src: settings.iconUrl }) : '',\r\n isFeedDown ? [\r\n m('h2', { class: 'headline' }, d('AllOrNothingClosed/FrontpageLightning/GameNotAvailableHeader')),\r\n m('h3', { class: 'subheadline' }, d('AllOrNothingClosed/FrontpageLightning/GameNotAvailableText_1')),\r\n m('h3', { class: 'subheadline' }, d('AllOrNothingClosed/FrontpageLightning/GameNotAvailableText_2'))\r\n ] : [\r\n m('h2', { class: 'headline' }, d('AllOrNothingClosed/FrontpageLightning/NoOpenDrawHeader')),\r\n m('h3', { class: 'subheadline' }, d('AllOrNothingClosed/FrontpageLightning/NoOpenDrawText_1')),\r\n m('h3', { class: 'subheadline' }, d('AllOrNothingClosed/FrontpageLightning/NoOpenDrawText_2')),\r\n CardsCountdown(controller)\r\n ]\r\n ]);\r\n } else {\r\n // Regular lightning content\r\n return m('div', [\r\n m('h2', { class: 'headline' }, d('AllOrNothingLightning/Headline')),\r\n m('h3', { class: 'subheadline' }, d('AllOrNothingLightning/ChooseRows')),\r\n RotarySelector(controller.rowsOptions, controller.rows, d('AllOrNothingLightning/Row' + (controller.rows() !== 1 ? 's' : ''))),\r\n ConfirmBar(controller)\r\n ]);\r\n }\r\n }()\r\n ])\r\n ])\r\n ];\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/AllOrNothingPrototype',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Models/AllOrNothingGame',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/PurchaseBar'\r\n ],\r\n function (Component, Params, AllOrNothingDictionary, AllOrNothingInfo, AllOrNothingGame, PurchaseBar) {\r\n\r\n // Component:\r\n Component('all-or-nothing-prototype', [AllOrNothingDictionary, AllOrNothingInfo], function (m, route, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.confirmLink = m.prop(settings.confirmLink);\r\n this.currentRow = m.prop(1);\r\n this.d = AllOrNothingDictionary.get;\r\n this.gameInstanceId = m.prop(Params.extract('gameInstanceId'));\r\n this.game = m.prop(AllOrNothingGame.setupGame({\r\n gameInstanceId: this.gameInstanceId(),\r\n playType: 'Classic'\r\n }));\r\n this.loading = m.prop(false);\r\n this.numbers = m.prop([]);\r\n this.openDraw = m.prop(AllOrNothingInfo.data().openDraw);\r\n this.property = property;\r\n\r\n // Functions:\r\n this.addRow = function () {\r\n var game = this.game();\r\n\r\n game.addRow();\r\n\r\n this.currentRow(game.rowCount());\r\n }.bind(this);\r\n\r\n this.autogenerateNumbers = function () {\r\n var currentRow = this.currentRow();\r\n var game = this.game();\r\n\r\n if (!this.loading() && game.numbersLeft(currentRow) > 0) {\r\n this.loading(true);\r\n\r\n game.autogenerateNumbers(currentRow).then(function () {\r\n this.loading(false);\r\n\r\n game.save();\r\n\r\n m.redraw();\r\n }.bind(this));\r\n }\r\n }.bind(this);\r\n\r\n this.deleteRow = function (rowNumber) {\r\n var game = this.game();\r\n\r\n return function (event) {\r\n event.stopPropagation();\r\n\r\n game.removeRow(rowNumber);\r\n\r\n this.currentRow(game.rowCount());\r\n }.bind(this);\r\n }.bind(this);\r\n\r\n this.populateNumbers = function () {\r\n var numbers = [];\r\n\r\n for (var i = 1; i < 25; i++) {\r\n numbers.push(i);\r\n }\r\n\r\n this.numbers(numbers);\r\n }.bind(this);\r\n\r\n this.purchase = function () {\r\n var game = this.game();\r\n\r\n if (game.isGameValid()) {\r\n if (game.numberOfDraws() === 0) {\r\n game.sendToSubscription();\r\n } else {\r\n game.save();\r\n\r\n window.location.href = this.confirmLink() + '?gameInstanceId=' + game.id();\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.resetRow = function () {\r\n if (!this.loading()) {\r\n this.game().resetRow(this.currentRow());\r\n }\r\n }.bind(this);\r\n\r\n this.selectRow = function (rowNumber) {\r\n return function () {\r\n this.currentRow(rowNumber);\r\n }.bind(this);\r\n }.bind(this);\r\n\r\n this.toggleNumber = function (number) {\r\n return function () {\r\n var currentRow = this.currentRow();\r\n var game = this.game();\r\n var hasNumber = game.hasNumber(currentRow, number);\r\n\r\n if (!this.loading() && (hasNumber || game.numbersLeft(currentRow) > 0)) {\r\n game[(hasNumber ? 'remove' : 'add') + 'Number'](currentRow, number);\r\n }\r\n }.bind(this);\r\n }.bind(this);\r\n\r\n // Replace state:\r\n if (!this.gameInstanceId() || this.gameInstanceId() !== this.game().id()) {\r\n Params.set('gameInstanceId=' + this.game().id());\r\n }\r\n\r\n // Context:\r\n this.populateNumbers();\r\n\r\n },\r\n\r\n view: function (controller) {\r\n var currentRow = controller.currentRow();\r\n var d = controller.d;\r\n var game = controller.game();\r\n var loading = controller.loading();\r\n var numbersLeft = game.numbersLeft(currentRow);\r\n\r\n return m('div', { class: 'all-or-nothing-prototype purchase-bar-container' }, [\r\n m('p', { class: 'row-title' }, d('Prototype/RowNumber', { rowNumber: currentRow })),\r\n m('p', { class: 'number-selection' }, numbersLeft === 0 ? d('Prototype/DoneSelectingNumbers') : d('Prototype/SelectYourNumber' + (numbersLeft !== 1 ? 's' : ''), { numbers: numbersLeft })),\r\n m('div', { class: 'numbers' + (loading ? ' loading' : '') }, [\r\n controller.numbers().map(function (number) {\r\n return m('div', { class: 'number' + (game.hasNumber(currentRow, number) ? ' number-selected' : ''), onclick: controller.toggleNumber(number) }, number);\r\n })\r\n ]),\r\n m('div', { class: 'buttons' }, [\r\n m('p', { class: 'autogenerate-numbers' + (loading ? ' loading' : '') + (numbersLeft === 0 ? ' inactive' : ''), onclick: controller.autogenerateNumbers }, d('Prototype/AutogenerateNumbers')),\r\n m('p', { class: 'save-row' + (numbersLeft > 0 ? ' inactive' : ''), onclick: controller.addRow }, d('Prototype/AddRow')),\r\n m('p', { class: 'clear-row' + (numbersLeft === game.numbersPerRow() ? ' inactive' : ''), onclick: controller.resetRow }, d('Prototype/ClearRow'))\r\n ]),\r\n m('div', { class: 'rows' }, [\r\n game.rows().map(function (row, index) {\r\n var emptyRow = row.numbers.length === 0;\r\n var rowNumber = index + 1;\r\n\r\n return m('p', { class: 'row' + (emptyRow ? ' row-inactive' : '') + (rowNumber === currentRow ? ' row-selected' : ''), onclick: controller.selectRow(rowNumber) }, [\r\n emptyRow ? d('Prototype/SelectNumbers') : null,\r\n row.numbers.map(function (number) {\r\n return number.number;\r\n }).join(', '),\r\n ' ',\r\n m('span', { onclick: controller.deleteRow(rowNumber) }, 'X')\r\n ]);\r\n })\r\n ]),\r\n PurchaseBar(controller)\r\n ]);\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/AllOrNothingNumberOfPlayDays',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/SelectDropdown',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Models/AllOrNothingGame',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/ConfirmBar'\r\n ],\r\n function (Component, Params, SelectDropdown, AllOrNothingDictionary, AllOrNothingUtils, AllOrNothingGame, ErrorOverlay, Overlay, ConfirmBar) {\r\n\r\n // Component:\r\n Component('number-of-play-days', [AllOrNothingDictionary], function (m, route) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.d = AllOrNothingDictionary.get;\r\n this.gameInstanceId = m.prop(Params.extract('gameInstanceId'));\r\n this.game = m.prop(AllOrNothingGame.get(this.gameInstanceId()));\r\n this.gameCompleted = m.prop(this.game() && this.game().status() === 'completed');\r\n this.errorOverlay = m.prop(new Overlay(ErrorOverlay('all-or-nothing-generic-error-overlay', { header: this.d('GenerateRowsErrorOverlay/Header'), body: this.d('GenerateRowsErrorOverlay/Body'), dismiss: this.d('GenerateRowsErrorOverlay/Dismiss') })));\r\n this.ctaFlowBarTexts = m.prop({\r\n backButtonText: this.d('NumberOfDaysStep/CTAFlowBar/BackToGame'),\r\n nextButtonText: function () {\r\n return this.game().numberOfDraws() > 0 ? this.d('NumberOfDaysStep/CTAFlowBar/ConfirmNumberOfDays', {\r\n totalPrice: AllOrNothingUtils.formatNumber(this.game().totalPrice())\r\n }) : this.d('NumberOfDaysStep/CTAFlowBar/GoToSubscription');\r\n }.bind(this),\r\n processingText: this.d('NumberOfDaysStep/CTAFlowBar/Processing')\r\n });\r\n this.loading = m.prop(false);\r\n\r\n this.numberOfDrawsOptionsFormat = function (singleDraw) {\r\n var options = singleDraw ? [singleDraw] : this.game().numberOfDrawsOptions();\r\n var formatedOptions = singleDraw ? [] : [{ value: 0, name: this.d('NumberOfDaysStep/NumberOfDaysDropdown/PlayRowsEveryDay') }];\r\n\r\n options.forEach(function (item) {\r\n var option = { value: item, name: this.d(item < 2 ? 'NumberOfDaysStep/NumberOfDaysDropdown/NumberOfDrawsSingular' : 'NumberOfDaysStep/NumberOfDaysDropdown/NumberOfDrawsPluralis', { draws: item }) };\r\n\r\n formatedOptions.push(option);\r\n }.bind(this));\r\n\r\n return formatedOptions;\r\n };\r\n\r\n this.options = m.prop(this.numberOfDrawsOptionsFormat() || []);\r\n this.selected = m.prop(this.numberOfDrawsOptionsFormat(this.game().numberOfDraws())[0] || '');\r\n\r\n // Functions:\r\n this.back = function () {\r\n window.location.href = this.game().startUrl() + '?gameInstanceId=' + this.game().id();\r\n }.bind(this);\r\n\r\n this.confirm = function () {\r\n this.loading(true);\r\n\r\n m.redraw();\r\n\r\n if (this.game().getRowsSummary().length > 0) {\r\n if (this.game().numberOfDraws() === 0) {\r\n this.game().sendToSubscription();\r\n\r\n this.loading(false);\r\n\r\n m.redraw();\r\n } else {\r\n this.game().prepareNextStep('confirmUrl').then(function (nextStepUrl) {\r\n location.href = nextStepUrl;\r\n }, function () {\r\n this.errorOverlay().show();\r\n\r\n this.loading(false);\r\n\r\n m.redraw();\r\n }.bind(this));\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.select = function (option) {\r\n this.game().numberOfDraws(option.value);\r\n this.selected(option);\r\n\r\n this.game().save();\r\n }.bind(this);\r\n\r\n // sometimes `totalPrice` might it total price might be '0' initially in that case we need to trigger another redraw()\r\n if (this.game().totalPrice() === 0) {\r\n setTimeout(function () {\r\n m.redraw();\r\n }, 500);\r\n }\r\n\r\n // Check to see if the game has already been purchased:\r\n if (this.gameCompleted()) {\r\n try {\r\n window.history.replaceState({}, '', this.game().startUrl());\r\n } catch (error) {\r\n // Nothing to handle here, just proceed to location.href.\r\n }\r\n\r\n window.history.back();\r\n }\r\n },\r\n\r\n view: function (controller) {\r\n\r\n // Game completed:\r\n if (controller.gameCompleted()) {\r\n return null;\r\n }\r\n\r\n // View:\r\n return [\r\n SelectDropdown(controller, controller.options, controller.selected, controller.select),\r\n ConfirmBar(controller)\r\n ];\r\n\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/AllOrNothingWinningNumbers',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingApi',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Domain/NumberGames/Scripts/Templates/DatePicker',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingWinningNumbers/WinningNumbersSpot',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingWinningNumbers/WinningPrizesTable'\r\n ],\r\n function (Component, AllOrNothingApi, AllOrNothingDictionary, AllOrNothingUtils, DatePicker, WinningNumbersSpot, WinningPrizesTable) {\r\n\r\n // Component:\r\n Component('all-or-nothing-winning-numbers', [AllOrNothingDictionary], function (m, route, settings, property) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.d = AllOrNothingDictionary.get;\r\n this.settings = settings;\r\n this.property = property;\r\n this.loading = m.prop(true);\r\n this.completedDrawsDates = m.prop([]);\r\n this.selectedDrawDate = m.prop();\r\n this.winningNumbers = m.prop([]);\r\n this.winningPrizes = m.prop([]);\r\n this.isDatepickerOpened = m.prop(false);\r\n\r\n // Functions:\r\n this.getWinningNumbers = function () {\r\n this.loading(true);\r\n\r\n AllOrNothingApi.getWinningNumbers({ date: this.selectedDrawDate() }).then(function (data) {\r\n this.winningNumbers(data.winningNumbers || []);\r\n this.winningPrizes(data.prizes || []);\r\n\r\n this.loading(false);\r\n }.bind(this)).then(function () {\r\n m.redraw();\r\n });\r\n }.bind(this);\r\n\r\n AllOrNothingApi.getCompletedDrawsData().then(function (data) {\r\n this.completedDrawsDates(data.drawDates);\r\n this.selectedDrawDate(this.completedDrawsDates()[0]);\r\n\r\n this.getWinningNumbers();\r\n }.bind(this)).then(function () {\r\n m.redraw();\r\n });\r\n\r\n this.selectDate = function (date) {\r\n this.selectedDrawDate(date);\r\n\r\n this.getWinningNumbers();\r\n }.bind(this);\r\n\r\n\r\n this.isWinningNumbersReady = function () {\r\n // Returns true if selected draw is loaded and have winningNumbers\r\n return !this.loading() && this.selectedDraw() && this.winningNumbers() && this.winningNumbers().length > 0;\r\n }.bind(this);\r\n },\r\n\r\n view: function (controller) {\r\n if (controller.settings.componentSource === 'winnings-page') {\r\n return m('div', { class: 'all-or-nothing-winning-numbers-inner-wrapper' }, [\r\n m('div', { class: 'select-date-section' }, [\r\n (controller.selectedDrawDate() && (controller.completedDrawsDates().length > 0)) ? DatePicker(controller) : null\r\n ]),\r\n WinningNumbersSpot(controller),\r\n (controller.winningNumbers().length === 12) ? WinningPrizesTable(controller) : null\r\n\r\n ]);\r\n } else if (controller.settings.componentSource === 'winnings-spot') {\r\n return [\r\n m('h3', { class: 'subheadline' }, m.trust(controller.d('AllOrNothingWinningNumbers/WinningNumbersSpot/Subheadline', { drawDate: ' d. ' + AllOrNothingUtils.formatISO8601(controller.selectedDrawDate() + ' 00:00:00', { includeTime: false }) + '' }))),\r\n m('div', { class: 'all-or-nothing-winning-numbers-inner-wrapper' }, [\r\n WinningNumbersSpot(controller)\r\n ])\r\n ];\r\n }\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/AllOrNothingReceipt',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Countdown',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/CouponOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/AccountIntegration',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Models/AllOrNothingGame'\r\n ],\r\n function (Component, Countdown, CouponOverlay, Overlay, Params, AccountIntegration, AllOrNothingDictionary, AllOrNothingUtils, AllOrNothingInfo, AllOrNothingGame) {\r\n\r\n // Component:\r\n Component('all-or-nothing-receipt', [AccountIntegration, AllOrNothingDictionary], function (m, route, settings) {\r\n\r\n // Components:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.nextLink = m.prop(settings.nextLink);\r\n this.settings = m.prop(settings);\r\n this.backLink = m.prop(settings.backLink);\r\n this.d = AllOrNothingDictionary.get;\r\n this.showSubscribeReminder = m.prop(false);\r\n this.alreadySubscribed = m.prop(false);\r\n this.subscribed = m.prop(false);\r\n this.loadingReminderAlert = m.prop(null);\r\n this.gameInstanceId = m.prop(Params.extract('gameInstanceId'));\r\n // Missing id:\r\n if (!this.gameInstanceId()) {\r\n return;\r\n }\r\n this.game = m.prop(AllOrNothingGame.get(this.gameInstanceId()));\r\n // Missing game:\r\n if (!this.game()) {\r\n console.error('AllOrNothingReceipt: Game not found, id: ' + this.gameInstanceId());\r\n return;\r\n }\r\n this.feedData = AllOrNothingInfo.data();\r\n this.couponOverlay = m.prop(new Overlay(CouponOverlay('all-or-nothing-coupon-overlay', this.game().couponId(), {\r\n printButton: this.d('AllOrNothingReceiptStep/CouponOverlay/printButton'),\r\n closeButton: this.d('AllOrNothingReceiptStep/CouponOverlay/closeButton')\r\n })));\r\n\r\n // Functions:\r\n var draw = this.feedData.openDraw;\r\n var drawDate = draw ? AllOrNothingUtils.parseISO8601(draw.closingTime).dateObject : null;\r\n this.countdownOptions = {\r\n countdownTime: drawDate ? drawDate.getTime() / 1000 : 0,\r\n dictionary: this.d,\r\n disabled: settings.isCountdownDisabled,\r\n noOpenDraw: false\r\n };\r\n\r\n // Update balance in UI\r\n AccountIntegration.triggerBalanceUpdate();\r\n\r\n if (this.game().status() === 'completed') {\r\n // Ecommerce tracking\r\n this.game().trackPurchase();\r\n }\r\n this.gotoCoupon = function () {\r\n this.couponOverlay().show();\r\n return false;\r\n }.bind(this);\r\n\r\n // If user logs out - redirect to AllOrNothing frontpage\r\n window.DSAPI && DSAPI.ready(function () {\r\n DSAPI.Account.subscribeUserLoggedOut({\r\n callback: function () {\r\n location.href = this.game().startUrl();\r\n }.bind(this)\r\n });\r\n }.bind(this));\r\n\r\n },\r\n\r\n view: function (controller) {\r\n return [\r\n (controller.settings().icon.length > 0) ?\r\n m('div', { class: 'all-or-nothing-receipt-image-wrapper' }, [\r\n m('img', { class: 'receipt-image', src: controller.settings().icon })\r\n ]) : null,\r\n m('div', { class: 'all-or-nothing-receipt-inner-section' }, [\r\n m('div', { class: 'receipt-inner-section-headline' }, controller.d('AllOrNothingReceiptStep/Heading', {\r\n playType: controller.d('PlayTypes/' + controller.game().playType())\r\n })),\r\n Countdown(controller.countdownOptions),\r\n m('div', { class: 'receipt-inner-section-buttons-container' }, [\r\n m('a', { class: 'all-or-nothing-button mid-purple', href: '/alt-eller-intet' }, controller.d('AllOrNothingReceiptStep/GoToFrontPage')),\r\n m('div', { class: 'all-or-nothing-button', onclick: controller.gotoCoupon }, controller.d('AllOrNothingReceiptStep/ShowCoupon'))\r\n ])\r\n ])\r\n ];\r\n }\r\n };\r\n\r\n // Routes:\r\n route('/', root);\r\n\r\n });\r\n\r\n });\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/GameClients/AllOrNothingClassicClient', [\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Params',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingUtils',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Models/AllOrNothingGame',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/ActionsBar',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/RowsOverlay',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/MobileOnboarding',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/KeyboardNavigation',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Templates/AllOrNothingClassic/NumbersPicker',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Helpers/Resize',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Scroll',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/ErrorOverlay',\r\n 'DanskeSpil/Framework/NumberGames/Scripts/Templates/Overlay'\r\n],\r\nfunction (Params, Storage, Event, AllOrNothingUtils, AllOrNothingDictionary, AllOrNothingInfo, AllOrNothingGame, ActionsBar, RowsOverlay, MobileOnboarding, KeyboardNavigation, NumbersPicker, Resize, Scroll, ErrorOverlay, Overlay) {\r\n\r\n // Client:\r\n var GameClient = function (m, settings, property) {\r\n\r\n // Component:\r\n var root = {\r\n controller: function () {\r\n\r\n // Variables:\r\n this.isSubscriptionMode = m.prop(settings.subscriptionsMode === true);\r\n this.isMobile = AllOrNothingUtils.isMobile();\r\n this.isTablet = AllOrNothingUtils.isTablet();\r\n this.confirmLink = m.prop(settings.confirmLink);\r\n this.d = AllOrNothingDictionary.get;\r\n this.storage = Storage;\r\n this.resize = Resize;\r\n this.scroll = Scroll;\r\n this.loading = m.prop(true);\r\n this.errorOverlay = m.prop(new Overlay(ErrorOverlay('all-or-nothing-generic-error-overlay', { header: this.d('GenerateRowsErrorOverlay/Header'), body: this.d('GenerateRowsErrorOverlay/Body'), dismiss: this.d('GenerateRowsErrorOverlay/Dismiss') })));\r\n this.gameInstanceId = m.prop(Params.extract('gameInstanceId'));\r\n this.game = m.prop(AllOrNothingGame.setupGame({\r\n gameInstanceId: this.gameInstanceId(),\r\n playType: 'Classic'\r\n }));\r\n this.property = property;\r\n this.property('currentRow', 1);\r\n this.property('numbersPickerStateClassName', 'loaded-numbers');\r\n this.property('interactionsBlocked', true);\r\n this.rowCount = m.prop(this.game().rowCount());\r\n this.shuffledNumbers = m.prop([]);\r\n this.numbers = m.prop([]);\r\n this.numbersOrderInStack = m.prop([]);\r\n this.movingToTheEndOfTheStack = m.prop([]);\r\n\r\n this.getShuffledNumbers = function () {\r\n this.loading(true);\r\n\r\n this.game().getShuffledNumbers().then(function (data) {\r\n this.loading(false);\r\n this.property('shuffledNumbersLoaded', true);\r\n\r\n if (this.game().getRows().length > 0) {\r\n this.property('currentRow', this.game().getRows().length);\r\n }\r\n\r\n this.shuffledNumbers(data);\r\n this.numbers(this.shuffledNumbers()[this.property('currentRow')].ShuffledNumbers);\r\n this.numbersOrderInStack(this.numbers().slice(0));\r\n this.initNumbersStack();\r\n\r\n m.redraw();\r\n }.bind(this), function () {\r\n this.loading(false);\r\n\r\n m.redraw();\r\n });\r\n }.bind(this);\r\n\r\n this.selectedNumbers = m.prop(this.game().getNumbersForRow(this.property('currentRow')).slice(0));\r\n this.groupedNumbers = m.prop([]);\r\n this.openDraw = m.prop(AllOrNothingInfo.data().openDraw);\r\n this.indexOfFirstNumberInStack = m.prop();\r\n this.rowInit = m.prop(false);\r\n\r\n this.numbersCellsWrapper = m.prop();\r\n this.numberCellStartXYSonPan = m.prop({ x: 0, y: 0, scale: 1 });\r\n\r\n this.groupingNumbers = m.prop(false);\r\n this.groupingInterval = null;\r\n this.isRulesPanelOn = m.prop(false);\r\n this.isClassicViewOn = m.prop(false);\r\n this.isRowsOverlayOn = m.prop(false);\r\n this.closeRowOverlay = null;\r\n this.fadeInPlaceholderGrid = m.prop(false);\r\n this.hasFirstRowOverlayAppeared = m.prop(false);\r\n\r\n this.slideRow = m.prop(false);\r\n\r\n this.onToggleNumber = null;\r\n this.numbersCellsNode = null;\r\n this.shakeIncompleteGridCells = null;\r\n\r\n // Functions:\r\n this.layoutHardReset = function () {\r\n if (this.property('numbersPickerStateClassName') === 'loaded-numbers') {\r\n this.property('numbersPickerStateClassName', 'fan-out-stack');\r\n this.fadeInPlaceholderGrid(true);\r\n m.redraw();\r\n this.initNumbersStack();\r\n }\r\n }.bind(this);\r\n\r\n this.initNumbersStack = function () {\r\n if (this.property('shuffledNumbersLoaded') && (this.property('currentRow') >= 1)) {\r\n this.selectedNumbers = m.prop(this.game().getNumbersForRow(this.property('currentRow')).slice(0));\r\n this.numbers(this.shuffledNumbers()[this.property('currentRow')].ShuffledNumbers);\r\n this.numbersOrderInStack(this.numbers().slice(0));\r\n\r\n if (this.game().getRow(this.property('currentRow')).numbers.length > 0) {\r\n this.game().getRow(this.property('currentRow')).numbers.forEach(function (number) {\r\n this.numbersOrderInStack().splice(this.numbersOrderInStack().indexOf(number.number), 1);\r\n }.bind(this));\r\n }\r\n\r\n this.property('lastNumberSelectedAnimationFinished', false);\r\n this.property('rowCompletedGridBounceAnimationPlayed', false);\r\n\r\n this.rowInit(false);\r\n }\r\n\r\n m.redraw();\r\n }.bind(this);\r\n\r\n this.addNewRow = function () {\r\n var game = this.game();\r\n if (game.isGameValid()) {\r\n this.property('currentRow', game.rowCount() + 1);\r\n\r\n game.addRow();\r\n\r\n this.initNumbersStack();\r\n }\r\n }.bind(this);\r\n\r\n this.addingNewRow = function () {\r\n if (!this.property('interactionsBlocked')) {\r\n if (this.isClassicViewOn()) {\r\n this.isClassicViewOn(false);\r\n }\r\n for (var i = 1; i <= this.game().getRows().length; i++) {\r\n if (!this.game().isRowValid(i)) {\r\n if ((i - 1) !== this.game().getRows().length) {\r\n this.property('incompleteRow', i);\r\n if (i !== this.property('currentRow')) {\r\n this.property('changeToRow', i);\r\n this.slideRow('to-left changing-row');\r\n } else {\r\n this.shakeIncompleteGridCells();\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (i === this.game().getRows().length) {\r\n this.slideRow('to-left adding-new-row');\r\n }\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.deleteRow = function (rowNumber) {\r\n var game = this.game();\r\n\r\n return function (event) {\r\n event.stopPropagation();\r\n\r\n if (game.rows().length === 1) {\r\n game.addRow();\r\n }\r\n\r\n game.getRow(rowNumber).state = 'remove';\r\n\r\n game.removeRow(rowNumber);\r\n game.getRows().forEach(function (row, index) {\r\n row.count = index;\r\n });\r\n\r\n if (this.property('currentRow') > game.rowCount()) {\r\n this.property('currentRow', game.rowCount());\r\n }\r\n }.bind(this);\r\n }.bind(this);\r\n\r\n this.autogenerateNumbers = function (event) {\r\n event.stopPropagation();\r\n var self = this;\r\n var currentRow = self.property('currentRow');\r\n var game = self.game();\r\n\r\n if (!self.property('autogeneratingNumbers') && !this.property('interactionsBlocked') && game.numbersLeft(currentRow) > 0) {\r\n self.property('interactionsBlocked', true);\r\n self.property('autogeneratingNumbers', true);\r\n\r\n game.autogenerateNumbers(currentRow).then(function () {\r\n self.property('interactionsBlocked', false);\r\n self.property('autogeneratingNumbers', false);\r\n\r\n game.save();\r\n\r\n self.shouldFirstRowOverlayAppeared();\r\n self.initNumbersStack();\r\n }, function () {\r\n self.property('interactionsBlocked', false);\r\n self.property('autogeneratingNumbers', false);\r\n\r\n self.errorOverlay().show();\r\n });\r\n }\r\n }.bind(this);\r\n\r\n this.changeCurrentRow = function (direction) {\r\n return function () {\r\n if (!this.property('interactionsBlocked')) {\r\n if ((direction === 'prev') && (this.property('currentRow') > 1)) {\r\n if (!this.isRowsOverlayOn()) {\r\n if (this.isMobile || this.isTablet) {\r\n this.slideRow('to-right changing-row prev');\r\n } else {\r\n this.slideRow('to-left changing-row prev');\r\n }\r\n } else {\r\n this.property('currentRow', this.property('currentRow') - 1);\r\n }\r\n } else if ((direction === 'next') && (this.property('currentRow') !== this.game().rowCount())) {\r\n if (!this.isRowsOverlayOn()) {\r\n if (this.isMobile || this.isTablet) {\r\n this.slideRow('to-left changing-row next');\r\n } else {\r\n this.slideRow('to-right changing-row next');\r\n }\r\n } else {\r\n this.property('currentRow', this.property('currentRow') + 1);\r\n }\r\n }\r\n }\r\n }.bind(this);\r\n }.bind(this);\r\n\r\n this.groupNumbers = function (event, startPoint) {\r\n var disableGroupingEvents = ['keyup', 'mouseup', 'pressup', 'panend', 'panup', 'pancancel'];\r\n\r\n if (this.property('interactionsBlocked')) {\r\n return;\r\n }\r\n if (event.type.indexOf('key') !== -1) {\r\n if (event.repeat) {\r\n return;\r\n }\r\n }\r\n if (event.keyCode === 32 && disableGroupingEvents.indexOf(event.type) !== -1) {\r\n this.groupingNumbers(false);\r\n } else {\r\n if (disableGroupingEvents.indexOf(event.type) !== -1) {\r\n this.groupingNumbers(false);\r\n } else {\r\n this.groupingNumbers(!this.groupingNumbers());\r\n }\r\n }\r\n\r\n if (this.groupingNumbers()) {\r\n var numberOfNumbersLeft = this.game().numbersLeft(this.property('currentRow'));\r\n var numbersAvailableForGrouping = this.numbersOrderInStack().slice(0, numberOfNumbersLeft);\r\n var countStartPoint = startPoint === undefined ? 0 : startPoint;\r\n var count = countStartPoint;\r\n\r\n if (numberOfNumbersLeft === 0) {\r\n return;\r\n }\r\n\r\n if (count > 0) {\r\n count = 3;\r\n\r\n for (var i = 0; i < count; i++) {\r\n if (numbersAvailableForGrouping[i]) {\r\n this.groupedNumbers().push(numbersAvailableForGrouping[i]);\r\n }\r\n }\r\n }\r\n\r\n this.groupingInterval = setInterval(function () {\r\n if (countStartPoint > 0) {\r\n countStartPoint--;\r\n } else {\r\n if (count < numbersAvailableForGrouping.length) {\r\n this.groupedNumbers().push(numbersAvailableForGrouping[count]);\r\n\r\n count++;\r\n }\r\n }\r\n\r\n m.redraw();\r\n }.bind(this), 350);\r\n } else {\r\n clearInterval(this.groupingInterval);\r\n\r\n this.numbersCellsNode.forEach(function (elem) {\r\n if (this.groupedNumbers().indexOf(elem.context.numberCellValue) !== -1) {\r\n this.onToggleNumber(elem);\r\n }\r\n\r\n }.bind(this));\r\n this.groupedNumbers([]);\r\n m.redraw();\r\n }\r\n }.bind(this);\r\n\r\n this.purchase = function () {\r\n if (this.game().getRows(true).length >= 1) {\r\n this.game().prepareNextStep('numberOfDaysUrl').then(function (nextStepUrl) {\r\n location.href = nextStepUrl;\r\n }, function () {\r\n this.errorOverlay().show();\r\n });\r\n }\r\n }.bind(this);\r\n\r\n this.toggleRulesPanel = function () {\r\n this.isRulesPanelOn(!this.isRulesPanelOn());\r\n }.bind(this);\r\n\r\n this.shouldFirstRowOverlayAppeared = function () {\r\n if (this.game().getRows(true).length === 1 && !this.hasFirstRowOverlayAppeared() && !this.storage.get('allOrNothing-hasDisplayedFirstRowCompleted')) {\r\n this.isRowsOverlayOn(true);\r\n if (!this.storage.get('allOrNothing-onboardingOnDesktopShowed')) {\r\n this.storage.set('allOrNothing-onboardingOnDesktopShowed', true);\r\n }\r\n }\r\n }.bind(this);\r\n\r\n this.isIE = function () {\r\n var ua = window.navigator.userAgent; // Check the userAgent property of the window.navigator object\r\n var msie = ua.indexOf('MSIE '); // IE 10 or older\r\n var trident = ua.indexOf('Trident/'); // IE 11\r\n var edge = ua.indexOf('Edge'); // Edge\r\n\r\n return (msie > 0 || trident > 0 || edge > 0);\r\n };\r\n\r\n // Replace state:\r\n if (!this.gameInstanceId() || this.gameInstanceId() !== this.game().id()) {\r\n Params.set('gameInstanceId=' + this.game().id());\r\n }\r\n this.getShuffledNumbers();\r\n\r\n // sometimes when a tab get's blured (especialy on mobile) some paint layer informations get lost\r\n window.onfocus = function () {\r\n // wait a bit after tab gets back in focus\r\n setTimeout(function () {\r\n this.layoutHardReset();\r\n }.bind(this), 1000);\r\n }.bind(this);\r\n\r\n // sometimes if the tab is in focus but you load the gameclient directly from the URL bar the browser skips some animations and that ruins the layout\r\n setTimeout(function () {\r\n this.layoutHardReset();\r\n }.bind(this), 2000);\r\n\r\n this.resize(function () {\r\n // wait a bit after resize/rotate device before chacking the layout\r\n setTimeout(function () {\r\n this.layoutHardReset();\r\n }.bind(this), 500);\r\n }.bind(this));\r\n\r\n // we add this class here because we what the hole page with the gameclient to have the user-select property disabled\r\n document.body.classList.add('disable-user-select');\r\n\r\n // Tracking - Push productDetails event to dataLayer\r\n this.game().trackingProductDetails();\r\n\r\n Event.subscribe('allornothing:classic:createNewRow', () => this.addingNewRow());\r\n },\r\n\r\n view: function (controller) {\r\n if (!controller.loading()) {\r\n return m('div', { class: 'all-or-nothing-classic-game-client-section' }, [\r\n m('div', { class: 'all-or-nothing-classic-game-client-headline-wrapper' }, [\r\n m('h1', { class: 'game-client-headline' }, controller.d('AllOrNothingClassic/Headline'))\r\n ]),\r\n (!controller.isMobile && !controller.isTablet) ? m('div', { class: 'rules-side-panel-wrapper' + (controller.isRulesPanelOn() ? ' active' : ''), onclick: controller.toggleRulesPanel }, [\r\n m('div', { class: 'side-panel-button-wrapper' }, [\r\n m('div', { class: 'button-text' }, controller.d('AllOrNothingClassic/RulesSidePanel/ButtonText'))\r\n ]),\r\n m('div', { class: 'side-panel-text-wrapper' }, m.trust(controller.d('AllOrNothingClassic/RulesSidePanel/RulesText')))\r\n ]) : null,\r\n m('div', { class: 'all-or-nothing-classic-game-client-wrapper' }, [\r\n ((controller.isMobile || controller.isTablet) && !controller.storage.get('allOrNothing-mobileOnboardingStepShowed')) ? MobileOnboarding(controller) : null,\r\n m('div', { class: 'all-or-nothing-classic-game-client-rows-counter' + (controller.isClassicViewOn() ? ' classic-view-on' : '') },\r\n controller.d('AllOrNothingClassic/RowCountHeader', { currentRow: controller.property('currentRow'), numberOfRows: controller.game().getRows().length })\r\n ),\r\n NumbersPicker(controller),\r\n ActionsBar(controller),\r\n controller.isRowsOverlayOn() ? RowsOverlay(controller) : null\r\n ]),\r\n !(controller.isMobile || controller.isTablet) ? KeyboardNavigation(controller) : null\r\n ]);\r\n } else {\r\n return m('div', { class: 'all-or-nothing-classic-game-client-section' });\r\n }\r\n }\r\n };\r\n\r\n return root;\r\n };\r\n\r\n // Public functions:\r\n return GameClient;\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/AllOrNothing/Scripts/Components/AllOrNothingClassic',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Core/Component',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingDictionary',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Helpers/AllOrNothingInfo',\r\n 'DanskeSpil/Domain/AllOrNothing/Scripts/Components/GameClients/AllOrNothingClassicClient'\r\n ],\r\n function (Component, AllOrNothingDictionary, AllOrNothingInfo, AllOrNothingClassicClient) {\r\n\r\n // Component:\r\n Component('all-or-nothing-classic', [AllOrNothingDictionary, AllOrNothingInfo], function (m, route, settings, property) {\r\n\r\n // Feed check:\r\n if (AllOrNothingInfo.isFeedDown() || AllOrNothingInfo.noOpenDraw()) {\r\n if (!window.sitecoreEnv && location.search.indexOf('avoid_redirect') === -1) {\r\n // we need to set up '/alt-eller-intet/notavailable'\r\n // until the we use '/alt-eller-intet'\r\n location.href = '/alt-eller-intet';\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Components:\r\n var client = AllOrNothingClassicClient(m, settings, property);\r\n\r\n // Routes:\r\n route('/', client);\r\n\r\n });\r\n\r\n });\r\n"]}