{"version":3,"mappings":"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","names":["_sfc_main","vm","triggerAnimation","_hoisted_4","_createElementVNode","_createElementBlock","_normalizeClass","$props","_withDirectives","_openBlock","_hoisted_1","$options","_toDisplayString","_hoisted_3","_Fragment","_vShow","_normalizeStyle","inlineThGroup","_renderList","gameThumbnail","_renderSlot","_ctx","_createVNode","_component_preload_icon","_hoisted_6","_cache","_withModifiers","$event","_directive_lang","_hoisted_7","_directive_game_list","thFavIcon","element","binding","thumbnail","$element","attrName","timeout","bool","onHover","model","event","observeThElem","categoryID","handleThumbnailImage","handleTournImage","handleJackpot","_a","cbx","props","imgToLoad","entries","entry","elem","controller","imgSrc","handleImgLoadErr","observer","id","jpInfo","observeElem","tours","tour","promos","found","promo","imgSrcError","thQuad","grid","isObject","callback","currId","GameList","params","ths","th","i","j","th1","th2","th1Pos","th2Pos","promoFreeGames","arr","cths","arrThumbnails","cacheAll","selfArgs","qths","qth","qind","index","initialAmount","arrCached","arrThs","ignorePrevCurrAmount","newColAmount","arrGroups","group","quadOffset","expectedAmount","len","anyCachedThsLength","anyCachedThs","count","_thumbnails","length","ind","emptySpots","tmpLimit","shouldLimit","amountToLoad","hidden","allThs","val","rowSize","colSize","customAmount","nextThumbnails","useLimit","colAmount","limit","res","__publicField","gameListModel","gl","reactive","CONSTANTS","propsConfig","uid","_sfc_main$e","glCatID","entires","observeEntry","nextTick","setupThs","item","x","featuredGameItem","_b","firstFeaturedId","game","addTh","_c","tmpId","serverGameLists","_resolveComponent","promoBox","prevDisplDelay","then","setInViewport","now","__","promoSectionBtnsTemplate","promoCountdown","label","secs","_hoisted_2","_createBlock","_component_promo_countdown","_component_promo_section_btns_template","_directive_promo_box","vAttachProps","propName","parent","checkOffsetParent","selfFunct","key","valNew","exec","vm$5","cookieHelper","CookieLawMsg","FundCookieLawMsg","CookiePlural","AcceptLabel","args","vm$4","docWidth","docHeight","ww","wh","scale","confirm_label","WOF_Promo_Cancel_Confirmation_Msg","promoId","wheelPromo","tim","targetNotif","showWOF","loadIframe","url","extCss","__vitePreload","module","strKeys","query","notif","name","addQueryStringValues","e","deactivated","hasFS","amount","price","data","getParameterByName","urlIframe","setupAttachPropsObj","$root","Enum","$subnav","$visibleGL","gameListOffset","vm$3","mainCategory","level1","level2","cat","subCategory","iscroll","forceScroll","animated","subNavTop","_subNavScrollTop","currScrollTop","shouldScroll","obj","gsap","setupCats","cats","navItem","CategoryMainnavModel","c1","c2","cPos1","cPos2","level3","targetMainCat","atLeastOneVisible","active","firstLvl1CatWithCats","value","$searchByName","scroll","setupTabs","SearchByNameLabel","ClearLabel","mainNavTabTemplate","handleNavsCollision","mainNav","_component_main_nav_tab_template","subNavTab","_hoisted_5","x1Sdk","X1_TEMPLATE","vm$2","BaseContent","mainHomeContent","mainHomeGLs","jps","pastProgIds","firstItem","jpVals","n1","n2","maxVal","gameContent","onGoToCategory","catId","level","gameList","includeName","isSubCat","homePageGL","thumbnails","create","arrCatIds","foundIncluded","allGameLists","included","hasSubCats","shouldUpdateFGAndReRenderBet","utcOpeningTimes","dateCurrent","dateFromTime","dateToTime","timeBetween","favGamesSection","FavoriteGamesLabel","updateFavList","settings","favGames","_arrFavGames","_arrCasino","_arrLive","gameId","noFavGames","propLabel","CategoryToursBusiness","strPattern","groups","arrPattern","groupID","categoryToursBusiness","categoryToursContent","oneLocalTournVisible","toursCategoryIDs","arrCategoryTours","aTours","arrCloned","catID","toArray","originalClickId","tourId","clickIdSuffix","cloned","createGameList","focusedAccTourId","isTitleObj","clickId","handleScroll","topCall","gameLists","gameIDs","premierThs","pos","item1","item2","gameThumbnailUtils","mode","recentlyPlayedSection","rpSectionList","section","response","STARS_AMOUNT","MAX_DURATION","MIN_DURATION","X_POS_MIN","X_POS_MAX","Y_POS_MIN","Y_POS_MAX","ROTATE_MIN","ROTATE_MAX","bpParticlesDirective","$particles","$particle","$inner","tweens","allProps","initialProps","bonusPoints","bpOptions","earnedPoints","bp","option","prevValue","unwatch","watch","bpSubscrCallback","displayParticles","displayCoin","particle","inner","tweenProps","getRandMinMax","min","max","negProb","$imgDiv","firstIfUndefined","imgDiv","props1","onUpdate","gameTournamentDirective","$pivotElem","topVal","t","onResize","topPosPlusHeight","offset","elemWidth","functName","vm$1","_e","_d","_g","_f","items","targetThumbnail","displaySBOffer","pageX","currThumbnail","arrQuadThs","resColumn","currIndex","row","newIndex","prevTh","maxThIndex","lowerIndex","upperIndex","firstTh","beginningPage","isPrev","PlayForMoneyText","SwipeLeftRightLabel","disableTouchMove","thCategoryTourIcons","_hoisted_8","_hoisted_11","_hoisted_15","_hoisted_19","_hoisted_26","_hoisted_34","_hoisted_10","_hoisted_12","_hoisted_14","_hoisted_16","_component_th_category_tour_icons","_hoisted_17","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_25","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_31","_hoisted_30","_hoisted_32","_hoisted_33"],"sources":["../../../../src/site/vue/models/game-list/game-list-common.vue","../../../../src/site/js/directives/game-thumbnail-directive.js","../../../../src/site/js/directives/observe-th-elem.js","../../../../src/site/js/directives/th-quad.js","../../../../src/site/js/models/game-list-model.js","../../../../src/site/js/components/server-game-list-view-model.js?vue&type=script&src=true&lang.js","../../../../src/site/vue/components/server-game-list/server-game-list-common.vue","../../../../src/site/js/components/server-game-list-view-model.js","../../../../src/site/js/directives/promo-box.js","../../../../src/site/vue/components/promo-section/common/promo-section-item.vue","../../../../src/site/js/directives/attach-props.js","../../../../src/site/js/components/cookie-law-view-model.js","../../../../src/site/staticConfig/lang/cookieLaw.js","../../../../src/site/vue/components/cookie-law/cookie-law-common.vue","../../../../src/site/js/components/wheel-of-fortune-view-model.js","../../../../src/site/vue/components/wheel-of-fortune/wheel-of-fortune-common.vue","../../../../src/site/js/dom/sub-nav-dom.js","../../../../src/site/js/components/sub-nav-view-model.js","../../../../src/site/vue/components/sub-nav-view.vue","../../../../src/site/js/directives/x1-sdk.js","../../../../src/site/js/pages/x1-page-view-model.js","../../../../src/site/vue/pages/x1-page-view.vue","../../../../src/site/js/views/casino/casino-content/base-content.js","../../../../src/site/js/views/casino/casino-content/main-home-content.js","../../../../src/site/js/views/casino/casino-content/game-content.js","../../../../src/site/js/views/casino/casino-content/fav-games-section.js","../../../../src/site/js/controller/business/other/category-tours-business.js","../../../../src/site/js/views/casino/casino-content/category-tours-content.js","../../../../src/site/js/views/game-thumbnail-utils.js","../../../../src/site/js/views/casino/casino-content/recently-played-section.js","../../../../src/site/js/directives/bp-particles-directive.js","../../../../src/site/js/directives/game-tournament-directive.js","../../../../src/site/js/views/casino/casino-view-model.js","../../../../src/site/js/components/game-frame-mobile-view-model.js","../../../../src/site/vue/components/game-frame-mobile/game-frame-mobile-common.vue"],"sourcesContent":["\r\n\r\n","import model from \"../model.js\";\r\n\r\nexport let thFavIcon = {\r\n\tbeforeMount(element, binding){\r\n\t\tvar thumbnail = binding.value;\r\n\r\n\t\tvar $element = $(element);\r\n\t\tvar attrName = 'data-removing-fav-marker';\r\n\t\tvar timeout;\r\n\r\n\t\tbinding.instance.$watch(() => thumbnail.fav, bool => {\r\n\t\t\tonHover();\r\n\r\n\t\t\tif(!model.logged || bool) return;\r\n\t\t\t\t\r\n\t\t\t$element.attr(attrName, true);\r\n\t\t\ttimeout = setTimeout(onHover, 1000);\r\n\r\n\t\t\t!model.isMobile && $element.on('mouseenter', onHover);\r\n\t\t});\r\n\r\n\t\tfunction onHover(event){\r\n\t\t\t$element.removeAttr(attrName);\r\n\t\t\tclearTimeout(timeout);\r\n\t\t\t$element.off('mouseenter', onHover);\r\n\t\t\tif(event){\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import { toArray } from \"@helpers/utils.js\";\r\nimport controller from \"@js/controller/controller.js\";\r\nimport model from \"@js/model.js\";\r\n\r\nexport default {\r\n\tmounted(element, binding){\r\n\t\tlet thumbnail = binding.value.thumbnail;\r\n\t\tlet categoryID = binding.value.cat;\r\n\r\n\t\thandleThumbnailImage(element, {thumbnail, categoryID});\r\n\t\thandleTournImage(element, {thumbnail, categoryID});\r\n\t\thandleJackpot(element, {thumbnail, categoryID});\r\n\t},\r\n\tunmounted(element){\r\n\t\telement.arrOnDispose?.forEach(cbx => cbx());\r\n\t},\r\n}\r\n\r\nfunction handleThumbnailImage(element, props){\r\n\tlet thumbnail = props.thumbnail;\r\n\r\n\tlet imgToLoad = thumbnail.getImgToLoad(props.categoryID);\r\n\tif(imgToLoad.loaded.value) return;\r\n\r\n\telement.imgToLoad = imgToLoad;\r\n\r\n\tif(!model.sharedThumbnailObserver){\r\n\t\tmodel.sharedThumbnailObserver = new IntersectionObserver(entries => {\r\n\t\t\tentries.forEach(entry => {\r\n\t\t\t\tlet elem = entry.target;\r\n\t\t\t\tif(!entry.isIntersecting) return;\r\n\r\n\t\t\t\tmodel.sharedThumbnailObserver.unobserve(elem);\r\n\r\n\t\t\t\tlet imgToLoad = elem.imgToLoad;\r\n\t\t\t\tif(imgToLoad.imgSrc){\r\n\t\t\t\t\tcontroller.preloadImg({\r\n\t\t\t\t\t\timgUrl: imgToLoad.imgSrc,\r\n\t\t\t\t\t\tsuccess: imgSrc => {\r\n\t\t\t\t\t\t\tif(imgSrc) imgToLoad.imgObservable.value = imgSrc;\r\n\t\t\t\t\t\t\timgToLoad.loaded.value = true;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\terror: () => handleImgLoadErr(imgToLoad),\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\thandleImgLoadErr(imgToLoad);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tmodel.sharedThumbnailObserver.observe(element);\r\n}\r\n\r\nfunction handleJackpot(element, props){\r\n\tlet thumbnail = props.thumbnail;\r\n\tif(!thumbnail.jackpotAPIName) return;\r\n\r\n\telement.arrOnDispose ||= [];\r\n\r\n\tlet observer = new IntersectionObserver(entries => {\r\n\t\tentries.forEach(entry => {\r\n\t\t\tcontroller[entry.isIntersecting ? 'observeElemIfAPIChange' : 'unobserveElemIfAPIChange'](thumbnail.jackpotAPIName, element);\r\n\t\t});\r\n\t});\r\n\r\n\tcbx();\r\n\tmodel.on('ListUpdated_' + thumbnail.jackpotAPIName, cbx);\r\n\r\n\tfunction cbx(){\r\n\t\tlet id = thumbnail.extGameId + '';\r\n\t\tid = id.includes('##') ? id.substring(0, id.indexOf('##')) : id;\r\n\r\n\t\tlet jpInfo = model.listJackpotInfo[id];\r\n\t\tif(!jpInfo) return;\r\n\r\n\t\tthumbnail.jackpotValue = jpInfo.value;\r\n\t\tthumbnail.jackpotCurrency = jpInfo.currency;\r\n\t}\r\n\t\r\n\tobserver.observe(element);\r\n\telement.arrOnDispose.push(() => {\r\n\t\tobserver.disconnect();\r\n\t\tmodel.off('ListUpdated_' + thumbnail.jackpotAPIName, cbx);\r\n\t});\r\n}\r\n\r\nfunction handleTournImage(element, props){\r\n\tlet thumbnail = props.thumbnail;\r\n\r\n\telement.arrOnDispose ||= [];\r\n\r\n\tlet observer = new IntersectionObserver(entries => {\r\n\t\tentries.every(entry => {\r\n\t\t\tif(entry.isIntersecting){\r\n\t\t\t\tobserveElem();\r\n\t\t\t\tobserver.disconnect();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t});\r\n\t});\r\n\r\n\tobserver.observe(element);\r\n\telement.arrOnDispose.push(() => observer.disconnect());\r\n\r\n\tfunction observeElem(){\r\n\t\tif(!Array.isArray(model.categoryTours)) return;\r\n\r\n\t\tlet tours = model.categoryTours.filter(tour => {\r\n\t\t\tlet promos = controller.getCategoryTourPromo(tour);\r\n\t\t\tif(!promos?.length) return;\r\n\r\n\t\t\tlet found = false;\r\n\t\t\tpromos.every(promo => {\r\n\t\t\t\tif((promo.gameIDsByGameGroup == thumbnail.gameGroup || controller.containsGameID(promo.gameIDs, thumbnail.gameId)) && tour.thumbnailIconPath){\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t\tif(found) return true;\r\n\t\t});\r\n\r\n\t\tthumbnail.categoryTourIcons.value = tours.map(tour => {return {path: tour.thumbnailIconPath, position: tour.thumbnailIconPathPosition}});\r\n\t}\r\n}\r\n\r\nfunction handleImgLoadErr(imgToLoad){\r\n\tif(imgToLoad.imgSrcError){\r\n\t\tcontroller.preloadImg({\r\n\t\t\timgUrl: imgToLoad.imgSrcError,\r\n\t\t\tsuccess: imgSrcError => {\r\n\t\t\t\tif(imgSrcError) imgToLoad.imgObservable.value = imgSrcError;\r\n\t\t\t\timgToLoad.loaded.value = true;\r\n\t\t\t},\r\n\t\t});\r\n\t\treturn;\r\n\t}\r\n\r\n\timgToLoad.loaded.value = true;\r\n}","import { isObject } from \"@helpers/utils.js\";\r\nimport model from \"@js/model.js\";\r\n\r\nexport default { \r\n\tbeforeMount(element, binding){\r\n\t\tvar grid = binding.value.grid;\r\n\t\tif(!isObject(grid)) return;\r\n\t\r\n\t\tvar gameThumbnail = binding.value.th;\r\n\t\r\n\t\tgameThumbnail.updateGridPositions(grid);\r\n\t\r\n\t\tif(!isObject(grid.window)) return;\r\n\t\r\n\t\tvar callback = function(){\r\n\t\t\tgameThumbnail.updateGridPositions(grid);\r\n\t\t};\r\n\r\n\t\tmodel.on('WindowResize', callback);\r\n\t\telement.onDispose = () => model.off('WindowResize', callback);\r\n\t},\r\n\tunmounted(element){\r\n\t\telement.onDispose?.();\r\n\t},\r\n}","import { reactive } from \"vue\"\nimport model from \"../model.js\";\nimport controller from \"../controller/controller.js\";\nlet currId = 0;\n\nvar GameList = class {\n\tstatic INLINE_MAX_GROUP_AMOUNT = 3;\n\tconstructor(params) {\n\t\tparams = params || {};\n\n\t\tthis.id = currId++;\n\n\t\tthis.title = params.title;\n\t\tthis.titleLabel = params.titleLabel;\n\t\tthis.hasCounter = typeof params.counter === 'boolean' ? params.counter : false;\n\t\tthis.categoryID = params.categoryID || null;\n\t\tthis.tournamentId = params.tournamentId || null;\n\t\tthis.clickId = params.clickId || null;\n\n\t\tif (typeof params.isHidden !== 'boolean') params.isHidden = true;\n\t\tif (typeof params.ready !== 'boolean') params.ready = true;\n\t\tif (typeof params.backdrop !== 'boolean') params.backdrop = false;\n\t\tif (typeof params.inline !== 'boolean') params.inline = false;\n\t\tif (typeof params.inlineLoadMore !== 'boolean') params.inlineLoadMore = false;\n\t\tif (typeof params.spaceInbetween !== 'boolean') params.spaceInbetween = false;\n\t\tif (typeof params.shouldBeObserved !== 'boolean') params.shouldBeObserved = true;\n\t\tif (typeof params.quadThsToTop !== 'boolean') params.quadThsToTop = true;\n\t\tif (typeof params.showAllInlineGames !== 'boolean') params.showAllInlineGames = false;\n\t\tif (typeof params.lobbyHelperOrderId !== 'number') params.lobbyHelperOrderId = null;\n\n\t\tthis.inline = params.inline;\n\t\tthis.inlineLoadMore = params.inlineLoadMore;\n\t\tthis.inlineRows = params.inlineRows || 1;\n\n\t\tthis.fetchNewGames = params.fetchNewGames;\n\n\t\tthis.quadThsToTop = params.quadThsToTop;\n\t\tthis.showAllInlineGames = params.showAllInlineGames;\n\n\t\tthis.lobbyHelperOrderId = params.lobbyHelperOrderId;\n\n\t\tthis.limit = params.limit;\n\t\tthis.onResetLimitsUnderCondition = params.onResetLimitsUnderCondition;\n\t\tthis.includesJackpot = Boolean(params.includesJackpot);\n\t\tthis.onListChange = params.onListChange;\n\t\tthis.forcedColAmount = params.forcedColAmount;\n\t\tthis.spaceInbetween = params.spaceInbetween;\n\t\tthis.subCat = Boolean(params.subCat);\n\n\t\tthis.isPresentInToursCat = Boolean(params.isPresentInToursCat);\n\n\t\tthis.shouldBeObserved = params.shouldBeObserved;\n\t\t\n\t\tthis.hasLimit = Boolean(this.limit);\n\t\tthis.limitActive = this.hasLimit;\n\n\t\tthis.cache = params.cache;\n\t\tif (typeof this.cache !== 'boolean')\n\t\t\tthis.cache = true;\n\n\t\tthis.quadThOffset = 0;\n\t\tthis.arrQuadThs = null;\n\t\t\n\t\tthis.ready = this.lobbyHelperOrderId !== null ? false : params.ready;\n\t\tthis.isHidden = params.isHidden;\n\t\tthis.observedOnce = !params.shouldBeObserved;\n\t\tthis.showMoreDisplayed = true;\n\t\tthis.thumbnails = [];\n\t\tthis.cachedThumbnails = [];\n\t\tthis.titleHidden = Boolean(params.titleHidden);\n\t\tthis.shownMore = false;\n\t\t\n\t\tif(this.inline){\n\t\t\tthis.inlineThGroups = [];\n\t\t\tthis.inlineColAmount = 0;\n\t\t\tthis.prevColAmount = null;\n\t\t}\n\n\t\tif(this.hasCounter) this.counter = 0;\n\n\t\tlet t;\n\t\tmodel.on('LoginComplete', 'LogoutComplete', () => {\n\t\t\tif(model.currCatIds.level2 !== this.categoryID) return;\n\t\t\tthis._loadThsByEmptySpots();\n\t\t});\n\t}\n\n\t_thsChanged(){\n\t\tif (typeof this.onListChange === 'function') this.onListChange();\n\t\t\n\t\tthis.quadThOffset = 0;\n\t\tvar ths = this.getThumbnails().filter(th => th.getGrid(this.categoryID));\n\t\tfor (var i = 0, j = ths.length; i < j; i++) {\n\t\t\tthis.quadThOffset = this._updateQuadOffset(ths[i], this.quadThOffset);\n\t\t}\n\t\tths.sort((th1, th2) => {\n\t\t\tvar th1Pos = th1.getGridRowPos(this.categoryID) * th1.getGridColumnPos(this.categoryID);\n\t\t\tvar th2Pos = th2.getGridRowPos(this.categoryID) * th2.getGridColumnPos(this.categoryID);\n\t\t\tif (th1Pos < th2Pos)\n\t\t\t\treturn -1;\n\t\t\telse if (th1Pos > th2Pos)\n\t\t\t\treturn 1;\n\t\t\treturn 0;\n\t\t});\n\t\tthis.arrQuadThs = ths;\n\t}\n\n\tobserveGL(){\n\t\tthis.observedOnce = true;\n\t\tif(typeof this.whenObserved === 'function'){\n\t\t\tthis.whenObserved();\n\t\t\tthis.whenObserved = null;\n\t\t}\n\t}\n\n\tgetThumbnails(){\n\t\treturn this._filterByCCode(this.thumbnails);\n\t}\n\n\tgetCachedThumbnails(){\n\t\treturn this._filterByCCode(this.cachedThumbnails);\n\t}\n\n\tupdateFGAndReRenderBet(ths){\n\t\tths = this._filterByCCode(Array.isArray(ths) ? ths : this.thumbnails);\n\t\tfor(var i = 0, j = ths.length; i < j; i++){\n\t\t\tvar thumbnail = ths[i];\n\t\t\tvar promoFreeGames = controller.getFreeGamePromo(thumbnail.getGameId());\n\t\t\tthumbnail.freeGamesAmount = promoFreeGames ? promoFreeGames.freeGamesLeft : null;\n\n\t\t\t//The bet values that are visible without hovering over a thumbnail have to \n\t\t\t//be rerendered upon login / logout to match the user's currency. \n\t\t\tthumbnail.displayBetOnImg && thumbnail.reRenderBet();\n\t\t}\n\t}\n\n\thasCachedThumbnails(){\n\t\treturn this.getCachedThLength() > 0;\n\t}\n\n\tanyThRendered(){\n\t\treturn this.getRenderedThLength() > 0;\n\t}\n\n\tgetCachedThLength(){\n\t\treturn this.getCachedThumbnails().length;\n\t}\n\n\tgetRenderedThLength(){\n\t\treturn this.getThumbnails().length;\n\t}\n\n\tgetAllThumbnails(){\n\t\tif(Array.isArray(this.backedThs)) return this._filterByCCode(this.backedThs);\n\t\tvar arr = this.getThumbnails();\n\t\tvar cths = this.getCachedThumbnails();\n\t\treturn arr.concat(cths);\n\t}\n\n\tclearThumbnails(){\n\t\tthis.thumbnails = [];\n\t\tthis._thsChanged();\n\t\tthis.cachedThumbnails = [];\n\t\tthis._updateCounter(0);\n\n\t\tif(!this.inline) return;\n\n\t\tthis.inlineThGroups = [];\n\t\tthis.inlineColAmount = 0;\n\t\tthis.prevColAmount = null;\n\t}\n\n\tsetupThumbnails(arrThumbnails, cacheAll){\n\t\tvar selfArgs = arguments;\n\n\t\tif(!this.observedOnce){\n\t\t\tthis.whenObserved = () => this.setupThumbnails.apply(this, selfArgs);\n\t\t\tif(Array.isArray(arrThumbnails)) this.backedThs = arrThumbnails.slice(0);\n\t\t\treturn;\n\t\t}\n\n\t\tdelete this.backedThs;\n\n\t\tif(typeof cacheAll !== 'boolean') cacheAll = false;\n\n\t\tarrThumbnails = arrThumbnails || [];\n\t\t\n\t\tif(this.quadThsToTop){\n\t\t\tvar qths = arrThumbnails.filter(th => th.getGrid(this.categoryID));\n\t\t\t\n\t\t\tfor(var i = 0, j = qths.length; i < j; i++){\n\t\t\t\tvar qth = qths[i];\n\t\t\t\tvar qind = arrThumbnails.indexOf(qth);\n\t\t\t\tif(qind !== -1){\n\t\t\t\t\tarrThumbnails.splice(qind, 1);\n\t\t\t\t\tarrThumbnails.unshift(qth);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tarrThumbnails.every((th, index) => {\n\t\t\tif(th.showMoreThId && th.getGrid(this.categoryID)){\n\t\t\t\tarrThumbnails.splice(index, 1);\n\t\t\t\tarrThumbnails.push(th);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\tif(this.cache){\n\t\t\tif(!cacheAll){\n\t\t\t\tlet initialAmount;\n\n\t\t\t\tif(this.limitActive) initialAmount = this.limit;\n\t\t\t\telse{\n\t\t\t\t\tinitialAmount = model.thLoadConf.amount;\n\t\t\t\t\tif(arrThumbnails.length < initialAmount * 1.5) initialAmount = Infinity;\n\t\t\t\t}\n\n\t\t\t\tif(arrThumbnails.length >= initialAmount){\n\t\t\t\t\tvar arrCached = arrThumbnails;\n\t\t\t\t\tvar arrThs = [];\n\n\t\t\t\t\tfor(var i = 0; i < initialAmount; i++)\n\t\t\t\t\t\tarrThs[i] = arrCached.shift();\n\n\t\t\t\t\tarrThumbnails = arrThs;\n\t\t\t\t\tthis.cachedThumbnails = arrCached;\n\t\t\t\t}\n\t\t\t\telse this.cachedThumbnails = [];\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.cachedThumbnails = arrThumbnails;\n\t\t\t\tarrThumbnails = [];\n\t\t\t}\n\t\t}\n\n\t\tfor(var i = 0, j = arrThumbnails.length; i < j; i++){\n\t\t\tvar th = arrThumbnails[i];\n\t\t\tth.addHiddenByCat(this.categoryID);\n\t\t}\n\n\t\tthis.thumbnails = arrThumbnails;\n\t\tthis._thsChanged();\n\t\tthis._loadThsByEmptySpots();\n\n\t\tthis.updateFGAndReRenderBet();\n\t\tthis.setupInlineLists(true);\n\n\t\tthis.reset();\n\t}\n\n\tsetupInlineLists(ignorePrevCurrAmount){\n\n\t\tif(typeof ignorePrevCurrAmount !== 'boolean') ignorePrevCurrAmount = false;\n\n\t\tif(!this.inline) return;\n\n\t\tvar newColAmount = this.forcedColAmount || model.getThumbnailColAmount();\n\t\tif(!ignorePrevCurrAmount && this.prevColAmount === newColAmount) return;\n\t\tthis.prevColAmount = newColAmount;\n\n\t\tvar arr = this.getAllThumbnails();\n\n\t\tvar arrGroups = [];\n\t\tvar group = {list: []};\n\t\tvar quadOffset = 0;\n\t\tvar expectedAmount = newColAmount * this.inlineRows;\n\t\tvar thsToLoad = [];\n\n\t\tfor(var i = 0, len = arr.length; i < len; i++){\n\t\t\tvar th = arr[i];\n\t\t\t\n\t\t\tthsToLoad.push(th);\n\t\t\tth.addHiddenByCat(this.categoryID);\n\n\t\t\tif(th.getGrid(this.categoryID)){\n\t\t\t\texpectedAmount -= this._updateQuadOffset(th, quadOffset);\n\t\t\t}\n\n\t\t\tgroup.list.push(th);\n\n\t\t\tif(group.list.length == expectedAmount || i == arr.length - 1){\n\t\t\t\tarrGroups.push(group);\n\t\t\t\tgroup = {list: []};\n\t\t\t\tquadOffset = 0;\n\t\t\t\texpectedAmount = newColAmount * this.inlineRows;\n\t\t\t\tif(!this.showAllInlineGames && arrGroups.length === this.constructor.INLINE_MAX_GROUP_AMOUNT) break;\n\t\t\t}\n\t\t}\n\n\t\tthis.inlineColAmount = newColAmount;\n\t\tthis.inlineThGroups = arrGroups;\n\t}\n\n\tonShowMoreInlineClick(){\n\t\tthis.inline = false;\n\t\tthis.inlineLoadMore = false;\n\t}\n\n\tonShowMoreClick(){\n\t\tvar anyCachedThsLength = this.getCachedThLength();\n\t\tvar anyCachedThs = anyCachedThsLength > 0;\n\n\t\t// if(this.loadAllOnShowMore){\n\t\t// \tthis.limitActive = !this.limitActive;\n\t\t// \tif(this.hasLimit){\n\t\t// \t\tthis.shownMore = !this.limitActive;\n\t\t// \t\t!this.shownMore && model.dispatchEvent('ScrollToGameNav', {\n\t\t// \t\t\tforceScroll: true,\n\t\t// \t\t\tanimated: true,\n\t\t// \t\t});\n\t\t// \t}\n\t\t// \tthis.reset();\n\t\t// \t!this.limitActive && anyCachedThs && this._startLoadingThs(anyCachedThsLength);\n\t\t// }\n\t\t// else{\n\t\t\tthis.shownMore = !anyCachedThs;\n\t\t\tanyCachedThs && this._startLoadingThs();\n\t\t// }\n\n\t\tthis._updateParallax();\n\t}\n\n\t_updateCounter(count){\n\t\tthis.counter = count;\n\t}\n\n\treset(){\n\t\tvar _thumbnails = this.getThumbnails();\n\n\t\tvar count = 0;\n\t\tif(!this.limitActive){\n\t\t\tvar allThs = this.getAllThumbnails();\n\t\t\tcount = allThs.length;\n\t\t\tfor(var i = 0, j = count; i < j; i++)\n\t\t\t\tallThs[i].setHidden(this.categoryID, false);\n\t\t\t\n\t\t\tif(Array.isArray(this.arrQuadThs)){\n\t\t\t\tthis.quadThOffset = 0;\n\t\t\t\tthis.arrQuadThs.forEach(th =>{\n\t\t\t\t\tthis.quadThOffset = this._updateQuadOffset(th, this.quadThOffset);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse if(this.hasLimit && typeof this.onResetLimitsUnderCondition === 'function' && this.onResetLimitsUnderCondition()){\n\t\t\tvar length = _thumbnails.length + this.getCachedThLength();\n\n\t\t\tcount = length;\n\t\t\t\n\t\t\tif(Array.isArray(this.arrQuadThs)){\n\t\t\t\tthis.quadThOffset = 0;\n\t\t\t\tthis.arrQuadThs.forEach(th => {\n\t\t\t\t\tvar ind = this.getThumbnails().indexOf(th);\n\t\t\t\t\tif(ind < this.limit){\n\t\t\t\t\t\tthis.quadThOffset = this._updateQuadOffset(th, this.quadThOffset);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar emptySpots = this._calcEmptySpots(true) || 0;\n\t\t\tvar tmpLimit = this.limit + emptySpots;\n\t\t\tvar shouldLimit = tmpLimit < length;\n\n\t\t\tif(shouldLimit){\n\t\t\t\tvar amountToLoad = 0;\n\t\t\t\tfor(var i = 0; i < length; i++){\n\t\t\t\t\tvar th = _thumbnails[i];\n\n\t\t\t\t\tvar hidden = i >= tmpLimit;\n\t\t\t\t\tif(!hidden && !th)\n\t\t\t\t\t\tamountToLoad++;\n\n\t\t\t\t\tth && th.setHidden(this.categoryID, hidden);\n\t\t\t\t}\n\t\t\t\tamountToLoad && this._startLoadingThs(amountToLoad);\n\t\t\t}\n\n\t\t\tthis.showMoreDisplayed = shouldLimit;\n\t\t}\n\n\t\tthis._updateCounter(count);\n\t\tthis._updateParallax();\n\t}\n\n\t_updateQuadOffset(th, val){\n\t\t\n\t\tth.updateGridPositions(th.getGrid(this.categoryID));\n\n\t\tvar rowSize = th.getGridRowSize(this.categoryID);\n\t\tvar colSize = th.getGridColumnSize(this.categoryID);\n\n\t\tval += rowSize > 1 ? rowSize : 0;\n\t\tval += colSize > 1 ? colSize : 0;\n\t\tval--;\n\n\t\treturn val;\n\t}\n\n\t_loadMoreThumbnails(customAmount){\n\t\tvar nextThumbnails = this.cachedThumbnails.splice(0, customAmount || model.thLoadConf.amount);\n\t\tfor(var i = 0, j = nextThumbnails.length; i < j; i++){\n\t\t\tvar th = nextThumbnails[i];\n\t\t\tth.addHiddenByCat(this.categoryID);\n\t\t\tthis.thumbnails.push(th);\n\t\t}\n\t\tthis.updateFGAndReRenderBet(nextThumbnails);\n\t\tthis.reset();\n\t}\n\n\t_filterByCCode(ths){\n\t\treturn ths.filter(th => th.isAllowedByCCode());\n\t}\n\n\t_calcEmptySpots(useLimit){\n\n\t\tvar colAmount = model.getThumbnailColAmount();\n\n\t\tvar limit = (useLimit && this.limit) ? this.limit : this.getRenderedThLength();\n\t\tlimit += this.quadThOffset;\n\n\t\tvar emptySpots = 0;\n\t\tvar res;\n\t\twhile(true){\n\t\t\tres = (limit + emptySpots) / colAmount;\n\t\t\tif(parseInt(res) === res)\n\t\t\t\tbreak;\n\t\t\telse\n\t\t\t\temptySpots++;\n\t\t}\n\n\t\treturn emptySpots;\n\t}\n\n\t_startLoadingThs(amountToLoad){\n\t\tthis._loadMoreThumbnails(amountToLoad);\n\t\tthis._loadThsByEmptySpots();\n\t}\n\n\t_loadThsByEmptySpots(){\n\t\tvar emptySpots = this._calcEmptySpots();\n\t\tif(emptySpots || !this.anyThRendered())\n\t\t\tthis._loadMoreThumbnails(emptySpots);\n\t}\n\n\t_updateParallax(){\n\t\tclearTimeout(this.parTimeout);\n\t\tif(this.isHidden) return;\n\t\tthis.parTimeout = setTimeout(() => model.dispatchEvent('UpdateParallax'), 500);\n\t}\n}\n\nexport default {\n\tcreate: params => {\n\t\tlet gl = reactive(new GameList(params));\n\t\tif(gl.lobbyHelperOrderId) gl.originalList = params.thumbnails;\n\t\telse gl.setupThumbnails(params.thumbnails, params.cacheAll);\n\t\treturn gl;\n\t},\n}","import model from \"@js/model.js\";\r\nimport controller from \"@js/controller/controller.js\";\r\nimport { nextTick } from \"vue\"\r\nimport gameListModel from \"@modelsjs/game-list-model.js\";\r\nimport { isObject } from \"@helpers/utils.js\";\r\n\r\nexport const CONSTANTS = {\r\n CAT_ID_SUFFIX: 'server-game-list-',\r\n};\r\n\r\nexport let propsConfig = {\r\n id: Number,\r\n label: String,\r\n inline: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n inlineRows: {\r\n type: Number,\r\n default: 0,\r\n },\r\n featuredGames: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n quadThsToTop: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n limit: {\r\n type: Number,\r\n default: 0,\r\n },\r\n categoryId: {\r\n type: [Number, String],\r\n default: null,\r\n },\r\n onResetLimitsUnderCondition: Function,\r\n spaceInBetween: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n titleHidden: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n fetchNewGames: {\r\n type: Object,\r\n default: null,\r\n },\r\n} \r\n\r\nlet uid = 0;\r\nexport default {\r\n props: propsConfig,\r\n data(){\r\n let glCatID = CONSTANTS.CAT_ID_SUFFIX + this.id + '-' + ++uid;\r\n \r\n return {\r\n isHidden: false,\r\n glCatID,\r\n gameList: gameListModel.create({\r\n categoryID: this.categoryId || glCatID,\r\n titleLabel: this.label,\r\n isHidden: false,\r\n inline: this.inline,\r\n inlineRows: this.inlineRows,\r\n quadThsToTop: this.quadThsToTop,\r\n limit: this.limit,\r\n onResetLimitsUnderCondition: this.onResetLimitsUnderCondition,\r\n spaceInBetween: this.spaceInBetween,\r\n titleHidden: this.titleHidden,\r\n }),\r\n }\r\n },\r\n created(){\r\n this.getProp('serverGameLists')?.push(this.gameList);\r\n model.dispatchEvent('ServerGameListsUpdated');\r\n },\r\n mounted(){\r\n this.$watch(() => this.gameList.isHidden, bool => this.isHidden = bool, {immediate: true});\r\n\r\n let observer = new IntersectionObserver(entires => {\r\n entires.every(entry => {\r\n if(!entry.isIntersecting) return true;\r\n\r\n observer.disconnect();\r\n observeEntry.call(this);\r\n \r\n return false;\r\n });\r\n });\r\n\r\n nextTick(() => observer.observe(this.$el));\r\n\r\n this.addEvent('LoginComplete', 'LogoutComplete', 'SetLang', () => {\r\n observer.disconnect();\r\n nextTick(() => observer.observe(this.$el));\r\n });\r\n\r\n function observeEntry(){\r\n if(model.observables.lobbyHelper.response){\r\n setupThs.call(this);\r\n return;\r\n }\r\n\r\n controller.requestLobbyHelper().then(() => setupThs.call(this));\r\n }\r\n\r\n function setupThs(){\r\n let ths = [];\r\n let item = model.observables.lobbyHelper.response.find(x => x.id == this.id);\r\n if(!item) return;\r\n \r\n let featuredGameItem = item.featured[0];\r\n if(featuredGameItem?.gameGroup){\r\n model.nLatestGamesByCat[featuredGameItem.gameGroup] ||= {};\r\n model.nLatestGamesByCat[featuredGameItem.gameGroup][this.categoryID] = 0;\r\n }\r\n\r\n let firstFeaturedId = controller.lobbyHelperBusiness.handleGame(featuredGameItem, null, this.categoryID);\r\n if(firstFeaturedId){\r\n let game = controller.getGameByID(firstFeaturedId);\r\n if(game){\r\n let th = controller.getThumbnail(game);\r\n this.featuredGames && th.setGrid(Object.assign({\r\n column: '1/3',\r\n row: '1/3',\r\n categoryID: this.categoryId || this.glCatID,\r\n }, game._tmpGrid));\r\n addTh.call(this, th);\r\n }\r\n }\r\n\r\n item.list?.forEach((game, index) => {\r\n if(game?.gameGroup){\r\n model.nLatestGamesByCat[game.gameGroup] ||= {};\r\n model.nLatestGamesByCat[game.gameGroup][this.categoryID] = 0;\r\n }\r\n\r\n let tmpId = controller.lobbyHelperBusiness.handleGame(game, null, this.categoryID);\r\n if(!tmpId) return;\r\n let id = (tmpId + '').trim().split(';').find(id => controller.getThumbnail(controller.getGameByID(id))?.isAllowedByCCode());\r\n addTh.call(this, controller.getThumbnail(controller.getGameByID(id)));\r\n });\r\n\r\n if(isObject(this.fetchNewGames)) controller.addRestLatestGames(ths, this.fetchNewGames.categoryID, this.fetchNewGames.amount);\r\n\r\n this.gameList.setupThumbnails(ths);\r\n\r\n function addTh(th){\r\n if(th && !ths.includes(th)) ths.push(th);\r\n }\r\n }\r\n },\r\n unmounted(){\r\n let serverGameLists = this.getProp('serverGameLists');\r\n if(!serverGameLists) return;\r\n\r\n let ind = serverGameLists.indexOf(this.gameList);\r\n ind !== -1 && serverGameLists.splice(ind, 1);\r\n },\r\n}","\n\n","import model from \"@js/model.js\";\r\nimport controller from \"@js/controller/controller.js\";\r\nimport { nextTick } from \"vue\"\r\nimport gameListModel from \"@modelsjs/game-list-model.js\";\r\nimport { isObject } from \"@helpers/utils.js\";\r\n\r\nexport const CONSTANTS = {\r\n CAT_ID_SUFFIX: 'server-game-list-',\r\n};\r\n\r\nexport let propsConfig = {\r\n id: Number,\r\n label: String,\r\n inline: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n inlineRows: {\r\n type: Number,\r\n default: 0,\r\n },\r\n featuredGames: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n quadThsToTop: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n limit: {\r\n type: Number,\r\n default: 0,\r\n },\r\n categoryId: {\r\n type: [Number, String],\r\n default: null,\r\n },\r\n onResetLimitsUnderCondition: Function,\r\n spaceInBetween: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n titleHidden: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n fetchNewGames: {\r\n type: Object,\r\n default: null,\r\n },\r\n} \r\n\r\nlet uid = 0;\r\nexport default {\r\n props: propsConfig,\r\n data(){\r\n let glCatID = CONSTANTS.CAT_ID_SUFFIX + this.id + '-' + ++uid;\r\n \r\n return {\r\n isHidden: false,\r\n glCatID,\r\n gameList: gameListModel.create({\r\n categoryID: this.categoryId || glCatID,\r\n titleLabel: this.label,\r\n isHidden: false,\r\n inline: this.inline,\r\n inlineRows: this.inlineRows,\r\n quadThsToTop: this.quadThsToTop,\r\n limit: this.limit,\r\n onResetLimitsUnderCondition: this.onResetLimitsUnderCondition,\r\n spaceInBetween: this.spaceInBetween,\r\n titleHidden: this.titleHidden,\r\n }),\r\n }\r\n },\r\n created(){\r\n this.getProp('serverGameLists')?.push(this.gameList);\r\n model.dispatchEvent('ServerGameListsUpdated');\r\n },\r\n mounted(){\r\n this.$watch(() => this.gameList.isHidden, bool => this.isHidden = bool, {immediate: true});\r\n\r\n let observer = new IntersectionObserver(entires => {\r\n entires.every(entry => {\r\n if(!entry.isIntersecting) return true;\r\n\r\n observer.disconnect();\r\n observeEntry.call(this);\r\n \r\n return false;\r\n });\r\n });\r\n\r\n nextTick(() => observer.observe(this.$el));\r\n\r\n this.addEvent('LoginComplete', 'LogoutComplete', 'SetLang', () => {\r\n observer.disconnect();\r\n nextTick(() => observer.observe(this.$el));\r\n });\r\n\r\n function observeEntry(){\r\n if(model.observables.lobbyHelper.response){\r\n setupThs.call(this);\r\n return;\r\n }\r\n\r\n controller.requestLobbyHelper().then(() => setupThs.call(this));\r\n }\r\n\r\n function setupThs(){\r\n let ths = [];\r\n let item = model.observables.lobbyHelper.response.find(x => x.id == this.id);\r\n if(!item) return;\r\n \r\n let featuredGameItem = item.featured[0];\r\n if(featuredGameItem?.gameGroup){\r\n model.nLatestGamesByCat[featuredGameItem.gameGroup] ||= {};\r\n model.nLatestGamesByCat[featuredGameItem.gameGroup][this.categoryID] = 0;\r\n }\r\n\r\n let firstFeaturedId = controller.lobbyHelperBusiness.handleGame(featuredGameItem, null, this.categoryID);\r\n if(firstFeaturedId){\r\n let game = controller.getGameByID(firstFeaturedId);\r\n if(game){\r\n let th = controller.getThumbnail(game);\r\n this.featuredGames && th.setGrid(Object.assign({\r\n column: '1/3',\r\n row: '1/3',\r\n categoryID: this.categoryId || this.glCatID,\r\n }, game._tmpGrid));\r\n addTh.call(this, th);\r\n }\r\n }\r\n\r\n item.list?.forEach((game, index) => {\r\n if(game?.gameGroup){\r\n model.nLatestGamesByCat[game.gameGroup] ||= {};\r\n model.nLatestGamesByCat[game.gameGroup][this.categoryID] = 0;\r\n }\r\n\r\n let tmpId = controller.lobbyHelperBusiness.handleGame(game, null, this.categoryID);\r\n if(!tmpId) return;\r\n let id = (tmpId + '').trim().split(';').find(id => controller.getThumbnail(controller.getGameByID(id))?.isAllowedByCCode());\r\n addTh.call(this, controller.getThumbnail(controller.getGameByID(id)));\r\n });\r\n\r\n if(isObject(this.fetchNewGames)) controller.addRestLatestGames(ths, this.fetchNewGames.categoryID, this.fetchNewGames.amount);\r\n\r\n this.gameList.setupThumbnails(ths);\r\n\r\n function addTh(th){\r\n if(th && !ths.includes(th)) ths.push(th);\r\n }\r\n }\r\n },\r\n unmounted(){\r\n let serverGameLists = this.getProp('serverGameLists');\r\n if(!serverGameLists) return;\r\n\r\n let ind = serverGameLists.indexOf(this.gameList);\r\n ind !== -1 && serverGameLists.splice(ind, 1);\r\n },\r\n}","import { nextTick } from \"vue\";\r\n\r\nexport default (() => {\r\n\tvar prevDisplDelay = 0;\r\n\tvar then = Date.now();\r\n\r\n\treturn {\r\n\t\tbeforeMount(element, binding){\r\n\t\t\tvar promo = binding.value;\r\n\r\n\t\t\tlet observer = new IntersectionObserver((entries) => {\r\n\t\t\t\tentries.every(entry => {\r\n\t\t\t\t\tif(!entry.isIntersecting) return true;\r\n\t\t\t\t\t\r\n\t\t\t\t\tsetInViewport();\r\n\t\t\t\t\tobserver.disconnect();\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t}, {\r\n\t\t\t\tthreshold: .18,\r\n\t\t\t});\r\n\r\n\t\t\tbinding.instance.vpObserver = observer;\r\n\r\n\t\t\tnextTick(() => observer.observe(element));\r\n\r\n\t\t\tfunction setInViewport(){\r\n\t\t\t\tlet now = Date.now();\r\n\t\t\t\tif(now - then >= 500){\r\n\t\t\t\t\tprevDisplDelay = 0;\r\n\t\t\t\t\tthen = now;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tpromo.displayDelay = prevDisplDelay;\r\n\t\t\t\tprevDisplDelay += .15;\r\n\t\t\t\tpromo.inViewport = true;\r\n\t\t\t}\r\n\t\t},\r\n\t\tunmounted: (__, binding) => binding.instance?.vpObserver?.disconnect(),\r\n\t};\r\n})();","\r\n\r\n","import { exec } from \"@helpers/utils.js\";\r\n\r\nexport default function(element, binding){ \r\n\tvar params = binding.value;\r\n\tif(!params)\r\n\t\treturn;\r\n\r\n\tif(typeof params.propName !== 'string')\r\n\t\tthrow \"Please specify the 'propName' param.\";\r\n\r\n\tvar propName = params.propName;\r\n\tvar parent = params.parent || binding.instance;\r\n\tvar props = params.props;\r\n\r\n\tif(typeof props !== 'object' || props === null)\r\n\t\tthrow \"Please specify the 'props' param. \";\r\n\r\n\tvar checkOffsetParent = params.checkOffsetParent;\r\n\tif(typeof checkOffsetParent !== 'boolean')\r\n\t\tcheckOffsetParent = true;\r\n\r\n\tparent[propName] = function(){\r\n\t\tvar res = {};\r\n\t\tvar selfFunct = parent[propName];\r\n\t\tif(checkOffsetParent ? element.offsetParent != null : true){\r\n\t\t\tfor(var key in props){\r\n\t\t\t\tvar val = props[key];\r\n\t\t\t\tvar valNew = null;\r\n\t\t\t\tif(typeof val === 'string') valNew = exec(val, element, jQuery);\r\n\t\t\t\telse if(typeof val === 'function') valNew = val.call(element, parent, jQuery, element);\r\n\t\t\t\telse if(typeof val === 'number') valNew = val;\r\n\t\t\t\tres[key] = valNew;\r\n\t\t\t\tselfFunct[key] = valNew;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n}","import model from \"@js/model.js\";\nimport cookieHelper from \"@helpers/cookie-helper.js\";\n\nexport default {\n\tmethods: {\n\t\tonAccept: function() {\n\t\t\tmodel.observables.cookieMsgShown = false;\n\t\t\tcookieHelper.set('cookie_law_informed', 1, 365);\n\t\t\tmodel.dispatchEvent('CookiesConfirmed');\n\t\t},\n\t},\n};","export const CookieLawMsg = {\r\n\t\"en\": \"We use {0} to ensure that you are having the best experience on our website. By continuing to browse this website you accept their use.\",\r\n\t\"el\": \"Χρησιμοποιούμε {0} για να διασφαλίζουμε ότι η εμπειρία σας στο website μας είναι η καλύτερη δυνατή. Συνεχίζοντας την περιήγησή σας αποδέχεστε τη χρήση τους.\",\r\n\t\"de\": \"Wir verwenden {0} um ein optimales Nutzungserlebnis auf unserer Website sicherzustellen. Durch die weitere Nutzung dieser Website stimmst der Verwendung von Cookies zu.\",\r\n\t\"tr\": \"Web sitemizde en iyi deneyimi yaşadığınızdan emin olmak için {0} kullanıyoruz. Bu web sitesine göz atmaya devam ederek kullanımlarını kabul etmiş sayılırsınız.\",\r\n\t\"es\": \"Utilizamos {0} para asegurarnos de optimizar tu experiencia en nuestro sitio web. Al continuar navegando en este sitio web estás aceptando su uso.\"\r\n}\r\n\r\nexport const FundCookieLawMsg = {\r\n\t\"en\": \"Cookies are too earthy, but we use them to give you full access to the Fun Source and enhance your gaming experience. {0}\",\r\n\t\"es\": \"Las cookies son demasiado terrenales, pero las usamos para brindarte acceso completo a la Fuente de Diversión y mejorar tu experiencia de juego. {0}\"\r\n}\r\n\r\nexport const CookiePlural = {\r\n\t\"en\": \"Cookies\",\r\n\t\"tr\": \"çerezleri\",\r\n\t\"el\": \"Cookies\",\r\n\t\"de\": \"Cookies\",\r\n\t\"es\": \"Cookies\"\r\n}","\n\n","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport { addQueryStringValues, getParameterByName, isObject } from \"@helpers/utils.js\"\nimport { confirm_label, WOF_Promo_Cancel_Confirmation_Msg } from \"@lang/misc.js\";\n\nexport default {\n\tdata(){\n\t\treturn {\n\t\t\tdisplayed: false,\n\t\t\turl: null,\n\t\t\tinnerHeight: 0,\n\t\t\tiframeWidth: 0,\n\t\t\tiframeHeight: 0,\n\t\t\twrapperTransform: '',\n\t\t}\n\t},\n\tmethods: {\n\t\tonClose: function() {\n\t\t\tmodel.observables.wofDisplayed = false;\n\t\t},\n\t\tonLoad: function(event) {\n\t\t\tthis.iframeElement?.contentWindow.postMessage({type: 'ExternalCss', css: this._externalCss}, '*');\n\t\t\tthis.requestDocDims();\n\t\t},\n\t\trequestDocDims(){\n\t\t\tthis.iframeElement?.contentWindow?.postMessage({\n\t\t\t\ttype: 'RequestDocDims',\n\t\t\t}, '*');\n\t\t},\n\t\t_scaleWOFWindow(docWidth, docHeight) {\n\t\t\tthis.iframeWidth = docWidth;\n\t\t\tthis.iframeHeight = docHeight;\n\n\t\t\tthis.innerHeight = docHeight;\n\n\t\t\tif (!model.isMobile) return;\n\n\t\t\tvar ww = window.innerWidth;\n\t\t\tvar wh = window.innerHeight;\n\n\t\t\tvar scale = Math.min(ww / docWidth, wh / docHeight);\n\n\t\t\tif (ww > wh) scale = Math.min(ww / docHeight, wh / docWidth);\n\n\t\t\tthis.wrapperTransform = 'translateX(-50%) translateY(-50%) scale(' + scale + ')';\n\t\t}\n\t},\n\tcreated() {\n\t\tmodel.pushLang({\n\t\t\tconfirm_label,\n\t\t\tWOF_Promo_Cancel_Confirmation_Msg,\n\t\t});\n\n\t\tthis._resizeCallbackAdded = false;\n\t\tthis._externalCss = null;\n\n\t\tif(!model.urls.wof) return;\n\n\t\tthis.$watch(() => model.observables.wofDisplayed, (bool) => {\n\t\t\tmodel.wheelDisplayed = bool;\n\n\t\t\tif (bool) return;\n\n\t\t\tmodel.dispatchEvent('ForceUpdateThState');\n\t\t\tthis.url = 'about:blank';\n\t\t\tmodel.dispatchEvent('DisplayAllMsgs');\n\t\t});\n\n\t\tvar promoId = null, wheelPromo = null, tim = null;\n\n\t\tmodel.on('GetPlayerInfoLoaded', 'LoginComplete', () => {\n\t\t\tclearTimeout(tim);\n\t\t\ttim = setTimeout(() => sessionStorage.removeItem('avoid-wheel-login'), 250);\n\n\t\t\tif (model.observables.wofDisplayed)\n\t\t\t\treturn;\n\n\t\t\tif (!model.promotions || !model.promotions.playerPromotion){\n\t\t\t\tmodel.observables.wofDisplayable = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twheelPromo = controller.getWOFPromo();\n\t\t\tmodel.observables.wofDisplayable = Boolean(wheelPromo);\n\n\t\t\tif (!wheelPromo) return;\n\n\t\t\tpromoId = wheelPromo.id;\n\n\t\t\tif(model.minigamesConfig?.find(x => x.promoIDs?.includes?.(promoId) || x.promoIDs == promoId)){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmodel.wofPromoId = promoId;\n\n\t\t\tcontroller.closeAllModals();\n\t\t\tmodel.dispatchEvent('RemoveAllQueuedMsgs');\n\n\t\t\tif(sessionStorage.getItem('avoid-wheel-login') == 'true'){\n\t\t\t\tsessionStorage.removeItem('avoid-wheel-login');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet targetNotif = model.promoNotifList[promoId];\n\t\t\tif(targetNotif?.noDeposit){\n\t\t\t\tcontroller.getNotification(43, {\n\t\t\t\t\tpromotionId: promoId,\n\t\t\t\t\tclaimed: false,\n\t\t\t\t}, {id: 'NoDeposit', avoidPromoListReq: true, extraBtnConfig: {playNow: {onClick: () => controller.openWOF()}}});\n\t\t\t}\n\t\t\telse showWOF.call(this);\n\n\t\t\tmodel.on('ShowWOF', () => showWOF.call(this));\n\n\t\t\tfunction showWOF(){\n\t\t\t\tif(!model.observables.wofDisplayable) return;\n\t\t\t\tloadIframe.call(this);\n\t\t\t}\n\t\t});\n\n\t\tif(import.meta.env.DEV){\n\t\t\twindow.openEmptyWOF = () => {\n\t\t\t\twheelPromo = {};\n\t\t\t\tloadIframe.call(this);\n\t\t\t}\n\t\t}\n\n\t\tfunction loadIframe(){\n\t\t\tmodel.dispatchEvent('HideAllMsgs');\n\t\t\tmodel.observables.wofDisplayed = true;\n\t\t\tlet url = model.urls.wof;\n\t\t\tconst extCss = import.meta.glob('@css/wof-iframe-*.scss', {query: {inline: ''}});\n\t\t\textCss[Object.keys(extCss).find(x => x.includes(`wof-iframe-${model.siteKey}`))]().then(module => {\n\t\t\t\tif(isObject(url)){\n\t\t\t\t\tObject.keys(url).forEach(strKeys => {\n\t\t\t\t\t\tif(strKeys == 'default' || !strKeys.includes(',')) return;\n\n\t\t\t\t\t\tlet val = url[strKeys];\n\t\t\t\t\t\tlet keys = strKeys.split(',');\n\n\t\t\t\t\t\tkeys.forEach(key => {\n\t\t\t\t\t\t\turl[key] = val;\n\t\t\t\t\t\t\tmodel.urls.wof[key] = val;\n\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t\tdelete url[strKeys];\n\t\t\t\t\t\tdelete model.urls.wof[strKeys];\n\t\t\t\t\t});\n\t\t\t\t\turl = url[promoId] || url.default;\n\t\t\t\t}\n\n\t\t\t\tif(!url.toLowerCase().includes('fund')) this._externalCss = module.default;\n\n\t\t\t\tlet query = {\n\t\t\t\t\t'lang': model.lang,\n\t\t\t\t\t'subType': wheelPromo.subType,\n\t\t\t\t\t'currencyIcon': model.getCurrency().symbol_native,\n\t\t\t\t\t'currencyCode': model.getCurrency().code,\n\t\t\t\t\t'segments': wheelPromo.wheel_segments,\n\t\t\t\t\t'promoId': promoId,\n\t\t\t\t};\n\t\t\t\tlet notif = model.promoNotifList[promoId];\n\t\t\t\tif(notif?.pushGameName){\n\t\t\t\t\tlet name = self.controller.getGameByID(notif.gameId)?.name;\n\t\t\t\t\tif(name) query.gameName = name;\n\t\t\t\t}\n\n\t\t\t\tthis.url = addQueryStringValues(url, query);\n\t\t\t});\n\t\t}\n\n\t\tmodel.on('LogoutComplete', () => model.observables.wofDisplayed = false);\n\n\t\tmodel.on('HandleBonusMultiplierWheel', e => {\n\t\t\tif (!model.promotionWheel) return;\n\n\t\t\tvar deactivated = model.promotionWheel.deactivated;\n\t\t\tif (typeof deactivated !== 'boolean') deactivated = false;\n\n\t\t\tif (deactivated) {\n\t\t\t\tmodel.observables.wofDisplayed = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar hasFS = Boolean(model.promotionWheel.freeSpins);\n\n\t\t\tvar amount = null;\n\t\t\tvar price = null;\n\t\t\tif (hasFS) {\n\t\t\t\tamount = model.promotionWheel.freeSpins;\n\t\t\t\tprice = model.promotionWheel.price || model.promotionWheel.freeSpins;\n\t\t\t} else {\n\t\t\t\tamount = model.formatAsCurrency(model.promotionWheel.amount);\n\t\t\t\tprice = model.promotionWheel.price;\n\t\t\t}\n\n\t\t\tthis.iframeElement?.contentWindow.postMessage({\n\t\t\t\ttype: 'HandleResponse', \n\t\t\t\tdata: {\n\t\t\t\t\tpromoId,\n\t\t\t\t\tprice,\n\t\t\t\t\tamount,\n\t\t\t\t\t_gameId: model.promotionWheel.game,\n\t\t\t\t\t_hasFS: hasFS,\n\t\t\t\t},\n\t\t\t}, '*');\n\n\t\t\tmodel.observables.wofDisplayable = Boolean(controller.getWOFPromo());\n\t\t});\n\n\t\tmodel.on('PostMessageReceived', e => {\n\t\t\tif (!e.event.data) return;\n\n\t\t\tvar data = e.event.data;\n\n\t\t\tif(data.type == 'WOF_IFrameLoaded'){\n\t\t\t\tthis.requestDocDims();\n\t\t\t}\n\t\t\tif (data.type == 'WOF_SpinStarted') {\n\t\t\t\tmodel.refreshCMeter = false;\n\t\t\t\tcontroller.sendWOFRequest(promoId, false);\n\t\t\t} else if (data.type == 'WOF_SpinEnded') {\n\t\t\t\tmodel.refreshCMeter = true;\n\n\t\t\t\tif (!model.promotionWheel) return;\n\n\t\t\t\tmodel.dispatchEvent('UpdateCreditMeter');\n\t\t\t} else if (data.type == 'WOF_Close') {\n\t\t\t\tmodel.observables.wofDisplayed = false;\n\t\t\t\tif (data.gameId) controller.startGame(data.gameId);\n\t\t\t} else if (data.type == 'WOF_Deactivate') {\n\t\t\t\tcontroller.showNotification({\n\t\t\t\t\ttitle: model.getStr('Info'),\n\t\t\t\t\ttext: model.getStr('WOF_Promo_Cancel_Confirmation_Msg'),\n\t\t\t\t\tbuttons: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: Enum.ButtonTypes.SUCCESS,\n\t\t\t\t\t\t\tlabel: model.getStr('confirm_label'),\n\t\t\t\t\t\t\tonClick: () => controller.sendWOFRequest(promoId, true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: Enum.ButtonTypes.INFO,\n\t\t\t\t\t\t\tlabel: model.getStr('Close'),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t} else if (data.type == 'WOF_PlayLater') {\n\t\t\t\tmodel.observables.wofDisplayed = false;\n\t\t\t\tgetParameterByName('wofgpitest') == 'true' && controller.sendGetPlayerInfo();\n\t\t\t}\n\t\t\telse if(data.type == 'WOF_IFrameSize'){\n\t\t\t\tthis._scaleWOFWindow(data.dims.docWidth, data.dims.docHeight);\n\t\t\t}\n\t\t});\n\n\t\twindow.addEventListener('resize', () => this.requestDocDims());\n\t},\n};","\r\n\r\n","import Enum from \"@shared/enum.js\";\nexport function setupAttachPropsObj($root){\n return {\n value(){\n let $element = $(this);\n let val = 0;\n\n if ($root.model.isUI('FUND')) {\n if ($root.model.isView(Enum.Views.MAIN)) {\n if ($root.model.observables.activePage == Enum.Pages.LOBBY) {\n if ($root.model.observables.filterDisplayed) {\n val = $element.offset().top;\n }\n else {\n let $subnav = $element.next().find('.sub-nav');\n let $visibleGL = $('.game-list:not(\".hidden\")');\n let gameListOffset = $visibleGL.hasClass('sub-cat') ? $visibleGL.offset() : $visibleGL.find('.game-list-inner').offset();\n val = (gameListOffset?.top && $subnav.length > 0) ? gameListOffset.top - $subnav.outerHeight(true) : $element.offset().top;\n }\n }\n else val = $element.offset().top + $element.outerHeight(false);\n }\n }\n else val = $element.offset().top;\n\n return Math.ceil(val - ($root.fixedTop.value || 0));\n },\n };\n};","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport { reactive } from \"vue\"\nimport Enum from \"@shared/enum.js\";\nimport { CategoryMainnavModel } from \"@modelsjs/nav-model.js\";\nimport { gsap } from \"gsap\";\n\nexport default {\n\tprops: {\n\t\tattached: Boolean,\n\t},\n\tdata(){\n\t\treturn {\n\t\t\tfilterFeature: null,\n\t\t\tiScrollList: [],\n\t\t\tcatsVisible: false,\n\t\t\tnavRendered: false,\n\t\t\tmainNavTabs: [],\n\t\t\tsubNavTabs: [],\n\t\t}\n\t},\n\tmethods: {\n\t\tonMainCatClick(mainCategory) {\n\t\t\tvar level1 = model.currCatIds.level1,\n\t\t\t\tlevel2 = null;\n\n\t\t\tif (mainCategory.triggerCatId) {\n\t\t\t\tvar cat = controller.getCatByCatID(mainCategory.triggerCatId);\n\t\t\t\tif (cat.parent) {\n\t\t\t\t\tlevel1 = cat.parent.id;\n\t\t\t\t\tj\n\t\t\t\t\tlevel2 = cat.id;\n\t\t\t\t} else {\n\t\t\t\t\tlevel1 = cat.id;\n\t\t\t\t\tif (cat.categories && cat.categories.length > 0)\n\t\t\t\t\t\tlevel2 = cat.categories[0].id;\n\t\t\t\t}\n\t\t\t} else\n\t\t\t\tlevel2 = mainCategory.id;\n\n\t\t\tcontroller.gotoCategory({\n\t\t\t\tlevel1: level1,\n\t\t\t\tlevel2: level2,\n\t\t\t});\n\t\t},\n\t\tonSubCatClick(subCategory) {\n\t\t\tcontroller.gotoCategory({\n\t\t\t\tlevel1: model.currCatIds.level1,\n\t\t\t\tlevel2: subCategory.parentId,\n\t\t\t\tlevel3: subCategory.id,\n\t\t\t});\n\t\t},\n\t\tonOpenFilter() {\n\t\t\tmodel.dispatchEvent('OpenFilterSubNav');\n\t\t},\n\t\t_refreshAllIScrolls() {\n\t\t\tfor (var i = 0, j = this.iScrollList.length; i < j; i++) {\n\t\t\t\tvar iscroll = this.iScrollList[i];\n\t\t\t\tiscroll.refresh();\n\t\t\t}\n\t\t},\n\t\t_scrollToGameNav(forceScroll, animated) {\n\t\t\tlet timeout = model.vue.root.anyBannerPages ? 0 : 100; //should find a better solution\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tvar subNavTop = this.$parent.$parent.subNavScrollTop;\n\t\t\t\tsubNavTop();\n\t\t\t\tvar _subNavScrollTop = subNavTop.value;\n\t\t\t\tvar currScrollTop = $(document).scrollTop();\n\t\t\t\tvar shouldScroll = forceScroll || currScrollTop > _subNavScrollTop;\n\t\t\t\tif (shouldScroll) {\n\t\t\t\t\tif (!animated) $(document).scrollTop(_subNavScrollTop);\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (this.scrollTween) {\n\t\t\t\t\t\t\tthis.scrollTween.kill();\n\t\t\t\t\t\t\tthis.scrollTween = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar obj = {\n\t\t\t\t\t\t\tscrollTop: currScrollTop\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.scrollTween = gsap.to(obj, {\n\t\t\t\t\t\t\tduration: .5,\n\t\t\t\t\t\t\tscrollTop: _subNavScrollTop,\n\t\t\t\t\t\t\tonUpdate: () => $(document).scrollTop(obj.scrollTop),\n\t\t\t\t\t\t\tonComplete: () => this.scrollTween = null,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, timeout);\n\t\t},\n\t\t_setupMainNavTabs() {\n\t\t\tswitch (model.view) {\n\t\t\t\tcase Enum.Views.MAIN:\n\t\t\t\t\tsetupCats.call(this, model.categories.level2);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tfunction setupCats(cats) {\n\t\t\t\tfor (var i = 0, j = cats.length; i < j; i++) {\n\t\t\t\t\tvar cat = cats[i];\n\t\t\t\t\tif (typeof cat.partOfNav === 'boolean' && !cat.partOfNav) continue;\n\t\t\t\t\tvar navItem = reactive(new CategoryMainnavModel({\n\t\t\t\t\t\tid: cat.id,\n\t\t\t\t\t\tname: cat.name,\n\t\t\t\t\t\tlangLabel: cat.label,\n\t\t\t\t\t\tparentId: cat.parentId,\n\t\t\t\t\t\tauth: cat.auth,\n\t\t\t\t\t\tcategories: cat.categories,\n\t\t\t\t\t\tpage: cat.page,\n\t\t\t\t\t\ttriggerCatId: cat.triggerCatId,\n\t\t\t\t\t\tdisabledForLang: cat.disabledForLang,\n\t\t\t\t\t\tenabledForLang: cat.enabledForLang,\n\t\t\t\t\t\tposBySubDomain: cat.posBySubDomain,\n\t\t\t\t\t\tnavRendered: cat.navRendered,\n\t\t\t\t\t}));\n\t\t\t\t\tthis.mainNavTabs.push(navItem);\n\t\t\t\t}\n\t\t\t\tthis.mainNavTabs.sort((c1, c2) => this._sortGamesBySubDomain(c1, c2));\n\t\t\t}\n\t\t},\n\t\t_sortGamesBySubDomain(c1, c2) {\n\t\t\tvar cPos1 = c1?.posBySubDomain?.[model.subDomain];\n\t\t\tvar cPos2 = c2?.posBySubDomain?.[model.subDomain];\n\n\t\t\tif (!cPos1 || !cPos2) return 0;\n\t\t\treturn cPos1 - cPos2;\n\t\t},\n\t\t_setupSubNavTabs() {\n\t\t\tfor (var i = 0, j = model.categories.level3.length; i < j; i++) {\n\t\t\t\tvar cat = model.categories.level3[i];\n\t\t\t\tif (cat.parent && cat.parent.catsAsGameLists) continue;\n\n\t\t\t\tthis.subNavTabs.push(reactive(new CategoryMainnavModel({\n\t\t\t\t\tid: cat.id,\n\t\t\t\t\tname: cat.name,\n\t\t\t\t\tlangLabel: cat.label,\n\t\t\t\t\tparentId: cat.parentId,\n\t\t\t\t\tauth: cat.auth,\n\t\t\t\t\tcategories: cat.categories,\n\t\t\t\t\tpage: cat.page,\n\t\t\t\t\ttriggerCatId: cat.triggerCatId,\n\t\t\t\t})));\n\t\t\t}\n\t\t},\n\t\t_selectCategory(level1, level2, level3) {\n\t\t\tvar targetMainCat = null;\n\t\t\tvar atLeastOneVisible = false;\n\n\t\t\tthis.mainNavTabs.forEach(cat => {\n\t\t\t\tvar hidden = cat.parentId != level1;\n\t\t\t\tcat.hidden = hidden;\n\n\t\t\t\tvar active = cat.id == level2 && !hidden;\n\t\t\t\tcat.active = active;\n\n\t\t\t\tif (!hidden) atLeastOneVisible = true;\n\t\t\t\tif (active) targetMainCat = cat;\n\t\t\t});\n\n\t\t\tif (!atLeastOneVisible) {\n\t\t\t\tvar firstLvl1CatWithCats = model.categories.level1.find(cat => Array.isArray(cat.categories) && cat.categories.length > 0);\n\t\t\t\tfirstLvl1CatWithCats && this.mainNavTabs.forEach(cat => cat.hidden = cat.parentId != firstLvl1CatWithCats.id);\n\t\t\t}\n\n\t\t\tif (!targetMainCat) {\n\t\t\t\ttargetMainCat = this.mainNavTabs.find(cat => cat.parentId == level1);\n\t\t\t\ttargetMainCat && (targetMainCat.active = true);\n\t\t\t}\n\n\t\t\tthis.subNavTabs.forEach(cat => {\n\t\t\t\tvar hidden = targetMainCat ? (cat.parentId !== targetMainCat.id) : true;\n\t\t\t\tcat.hidden = hidden;\n\t\t\t\tcat.active = level3 ? cat.id == level3 : false;\n\t\t\t});\n\n\t\t\tthis.navRendered = this._getNavRenderedState();\n\t\t\tmodel.dispatchEvent('UpdateCreditMeter', 'UpdateActiveTab');\n\t\t},\n\t\t_getNavRenderedState() {\n\t\t\tif (model.isView(Enum.Views.MAIN)) {\n\t\t\t\treturn [\n\t\t\t\t\tEnum.Pages.LOBBY,\n\t\t\t\t\tEnum.Pages.TOP_LIST,\n\t\t\t\t\tEnum.Pages.TOP_LIST_LIVE,\n\t\t\t\t].includes(model.observables.activePage);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\t},\n\tmounted(){\n\t\tif(model.isMobile || !model.isUI('FUND')) return;\n\t\t\n\t\tthis.$watch(() => model.observables.filterDisplayed, value => {\n\t\t\tlet $searchByName = $(this.$refs['search-by-name']);\n\t\t\tvalue && $searchByName.focus();\n\t\t});\n\t},\n\tcreated() {\n\t\tthis.filterFeature = model.filterActive && model.isView(Enum.Views.MAIN) && (model.isUI('FUND') ? !model.isMobile : !model.isApp);\n\n\t\tthis.$watch('navRendered', () => {\n\t\t\tmodel.dispatchEvent('NavRendered');\n\t\t});\n\n\t\tthis.addEvent('SetLang', () => {\n\t\t\tthis.mainNavTabs.sort((c1, c2) => this._sortGamesBySubDomain(c1, c2));\n\t\t});\n\n\t\tthis.addEvent('OpenFilterSubNav', () => {\n\t\t\tmodel.dispatchEvent('OpenFilter', {\n\t\t\t\tnavAttached: model.observables.subNavAttached,\n\t\t\t});\n\t\t\tvar shouldScroll = !model.observables.subNavAttached ? (!model.observables.filterCompLoaded || model.observables.filterDisplayed) : true;\n\t\t\tshouldScroll && model.dispatchEvent('ScrollToGameNav', {\n\t\t\t\tforceScroll: true,\n\t\t\t\tanimated: true,\n\t\t\t});\n\t\t\tmodel.dispatchEvent('ForceResize');\n\t\t});\n\n\t\tthis.navRendered = this._getNavRenderedState();\n\n\t\tthis.addEvent('IScrollAdded', (e) => {\n\t\t\tif (['mainnavIScroll', 'subnavIScroll'].includes(e.variableName))\n\t\t\t\tthis.iScrollList.push(e.instance);\n\t\t});\n\n\t\tthis.addEvent('ScrollToGameNav', (e) => {\n\t\t\tthis._scrollToGameNav(e.forceScroll, e.animated);\n\t\t});\n\n\t\tthis.addEvent('FilterDisplayed', (e) => {\n\t\t\tsetTimeout(() => this._refreshAllIScrolls(), 0);\n\t\t});\n\n\t\tif (model.isView(Enum.Views.MAIN)) {\n\t\t\tcontroller.whenAppReady(() => {\n\t\t\t\tthis.addEvent('GoToCategory', 'ForceActiveCat', (e) => {\n\t\t\t\t\tthis._selectCategory(e.ids.level1, e.ids.level2, e.ids.level3);\n\n\t\t\t\t\tvar scroll = e.scroll;\n\t\t\t\t\tif (typeof scroll !== 'boolean')\n\t\t\t\t\t\tscroll = true;\n\n\t\t\t\t\tif (model.observables.activePage !== Enum.Pages.MAINHOME)\n\t\t\t\t\t\tscroll && this._scrollToGameNav(e.forceScroll, e.animated);\n\t\t\t\t\telse\n\t\t\t\t\t\t$(document).scrollTop(0);\n\t\t\t\t});\n\n\t\t\t\tsetupTabs.call(this);\n\t\t\t});\n\t\t} \n\n\t\tfunction setupTabs() {\n\t\t\tthis._setupMainNavTabs();\n\t\t\tthis._setupSubNavTabs();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.catsVisible = true;\n\t\t\t\tsetTimeout(() => this._refreshAllIScrolls());\n\t\t\t}, 0);\n\n\t\t\tthis._selectCategory(model.currCatIds.level1, model.currCatIds.level2, model.currCatIds.level3);\n\t\t}\n\t},\n};","\r\n\r\n","import model from \"@js/model.js\";\r\n\r\nexport default {\r\n\tbeforeMount(element){\r\n\t\tif(!model.urls.x1 || !model.userProfile) return;\r\n\r\n\t\tvar X1_TEMPLATE = '\\\r\n\t\t\t
\\\r\n\t\t\t\\\r\n\t\t';\r\n\r\n\t\tsetTimeout(() => $(element).append(X1_TEMPLATE), 0);\r\n\t},\r\n}","import model from \"@js/model.js\";\r\nimport controller from \"@js/controller/controller.js\";\r\nexport default {\r\n data(){\r\n return {\r\n transactionDone: false,\r\n timeout: null,\r\n };\r\n },\r\n created(){\r\n window.x1TransDoneTest = () => {this.transactionDone = true};\r\n },\r\n methods: {\r\n onPostMessageReceived(e){\r\n var data = e.event.data;\r\n if(typeof data !== \"string\") return;\r\n\r\n if(data.startsWith('SetHeight:')){\r\n $(document).scrollTop(0);\r\n }\r\n\r\n if(this._isTestPlayer() && data.toLowerCase().includes('step:success')){\r\n this.timeout = setTimeout(() => this.transactionDone = true, 3000);\r\n }\r\n },\r\n onServerResponseSuccess(){\r\n if(!model.x1NotifRecieved || !this._isTestPlayer()) return;\r\n\r\n clearTimeout(this.timeout);\r\n controller.gotoCategory({level1: model.categories.level1[0].id}, {forceScroll: false}); \r\n $(document).scrollTop(0);\r\n\r\n delete model.x1NotifRecieved;\r\n },\r\n _isTestPlayer(){\r\n if(!model.userProfile) return false;\r\n return ['1000000000000010801', '1100000000000002966', '1300000000000002876', '1300000000000001681'].includes(model.userProfile.partnerId);\r\n }\r\n },\r\n};","\r\n\r\n","import model from \"@js/model.js\";\nexport default {\r\n\tcreated(){\r\n\t\tif(typeof this.scaleElements === 'function') {\r\n\t\t\tmodel.on('WindowResize', (e) => {\r\n\t\t\t\tthis.scaleElements();\r\n\t\t\t\tsetTimeout(() => this.scaleElements(), 0);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n};","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport Enum from \"@shared/enum.js\";\n\nimport gameListModel from \"@modelsjs/game-list-model.js\";\nimport BaseContent from \"./base-content.js\";\n\nexport default {\n mixins: [BaseContent],\n data(){\n return {\n fundHome: (() => {\n let data = {\n mainHomeGLs: {\n bombaJPGames: gameListModel.create({\n categoryID: 'bomba-jp-games',\n isHidden: false,\n inline: true,\n forcedColAmount: 3,\n spaceInbetween: false,\n }),\n speedGames: gameListModel.create({\n categoryID: 'speed-live-games',\n title: 'Speed',\n isHidden: false,\n inline: true,\n }),\n },\n jps: {\n microgaming: {\n amount: 0,\n currencyCode: 'EUR',\n },\n netent: {\n amount: 0,\n currencyCode: 'EUR',\n },\n },\n maxJPAmount: null,\n };\n \n for(var i = 1; i <= 7; i++){\n data.mainHomeGLs['section' + i + 'Loaded'] = {value: false};\n }\n\n return data;\n })()\n };\n },\n methods: {\n _initMainHomeContent(){\n let mainHomeGLs = this.fundHome.mainHomeGLs;\n let jps = this.fundHome.jps;\n \n model.on('ListUpdated_microgamingJackpot', (e) => {\n var res = 0;\n var pastProgIds = [];\n if(Array.isArray(e.data) && e.data.length > 0) {\n jps.microgaming.currencyCode = e.data[0].currencyIsoCode;\n }\n e.data.forEach(item => {\n if(item.gamePayId != Enum.MGS_JP_GAME_PAY_ID || pastProgIds.includes(item.progressiveId)) return;\n \n res += item.endAtValue;\n !pastProgIds.includes(item.progressiveId) && pastProgIds.push(item.progressiveId);\n });\n jps.microgaming.amount = res;\n });\n \n model.on('ListUpdated_netEntJackpot', (e) => {\n var res = 0;\n if(Array.isArray(e.data) && e.data.length > 0) {\n var firstItem = e.data[0];\n jps.netent.currencyCode = firstItem.currentJackpotValue && firstItem.currentJackpotValue.amountCurrencyISOCode;\n }\n e.data.forEach(item => res += item.currentJackpotValue.amount);\n jps.netent.amount = res;\n });\n \n model.on('JackpotInfoComplete', () => {\n let jpVals = Object.keys(model.jackpotList || {}).map(key => model.jackpotList[key].freez);\n jpVals.sort((n1, n2) => n2 - n1);\n let maxVal = Number(jpVals[0]);\n if(isNaN(maxVal)) maxVal = 0;\n \n maxVal /= 100;\n maxVal = Math.ceil(maxVal / 1000);\n this.fundHome.maxJPAmount = `${maxVal}k`;\n });\n \n controller.whenAppReady(() => {\n mainHomeGLs.bombaJPGames.setupThumbnails((() => {\n var ths = [];\n [6, 14, 9, 8, 52, 53].forEach(id => {\n var th = controller.getThumbnail(controller.getGameByID(id));\n th && ths.push(th);\n });\n return ths;\n })());\n \n mainHomeGLs.speedGames.setupThumbnails((() => {\n var ths = [];\n model.games.filter(game => !game.hasPlayFun && game.name.toLowerCase().includes('speed')).forEach(game => {\n var th = controller.getThumbnail(game);\n th && ths.push(th);\n });\n return ths;\n })());\n });\n },\n },\n};","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport { isObject } from \"@helpers/utils.js\"\nimport Enum from \"@shared/enum.js\";\n\nimport gameListModel from \"@modelsjs/game-list-model.js\";\nimport BaseContent from \"./base-content.js\";\n\nexport default {\n\tmixins: [BaseContent],\n\tdata(){\n\t\treturn {\n\t\t\tcategoryName: {\n\t\t\t\tlabel: null,\n\t\t\t\tname: null,\n\t\t\t},\n\t\t\tcompGameFilter: null,\n\t\t};\n\t},\n\tmethods: {\n\t\t_initGameContent(){\n\t\t\tmodel.on('SetFilterParent', e => {\n\t\t\t\tthis.compGameFilter = e.value;\n\t\t\t});\n\n\t\t\tmodel.on('SetLang', 'GetPlayerInfoLoaded', 'GoToCategory', (e) => {\n\t\t\t\tthis._updateThumbnailState(e.eventName !== 'GoToCategory');\n\t\t\t});\n\t\n\t\t\tmodel.on('LogoutComplete', 'UserProfileLoaded', 'LoginComplete', (e) => {\n\t\t\t\tthis._updateThumbnailState();\n\t\t\t\tthis.gameListEnabled = true;\n\t\t\t});\n\t\n\t\t\tmodel.on('ForceUpdateThState', () => {\n\t\t\t\tthis._updateThumbnailState();\n\t\t\t});\n\t\n\t\t\tmodel.on('EnableGameList', () => {\n\t\t\t\tthis.gameListEnabled = true;\n\t\t\t});\n\t\n\t\t\tmodel.on('GoToCategory', onGoToCategory.bind(this));\n\t\t\tmodel.on('UpdateFilter', () => this._resetOpeningHoursInterval());\n\t\t\tmodel.on('OpenPage', 'UpdateFilter', () => this._resetAllLimits());\n\t\n\t\t\tonGoToCategory.call(this, {\n\t\t\t\tids: model.currCatIds,\n\t\t\t});\n\t\n\t\t\tfunction onGoToCategory(e) {\n\t\t\t\tvar catId = e.ids.level3 ? e.ids.level3 : e.ids.level2;\n\t\t\t\tvar level = e.ids.level3 ? 3 : 2;\n\t\t\t\t\n\t\t\t\tthis._displayThumbnailsByCategory(catId, level);\n\t\t\t\tthis._resetOpeningHoursInterval();\n\t\n\t\t\t\tif(model.isUI('FUND')){\n\t\t\t\t\tvar cat = controller.getCatByCatID(catId, level);\n\t\t\t\t\tif(cat && (cat.catsAsGameLists || (cat.id + '').toLowerCase().includes(\"tournaments\"))){\n\t\t\t\t\t\tif(cat.name){\n\t\t\t\t\t\t\tthis.categoryName.name = cat.name;\n\t\t\t\t\t\t\tthis.categoryName.label = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if(cat.label){\n\t\t\t\t\t\t\tthis.categoryName.name = null;\n\t\t\t\t\t\t\tthis.categoryName.label = cat.label;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tthis.categoryName.name = null;\n\t\t\t\t\t\tthis.categoryName.label = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcreateGameListById(cat){\n\t\t\treturn this._createGameList(cat, true, false);\n\t\t},\n\t\tscaleElements(){\n\t\t\tthis._resetAllLimits();\n\t\t},\n\t\t_resetAllLimits(){\n\t\t\tfor(var i = 0, j = this.gameListsWithLimit.length; i < j; i++){\n\t\t\t\tvar gameList = this.gameListsWithLimit[i];\n\t\t\t\tif(model.currCatIds.level2 == gameList.categoryID){\n\t\t\t\t\tgameList.reset();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t_resetOpeningHoursInterval(){\n\t\t\tthis._updateOpeningHours();\n\t\t\tclearInterval(this.openingHoursInterval);\n\t\t\tthis.openingHoursInterval = setInterval(() => this._updateOpeningHours(), 30000);\n\t\t},\n\t\n\t\t/**\n\t\t * To improve performance, we should create / render the GameList only \n\t\t * when it has to be displayed for the first time to the end user. \n\t\t * @param {Object} cat Represents the target category. \n\t\t * @return {GameList} GameList object. \n\t\t */\n\t\t_createGameList(cat, includeName, isSubCat){\n\t\t\tvar gl = this.gameLists.find(gl => gl.categoryID == cat.id);\n\t\t\tif(gl) return gl;\n\t\n\t\t\tvar homePageGL = this.topListGameLists[cat.id];\n\t\t\tif(homePageGL) return homePageGL;\n\t\n\t\t\tif(typeof includeName !== 'boolean') includeName = false;\n\t\n\t\t\tvar thumbnails = [];\n\t\t\tfor(var i = 0, j = model.games.length; i < j; i++){\n\t\t\t\tvar game = model.games[i];\n\t\t\t\tif(game.categories.includes(cat.id)){\n\t\t\t\t\tvar thumbnail = controller.getThumbnail(game);\n\t\t\t\t\tif(thumbnail) thumbnails.push(thumbnail);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tlet gameList = null;\n\t\n\t\t\tif(!thumbnails.length && !cat.lobbyHelperOrderId) return null;\n\t\n\t\t\tgameList = create();\n\t\n\t\t\t//separating categories with thumbnail \n\t\t\t//limit, for minor performance improvement\n\t\t\tcat.limit && this.gameListsWithLimit.push(gameList);\n\t\n\t\t\tfunction create(){\n\t\t\t\treturn gameListModel.create({\n\t\t\t\t\ttitle: includeName ? (cat.nameGL || cat.name) : null,\n\t\t\t\t\ttitleLabel: includeName ? (cat.labelGL || cat.label) : null,\n\t\t\t\t\tcategoryID: cat.id,\n\t\t\t\t\tthumbnails: thumbnails,\n\t\t\t\t\tincludesJackpot: cat.includesJackpot,\n\t\t\t\t\tlimit: cat.limit,\n\t\t\t\t\tcategories: cat.categories,\n\t\t\t\t\tsubCat: isSubCat,\n\t\t\t\t\tfetchNewGames: cat.fetchNewGames,\n\t\t\t\t\tlobbyHelperOrderId: cat.lobbyHelperOrderId,\n\t\t\t\t\tonResetLimitsUnderCondition: () => {\n\t\t\t\t\t\treturn model.isPage(Enum.Pages.LOBBY) && !model.observables.filterOn;\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\treturn gameList;\n\t\t},\n\t\t_displayThumbnailsByCategory(arrCatIds, level){\n\t\t\tif(!model.isPage(Enum.Pages.LOBBY)) return null;\n\t\n\t\t\tif(typeof arrCatIds === 'undefined') return;\n\t\n\t\t\tvar level = level || 2;\n\t\n\t\t\tif(!Array.isArray(arrCatIds))\n\t\t\t\tarrCatIds = [arrCatIds];\n\t\n\t\t\tvar foundIncluded = false;\n\n\t\t\tlet allGameLists = this.gameLists.concat(this.serverGameLists);\n\t\n\t\t\tfor(var i = 0, j = allGameLists.length; i < j; i++){\n\t\t\t\tvar gameList = allGameLists[i];\n\t\t\t\tif(this.glBelongsToRecentlyPlayed(gameList)) continue;\n\n\t\t\t\tvar included = arrCatIds.includes(gameList.categoryID);\n\t\t\t\tgameList.isHidden = !included;\n\t\t\t\tif(included){\n\t\t\t\t\tgameList.reset();\n\t\t\t\t\tfoundIncluded = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif(foundIncluded) return;\n\t\n\t\t\tvar cat = controller.getCatByCatID(arrCatIds[0], level);\n\t\n\t\t\tif(cat?.categories?.length > 0){\n\t\t\t\tif(cat.catsAsGameLists) this._displayThumbnailsByCategory(cat.categories.map(item => item.id), level + 1);\n\t\t\t\telse this._displayThumbnailsByCategory(cat.categories[0].id, level + 1);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar hasSubCats = arrCatIds.length > 1;\n\t\t\tvar includeName = model.isUI('FUND') || hasSubCats;\n\t\t\t\n\t\t\tarrCatIds.forEach((catId) => {\n\t\t\t\tvar gl = this._createGameList(controller.getCatByCatID(catId, level), includeName, hasSubCats);\n\t\t\t\tif(gl !== null && !this.gameLists.includes(gl)){\n\t\t\t\t\tgl.isHidden = false;\n\t\t\t\t\tthis.gameLists.push(gl);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\t_updateThumbnailState(shouldUpdateFGAndReRenderBet){\n\t\t\tif(model.observables.wofDisplayed) return;\n\t\n\t\t\tif(typeof shouldUpdateFGAndReRenderBet !== 'boolean')\n\t\t\t\tshouldUpdateFGAndReRenderBet = true;\n\t\n\t\t\tvar gameList = null;\n\t\n\t\t\tif(model.observables.filterOn && this.compGameFilter) gameList = this.compGameFilter.searchResGameList;\n\t\t\telse gameList = this.gameLists.find(gl => gl.categoryID == model.currCatIds.level2);\n\t\n\t\t\tif(!gameList) return;\n\t\n\t\t\tif(shouldUpdateFGAndReRenderBet){\n\t\t\t\tgameList.updateFGAndReRenderBet();\n\t\t\t\tthis.favGamesGameList.all.updateFGAndReRenderBet();\n\t\t\t\tthis.favGamesGameList.casino.updateFGAndReRenderBet();\n\t\t\t\tthis.favGamesGameList.live.updateFGAndReRenderBet();\n\t\t\t\tthis.serverGameLists.forEach(gl => gl.updateFGAndReRenderBet());\n\t\t\t}\n\t\t},\n\t\t_updateOpeningHours(){\n\t\t\tvar arr = model.thsHourly[model.observables.filterOn ? 'filter' : model.currCatIds.level2];\n\t\t\tif(!Array.isArray(arr))\n\t\t\t\treturn;\n\t\n\t\t\tfor(var i = 0, j = arr.length; i < j; i++){\n\t\t\t\tvar thumbnail = arr[i];\n\t\n\t\t\t\tvar utcOpeningTimes = {\n\t\t\t\t\tfrom: Number(thumbnail.openFromTime),\n\t\t\t\t\topenIn: Number(thumbnail.openInHours),\n\t\t\t\t};\n\t\n\t\t\t\tvar dateCurrent = new Date(); \n\t\t\t\tvar dateFromTime = new Date(dateCurrent.getTime());\n\t\t\t\tvar dateToTime = new Date(dateCurrent.getTime());\n\t\t\t\t\n\t\t\t\tdateFromTime.setUTCHours(utcOpeningTimes.from);\n\t\t\t\tdateToTime.setUTCHours(utcOpeningTimes.from + utcOpeningTimes.openIn);\n\t\n\t\t\t\tdateFromTime.setUTCMinutes(thumbnail.openFromTimeMinutes || 0);\n\t\t\t\tdateToTime.setUTCMinutes(thumbnail.openInMinutes || 0);\n\t\n\t\t\t\tif(dateFromTime.getUTCDay() != dateToTime.getUTCDay() && dateFromTime.getUTCHours() > dateCurrent.getUTCHours()){\n\t\t\t\t\tdateFromTime.setUTCDate(dateFromTime.getUTCDate() - 1);\n\t\t\t\t\tdateToTime.setUTCDate(dateToTime.getUTCDate() - 1);\n\t\t\t\t}\n\t\n\t\t\t\tvar timeBetween = dateFromTime <= dateCurrent && dateToTime > dateCurrent;\n\t\t\t\tthumbnail.openingHoursActive = timeBetween;\n\t\t\t}\n\t\t}\n\t},\n};","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport { nextTick } from \"vue\"\nimport gameListModel from \"@modelsjs/game-list-model.js\";\nimport Enum from \"@shared/enum.js\";\nimport BaseContent from \"./base-content.js\";\nimport { FavoriteGamesLabel } from \"@lang/misc.js\";\n\nexport default {\n\tmixins: [BaseContent],\n\tdata(){\n\t\treturn {\n\t\t\tfavGamesGameList: {},\n\t\t\thasFavGames: {\n\t\t\t\tcasino: false,\n\t\t\t\tlive: false,\n\t\t\t\tany: false,\n\t\t\t},\n\t\t};\n\t},\n\tcreated(){\n\t\tmodel.pushLang({FavoriteGamesLabel});\n\t\t[\n\t\t\t{\n\t\t\t\tcatID: Enum.CATEGORY_IDS.FAVORITES,\n\t\t\t\tid: 'all',\n\t\t\t},\n\t\t\t{\n\t\t\t\tcatID: Enum.CATEGORY_IDS.FAVORITES_CASINO,\n\t\t\t\tid: 'casino',\n\t\t\t},\n\t\t\t{\n\t\t\t\tcatID: Enum.CATEGORY_IDS.FAVORITES_LIVE,\n\t\t\t\tid: 'live',\n\t\t\t},\n\t\t].forEach((item) => {\n\t\t\tthis.favGamesGameList[item.id] = gameListModel.create({\n\t\t\t\tcategoryID: item.catID,\n\t\t\t\ttitleLabel: 'FavoriteGamesLabel',\n\t\t\t\tcounter: !model.isUI('FUND'),\n\t\t\t\tcache: false,\n\t\t\t\tbackdrop: false,\n\t\t\t\tshouldBeObserved: false,\n\t\t\t\tonListChange: () => nextTick(() => this._updateList()),\n\t\t\t});\n\t\t});\n\t},\n\tmethods: {\n\t\t_initFavGamesSection(){\n\t\t\tmodel.on('UpdateFilter', 'OpenPage', 'GoToCategory', 'ServerGameListsUpdated', () => nextTick(() => this._updateList()));\n\n\t\t\tupdateFavList.call(this);\n\t\t\tmodel.on('UserProfileLoaded', 'GetPlayerInfoLoaded', () => updateFavList.call(this));\n\n\t\t\tfunction updateFavList(){\n\t\t\t\tif(model.observables.wofDisplayed) return;\n\n\t\t\t\tthis.favGamesGameList.all.clearThumbnails();\n\t\t\t\tthis.favGamesGameList.casino.clearThumbnails();\n\t\t\t\tthis.favGamesGameList.live.clearThumbnails();\n\n\t\t\t\tvar settings = model.personalSettings;\n\t\t\t\tif(!settings)\n\t\t\t\t\treturn;\n\t\t\t\t\n\t\t\t\tvar favGames = Array.isArray(settings.favoriteGames) ? settings.favoriteGames : [];\n\t\t\t\tvar _arrFavGames = [];\n\t\t\t\tvar _arrCasino = [];\n\t\t\t\tvar _arrLive = [];\n\n\t\t\t\tfor(var i = 0, j = favGames.length; i < j; i++){\n\t\t\t\t\tvar gameId = favGames[i];\n\t\t\t\t\tvar game = controller.getGameByID(gameId);\n\t\t\t\t\tvar gameThumbnail = controller.getThumbnail(game);\n\t\t\t\t\tif(!gameThumbnail)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tgameThumbnail.fav = true;\n\t\t\t\t\t_arrFavGames.push(gameThumbnail);\n\n\t\t\t\t\tlet type = controller.getTypeCasinoOrLive(game);\n\t\t\t\t\ttype === 'casino' ? _arrCasino.push(gameThumbnail) : _arrLive.push(gameThumbnail);\n\t\t\t\t}\n\n\t\t\t\tfor(var i = 0, j = model.arrGameThumbnails.length; i < j; i++){\n\t\t\t\t\tvar thumbnail = model.arrGameThumbnails[i];\n\t\t\t\t\tif(!_arrFavGames.includes(thumbnail)) thumbnail.fav = false;\n\n\t\t\t\t}\n\n\t\t\t\tthis.favGamesGameList.all.setupThumbnails(_arrFavGames);\n\t\t\t\tthis.favGamesGameList.casino.setupThumbnails(_arrCasino);\n\t\t\t\tthis.favGamesGameList.live.setupThumbnails(_arrLive);\n\n\t\t\t\tthis.hasFavGames.casino = _arrCasino.length > 0;\n\t\t\t\tthis.hasFavGames.live = _arrLive.length > 0;\n\t\t\t\tthis.hasFavGames.any = this.hasFavGames.casino || this.hasFavGames.live;\n\n\t\t\t\tmodel.dispatchEvent('WindowResize');\n\t\t\t}\n\n\t\t\tmodel.on('LogoutComplete', () => {\n\t\t\t\tthis.favGamesGameList.all.thumbnails.forEach(thumbnail => thumbnail.fav = false);\n\t\t\t\tthis.favGamesGameList.all.clearThumbnails();\n\t\t\t\tthis.favGamesGameList.casino.clearThumbnails();\n\t\t\t\tthis.favGamesGameList.live.clearThumbnails();\n\t\t\t});\n\t\t},\n\t\t_updateList(){\n\t\t\tvar noFavGames = this._shouldBeHidden('all');\n\n\t\t\tthis.serverGameLists.forEach(gameList => {\n\t\t\t\tgameList.titleHidden = model.isUI('FUND') ? false : !model.logged;\n\t\t\t});\n\n\t\t\tthis.favGamesGameList.all.isHidden = noFavGames;\n\t\t\tthis.favGamesGameList.casino.isHidden = this._shouldBeHidden('casino');\n\t\t\tthis.favGamesGameList.live.isHidden = this._shouldBeHidden('live');\n\t\t},\n\t\t_shouldBeHidden(propLabel){\n\t\t\treturn !model.logged || this.favGamesGameList[propLabel].getAllThumbnails().length === 0;\n\t\t}\n\t},\n};","export default class CategoryToursBusiness {\r\n sortGameGroupsByPattern(strPattern, thumbnails){\r\n let groups = {};\r\n let arrPattern = strPattern.split('|');\r\n\r\n let res = [];\r\n\r\n arrPattern.forEach(groupID => {\r\n if(Array.isArray(groups[groupID])) return;\r\n groups[groupID] = thumbnails.filter(th => th.gameGroup == groupID);\r\n });\r\n\r\n while(Object.keys(groups).find(groupID => groups[groupID].length > 0)){\r\n arrPattern.forEach(groupID => {\r\n let arr = groups[groupID];\r\n if(!arr.length) return;\r\n\r\n let th = arr.shift();\r\n res.push(th);\r\n\r\n let ind = thumbnails.indexOf(th);\r\n if(ind !== -1) thumbnails.splice(ind, 1);\r\n });\r\n }\r\n\r\n res = res.concat(thumbnails);\r\n\r\n return res;\r\n }\r\n}","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport { toArray, isObject } from \"@helpers/utils.js\"\n\nimport gameListModel from \"@modelsjs/game-list-model.js\";\nimport BaseContent from \"./base-content.js\";\nimport { gsap } from \"gsap\";\n\nimport CategoryToursBusiness from \"@js/controller/business/other/category-tours-business.js\";\nlet categoryToursBusiness = new CategoryToursBusiness();\n\nexport default {\n\tmixins: [BaseContent],\n\tdata(){\n\t\treturn {\n\t\t\tcategoryTours: {\n\t\t\t\ttop: {},\n\t\t\t\ttours: [],\n\t\t\t\thasOneVisibleAccTour: false,\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\t_initCategoryToursContent(){\n\t\t\tthis.localTours = [];\n\n\t\t\tmodel.on('PromoListLoadedPre', e => {\n\t\t\t\te.dispose();\n\n\t\t\t\tlet cat = model.categories.level2.find(cat => model.categoryToursCatIDs.includes(cat.id));\n\t\t\t\tif(!cat) return;\n\n\t\t\t\tthis._onLoadCategoryTours();\n\n\t\t\t\tmodel.on('PromoListLoaded', () => {\n\t\t\t\t\tthis.categoryTours.tours.forEach(gl => {\n\t\t\t\t\t\tgl.isPresentInToursCat = !model.promos.all.find(x => x.accostPlayNowClickId === gl.clickId);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tmodel.on('PromoListLoadedPre', () => this._onLoadCategoryTours());\n\t\t\t\tmodel.on('ListUpdated_tournaments', () => this._localToursGameListsUpdate());\n\t\t\t\tmodel.on('FocusCategoryTour', e => this._focusCategoryTour(e.clickId));\n\t\t\n\t\t\t\tmodel.on('GoToCategory', () => {\n\t\t\t\t\tvar oneLocalTournVisible = false;\n\t\t\n\t\t\t\t\tfor(var i = 0, j = model.categoryTours.length; i < j; i++){\n\t\t\t\t\t\tvar tour = model.categoryTours[i];\n\t\t\t\t\t\tvar hidden = this._isVisibleByCat(tour);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(!hidden){\n\t\t\t\t\t\t\tif(tour.tournamentId){\n\t\t\t\t\t\t\t\thidden = !controller.tournamentVisible(tour.tournamentId);\n\t\t\t\t\t\t\t\t!hidden && (oneLocalTournVisible = true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse hidden = controller.getCategoryTourPromo(tour).length === 0;\n\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\ttour.gameLists?.forEach(gl => gl.isHidden = hidden);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\toneLocalTournVisible && this._localToursGameListsUpdate();\n\t\t\t\t\tthis._updateVisibleState();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\t_onLoadCategoryTours(){\n\t\t\tvar toursCategoryIDs = [];\n\t\t\tthis.localTours.splice(0, this.localTours.length);\n\t\t\t\t\n\t\t\tvar arrCategoryTours = [];\n\t\t\tvar aTours = model.categoryTours;\n\t\t\t\n\t\t\tlet arrCloned = [];\n\n\t\t\tfor(var i = 0, len = aTours.length; i < len; i++){\n\t\t\t\tvar item = aTours[i];\n\t\n\t\t\t\tvar catID = 'category_tour_' + i;\n\t\n\t\t\t\tif(typeof item.tournamentId !== 'undefined') item.tournamentId = toArray(item.tournamentId);\n\t\t\t\tif(Array.isArray(item.tournamentId) && !arrCloned.includes(item)){\n\t\t\t\t\tvar originalClickId = null;\n\t\t\t\t\titem.tournamentId.forEach((tourId, index) => {\n\t\t\t\t\t\tvar clickIdSuffix = '_' + tourId;\n\t\t\t\t\t\tif(index === 0){\n\t\t\t\t\t\t\toriginalClickId = item.clickId;\n\t\t\t\t\t\t\titem.tournamentId = tourId;\n\t\t\t\t\t\t\titem.clickId += clickIdSuffix;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tvar cloned = JSON.parse(JSON.stringify(item));\n\t\t\t\t\t\t\tcloned.tournamentId = tourId;\n\t\t\t\t\t\t\tcloned.clickId = originalClickId + clickIdSuffix;\n\t\t\t\t\t\t\taTours.splice(i + 1, 0, cloned);\n\t\t\t\t\t\t\tarrCloned.push(cloned);\n\t\t\t\t\t\t\tlen++;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\titem.gameLists = [];\n\n\t\t\t\tif(item.tournamentId){\n\t\t\t\t\tthis.localTours.push(item);\n\t\t\t\t\tlet gameList = createGameList.call(this, item, catID, null);\n\t\t\t\t\tarrCategoryTours.push(gameList);\n\t\t\t\t\titem.gameLists.push(gameList);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tcontroller.getCategoryTourGameThs(item).forEach(thumbnails => {\n\t\t\t\t\t\tlet gameList = createGameList.call(this, item, catID, thumbnails)\n\t\t\t\t\t\titem.gameLists.push(gameList);\n\t\t\t\t\t\tif(gameList.getAllThumbnails().length > 0) arrCategoryTours.push(gameList);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\tif(!toursCategoryIDs.includes(item.categoryID)) toursCategoryIDs.push(item.categoryID);\n\t\t\t}\n\t\n\t\t\tthis.categoryTours.tours = arrCategoryTours;\n\t\n\t\t\tif(this.localTours.length > 0 && toursCategoryIDs.includes(model.currCatIds.level2)) controller.sendTournamentRequest();\n\t\n\t\t\tthis._updateVisibleState();\n\t\n\t\t\tif(!model.isUI('FUND')) return;\n\t\n\t\t\tvar focusedAccTourId = sessionStorage.getItem('FocusedAccTourId');\n\t\t\tfocusedAccTourId && setTimeout(() => {\n\t\t\t\tsessionStorage.removeItem('FocusedAccTourId');\n\t\t\t\tthis._focusCategoryTour(focusedAccTourId);\n\t\t\t}, 0);\n\n\t\t\tfunction createGameList(item, catID, thumbnails){\n\t\t\t\tvar isTitleObj = isObject(item.name);\n\n\t\t\t\treturn gameListModel.create({\n\t\t\t\t\tcategoryID: catID,\n\t\t\t\t\ttitle: !isTitleObj && item.name,\n\t\t\t\t\ttitleLabel: isTitleObj && item.name,\n\t\t\t\t\tisHidden: this._isVisibleByCat(item) || item.tournamentId != null,\n\t\t\t\t\tthumbnails: thumbnails,\n\t\t\t\t\tcacheAll: false,\n\t\t\t\t\ttournamentId: item.tournamentId,\n\t\t\t\t\tclickId: item.clickId,\n\t\t\t\t\tsubCat: true,\n\t\t\t\t\tisPresentInToursCat: !model.promos.all.find(x => x.accostPlayNowClickId === item.clickId),\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t_focusCategoryTour(clickId){\n\t\t\tvar clickId = clickId;\n\t\t\tvar tour = model.categoryTours.find(item => item.clickId === clickId);\n\t\t\tif(!tour || !tour.categoryID) return;\n\n\t\t\tcontroller.closeAllModals();\n\t\n\t\t\tif(model.currCatIds.level2 !== tour.categoryID){\n\t\t\t\tmodel.on('GoToCategory', (e) => {\n\t\t\t\t\tthis._scrollToCategoryTour(clickId);\n\t\t\t\t\te.dispose();\n\t\t\t\t});\n\t\t\t\tmodel.isUI('FUND') && sessionStorage.setItem('FocusedAccTourId', clickId);\n\t\t\t\tcontroller.gotoCategory({level2: tour.categoryID}, {forceScroll: false, scroll: false}); \n\t\t\t}\n\t\t\telse this._scrollToCategoryTour(clickId);\n\t\t},\n\t\t_scrollToCategoryTour(clickId){\n\t\t\tcontroller.sendTournamentRequestIfNoTours(() => handleScroll.call(this), true, () => {\n\t\t\t\tthis._localToursGameListsUpdate();\n\t\t\t\thandleScroll.call(this);\n\t\t\t});\n\t\n\t\t\tfunction handleScroll() {\n\t\t\t\tthis.categoryTours.tours.forEach(gameList => gameList.observeGL());\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tvar topCall = this.categoryTours.top[clickId];\n\t\t\t\t\tif(typeof topCall !== 'function')\n\t\t\t\t\t\treturn;\n\t\n\t\t\t\t\tif(this.scrollTween){\n\t\t\t\t\t\tthis.scrollTween.kill();\n\t\t\t\t\t\tthis.scrollTween = null;\n\t\t\t\t\t}\n\t\n\t\t\t\t\ttopCall();\n\t\t\t\t\tvar obj = {scrollTop: $(document).scrollTop()};\n\t\t\t\t\tthis.scrollTween = gsap.to(obj, {\n\t\t\t\t\t\tduration: .5,\n\t\t\t\t\t\tscrollTop: topCall.value,\n\t\t\t\t\t\tonUpdate: () => $(document).scrollTop(obj.scrollTop),\n\t\t\t\t\t\tonComplete: () => this.scrollTween = null,\n\t\t\t\t\t});\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t},\n\t\t_localToursGameListsUpdate(){\n\t\t\tthis.localTours.forEach(item => {\n\t\t\t\tvar gameLists = item.gameLists;\n\t\t\t\tif(gameLists.length === 0) return;\n\t\n\t\t\t\tvar gameList = gameLists[0];\n\t\t\t\tvar hidden = model.currCatIds.level2 !== item.categoryID;\n\t\n\t\t\t\tif(!hidden && gameList.tournamentId)\n\t\t\t\t\thidden = !controller.tournamentStarted(gameList.tournamentId);\n\t\n\t\t\t\tgameList.isHidden = hidden;\n\t\n\t\t\t\tif(hidden) return;\n\t\n\t\t\t\tvar gameIDs = controller.getTournGameIDs(gameList.tournamentId);\n\t\t\t\tif(!Array.isArray(gameIDs) || !gameIDs.length){\n\t\t\t\t\tgameList.isHidden = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\tgameIDs = gameIDs.slice();\n\t\n\t\t\t\tif(Array.isArray(item.prevGameIDs) && gameIDs.join() === item.prevGameIDs.join()) return;\n\t\n\t\t\t\tvar ths = [];\n\t\t\t\tgameIDs.forEach((id) => {\n\t\t\t\t\tvar game = controller.getGameByID(id);\n\t\t\t\t\tif(!game) return;\n\t\n\t\t\t\t\tvar th = controller.getThumbnail(game);\n\t\t\t\t\tth && ths.push(th);\n\t\t\t\t});\n\n\t\t\t\tif(typeof item.sortGameGroupsByPattern === 'string'){\n\t\t\t\t\tths = categoryToursBusiness.sortGameGroupsByPattern(item.sortGameGroupsByPattern, ths);\n\t\t\t\t}\n\n\t\t\t\tif(Array.isArray(item.gameSortByTourId)){\n\t\t\t\t\tlet premierThs = [];\n\t\t\t\t\tlet gameIDs = item.gameSortByTourId.find(x => {\n\t\t\t\t\t\tif(Array.isArray(gameList.tournamentId)){\n\t\t\t\t\t\t\treturn gameList.tournamentId.find(id => x?.ids?.includes?.(id));\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn x?.ids?.includes?.(gameList.tournamentId);\n\t\t\t\t\t})?.games;\n\t\t\t\t\tif(gameIDs?.length > 0){\n\t\t\t\t\t\tfor(let i = ths.length - 1; i >= 0; i--){\n\t\t\t\t\t\t\tlet th = ths[i];\n\n\t\t\t\t\t\t\tgameIDs.forEach((id, pos) => {\n\t\t\t\t\t\t\t\tif(controller.evaluateGameId(th.gameId, id)){\n\t\t\t\t\t\t\t\t\tpremierThs.push({th, pos});\n\t\t\t\t\t\t\t\t\tths.splice(i, 1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpremierThs.sort((item1, item2) => item1.pos - item2.pos);\n\t\t\t\t\t\tpremierThs = premierThs.map(item => item.th);\n\t\t\t\t\t\tths = premierThs.concat(ths);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\tgameList.setupThumbnails(ths, true);\n\t\n\t\t\t\titem.prevGameIDs = gameIDs;\n\t\t\t});\n\t\n\t\t\tthis._updateVisibleState();\n\t\t},\n\t\t_isVisibleByCat(tour){\n\t\t\treturn model.currCatIds.level2 !== tour.categoryID;\n\t\t},\n\t\t_updateVisibleState(){\n\t\t\tvar atLeastOneVisible = false;\n\t\n\t\t\tvar arr = this.categoryTours.tours;\n\t\t\tfor(var i = 0, len = arr.length; i < len; i++){\n\t\t\t\tatLeastOneVisible = !arr[i].isHidden;\n\t\t\t\tif(atLeastOneVisible) break;\n\t\t\t}\n\t\n\t\t\tif(atLeastOneVisible !== this.categoryTours.hasOneVisibleAccTour) this.categoryTours.hasOneVisibleAccTour = atLeastOneVisible;\n\t\t},\n\t},\n};","import model from \"@js/model.js\";\r\nimport controller from \"@js/controller/controller.js\";\r\nexport default {\r\n methods: {\r\n onThumbnailHover(thumbnail) {\r\n thumbnail.renderInfo();\r\n },\r\n onUpdateFav(thumbnail) {\r\n if (thumbnail.favLoading)\r\n return;\r\n\r\n thumbnail.favLoading = true;\r\n this.controller[!thumbnail.fav ? 'addToFav' : 'removeFromFav'](thumbnail.getRawGameId(), () => {\r\n thumbnail.favLoading = false;\r\n }, false);\r\n },\r\n onStartGameFund: (() => {\r\n // let prevClickedTh = null;\r\n return function(thumbnail, gameList){\r\n // if (model.isMobile) {\r\n // if (prevClickedTh && prevClickedTh !== thumbnail) {\r\n // prevClickedTh.mobileTap = false;\r\n // }\r\n\r\n // if (thumbnail.mobileTap) {\r\n // return this.onStartGame(thumbnail, gameList, 'money');\r\n // }\r\n // thumbnail.mobileTap = true;\r\n // prevClickedTh = thumbnail;\r\n // return;\r\n // }\r\n\r\n return this.onStartGame(thumbnail, gameList, model.logged ? 'money' : 'fun');\r\n };\r\n })(),\r\n onStartGame(thumbnail, gameList, mode) {\r\n if (thumbnail.isDisabled()) return;\r\n\r\n if (!mode) mode = 'prompt';\r\n\r\n if (model.isUI('FUND')) {\r\n controller.startGame({\r\n gameID: thumbnail.getGameId(),\r\n mode: mode,\r\n });\r\n } else {\r\n if (!model.isMobile) {\r\n controller.startGame({\r\n gameID: thumbnail.getGameId(),\r\n mode: mode,\r\n });\r\n } else if (model.gameFrameMobile) {\r\n model.gameFrameMobile.open(\r\n gameList.getThumbnails(),\r\n thumbnail,\r\n gameList.categoryID,\r\n gameList.arrQuadThs);\r\n }\r\n }\r\n },\r\n },\r\n};","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport { CONSTANTS } from \"@componentsjs/server-game-list-view-model.js\";\r\nimport BaseContent from \"./base-content.js\";\r\n\r\nexport default {\r\n mixins: [BaseContent],\r\n data(){\r\n let rpSectionList = [\r\n {\r\n id: 101,\r\n label: 'casino',\r\n }, \r\n {\r\n id: 102,\r\n label: 'live',\r\n }\r\n ];\r\n\r\n let data = {\r\n rpSectionList,\r\n hasRecentlyPlayed: {},\r\n };\r\n\r\n rpSectionList.forEach(section => data.hasRecentlyPlayed[section.label] = false);\r\n\r\n return data;\r\n },\r\n created(){\r\n if(!model.recentlyPlayedActive) return;\r\n\r\n this.$watch(() => model.observables.lobbyHelper.response, response => {\r\n if(!response){\r\n this.rpSectionList.forEach(section => this.hasRecentlyPlayed[section.label] = false);\r\n return;\r\n }\r\n\r\n this.rpSectionList.forEach(section => {\r\n let item = response.find(x => x.id == section.id);\r\n\r\n if(!item?.list?.length){\r\n this.hasRecentlyPlayed[section.label] = false;\r\n return;\r\n }\r\n\r\n this.hasRecentlyPlayed[section.label] = Boolean(item.list.find(game => controller.getGameByID(game.gameId)));\r\n });\r\n });\r\n },\r\n methods: {\r\n glBelongsToRecentlyPlayed(gameList){\r\n return Boolean(this.rpSectionList.find(x => (gameList.categoryID + '').includes(`${CONSTANTS.CAT_ID_SUFFIX}${x.id}`)));\r\n },\r\n }\r\n};","import { firstIfUndefined } from \"@helpers/utils.js\"\nimport { watch } from \"vue\"\n\nimport model from \"../model.js\";\nimport { gsap } from \"gsap\";\nimport controller from \"@js/controller/controller.js\";\n\nvar STARS_AMOUNT = 10;\nvar MAX_DURATION = 2;\nvar MIN_DURATION = .75;\nvar X_POS_MIN = 25;\nvar X_POS_MAX = 100;\nvar Y_POS_MIN = 25;\nvar Y_POS_MAX = 100;\nvar ROTATE_MIN = 180;\nvar ROTATE_MAX = 450;\n\nexport default function(){\n\tmodel.vue.app.directive('bonus-points-particles', {\n\t\tunmounted(element){\n\t\t\telement.onDispose?.();\n\t\t},\n\t\tbeforeMount(element, binding){\n\t\t\tvar params = binding.value;\n\t\n\t\t\tvar $element = $(element);\n\t\t\tvar $particles = $();\n\t\t\t\n\t\t\tfor(var i = 0; i < STARS_AMOUNT; i++){\n\t\t\t\tvar $particle = $('
').addClass('particle').css({'opacity': 0});\n\t\t\t\tvar $inner = $('
').addClass('inner');\n\t\t\t\tif(typeof params.iconClass === 'string')\n\t\t\t\t\t$inner.addClass(params.iconClass);\n\t\t\t\t$particle.append($inner);\n\t\t\t\t$element.append($particle);\n\t\t\t\t$particles = $particles.add($particle);\n\t\t\t}\n\t\n\t\t\tvar tweens = {};\n\t\t\tvar allProps = {};\n\t\n\t\t\tvar initialProps = {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\topacity: 1,\n\t\t\t\trotate: 0,\n\t\t\t};\n\t\n\t\t\tvar bonusPoints = params.bonusPoints;\n\t\t\tvar bpOptions = typeof model.bonusPointsPage === 'object' && model.bonusPointsPage !== null ? model.bonusPointsPage.options : null;\n\t\n\t\t\tif(!Array.isArray(bpOptions))\n\t\t\t\treturn;\n\t\t\t\n\t\t\tvar earnedPoints = [];\n\t\t\t\n\t\t\tvar bp = Number(bonusPoints.value);\n\t\t\tfor(var i = 0, j = bpOptions.length; i < j; i++){\n\t\t\t\tvar option = bpOptions[i];\n\t\t\t\tif(option.points <= bp)\n\t\t\t\t\tearnedPoints.push(option.points);\n\t\t\t}\n\t\t\t\n\t\t\tvar prevValue = bp;\n\t\t\tlet unwatch = watch(() => bonusPoints.value, bpSubscrCallback);\n\t\n\t\t\telement.onDispose = () => {\n\t\t\t\tunwatch();\n\t\t\t\tfor(var key in tweens) tweens[key].kill();\n\t\t\t}\n\t\t\t\n\t\t\tfunction bpSubscrCallback(value){\n\t\t\t\tif(prevValue && value > prevValue){\n\t\t\t\t\tdisplayParticles(params, tweens, allProps, initialProps, $particles);\n\t\t\t\t\tif(!Array.isArray(bpOptions))\n\t\t\t\t\t\treturn;\n\t\n\t\t\t\t\tvalue = Number(value);\n\t\n\t\t\t\t\tfor(var i = 0, j = bpOptions.length; i < j; i++){\n\t\t\t\t\t\tvar option = bpOptions[i];\n\t\n\t\t\t\t\t\t//it is possible to receive more than one point\n\t\t\t\t\t\tif(option.points <= value && !earnedPoints.includes(option.points)){\n\t\t\t\t\t\t\tdisplayCoin(option, $element);\n\t\t\t\t\t\t\tearnedPoints.push(option.points);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tprevValue = value;\n\t\t\t}\n\t\t}\n\t});\n\t\n\tfunction displayParticles(params, tweens, allProps, initialProps, $particles){\n\t\t$particles.each(function(index){\n\t\t\tvar particle = this;\n\t\n\t\t\tif(!allProps[index]) allProps[index] = Object.create(initialProps);\n\t\n\t\t\tvar props = allProps[index];\n\t\n\t\t\tvar inner = particle.childNodes[0];\n\t\t\tvar tweenProps = {\n\t\t\t\tduration: getRandMinMax(MIN_DURATION, MAX_DURATION, false),\n\t\t\t\tx: getRandMinMax(X_POS_MIN, X_POS_MAX),\n\t\t\t\ty: getRandMinMax(Y_POS_MIN, Y_POS_MAX),\n\t\t\t\topacity: 0,\n\t\t\t\trotate: getRandMinMax(ROTATE_MIN, ROTATE_MAX),\n\t\t\t\tonUpdate: function(){\n\t\t\t\t\tparticle.style.transform = \"translateX(\" + props.x + \"px) translateY(\" + props.y + \"px)\";\n\t\t\t\t\tparticle.style.opacity = props.opacity;\n\t\t\t\t\tinner.style.transform = \"rotate(\" + props.rotate + \"deg)\";\n\t\t\t\t},\n\t\t\t};\n\t\t\tif(!tweens[index]) tweens[index] = gsap.to(props, tweenProps);\n\t\t\telse{\n\t\t\t\tfor(var key in initialProps) props[key] = initialProps[key];\n\t\t\t\ttweens[index].kill();\n\t\t\t\ttweens[index] = gsap.to(props, tweenProps);\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction getRandMinMax(min, max, negProb){\n\t\tif(typeof negProb !== 'boolean' && typeof negProb !== 'number')\n\t\t\tnegProb = true;\n\t\treturn ((Math.random() * (max - min)) + min) * (!negProb ? 1 : (Math.random() < (typeof negProb === 'number' ? negProb : .5) ? -1 : 1));\n\t}\n\t\n\tfunction displayCoin(option, $element){\n\t\tcontroller.preloadImg({\n\t\t\timgUrl: option.imgSrc,\n\t\t\tsuccess: function(imgSrc){\n\t\t\t\tif(!imgSrc)\n\t\t\t\t\treturn;\n\t\n\t\t\t\tvar $imgDiv = $('
').addClass('bp-coin-nav').addClass(option.color);\n\t\n\t\t\t\t$imgDiv.append(\n\t\t\t\t\t'',\n\t\t\t\t\t'
\\\n\t\t\t\t\t\t
You\\'ve reached
\\\n\t\t\t\t\t\t
' + option.name + '
\\\n\t\t\t\t\t\t
' + model.formatAsCurrency({\n\t\t\t\t\t\t\tvalue: firstIfUndefined(option.cash, model.getCurrency()),\n\t\t\t\t\t\t\tisCredits: false,\n\t\t\t\t\t\t}) + '
\\\n\t\t\t\t\t
');\n\t\t\t\t\n\t\t\t\tvar imgDiv = $imgDiv.get(0);\n\t\n\t\t\t\tvar props1 = {\n\t\t\t\t\tscale: .5,\n\t\t\t\t\tpercY: -20,\n\t\t\t\t\trotateY: 0,\n\t\t\t\t\topacity: 0,\n\t\t\t\t}\n\t\n\t\t\t\tfunction onUpdate(){\n\t\t\t\t\timgDiv.style.transform = \"translateX(-50%) translateY(\" + props1.percY + \"%) scale(\" + props1.scale + \") rotate3d(0, 1, 0, \" + props1.rotateY + \"deg)\";\n\t\t\t\t\timgDiv.style.opacity = props1.opacity;\n\t\t\t\t}\n\t\n\t\t\t\tgsap.to(props1, {\n\t\t\t\t\tduration: 2,\n\t\t\t\t\tscale: 1,\n\t\t\t\t\tpercY: 20,\n\t\t\t\t\trotateY: 360 * 1,\n\t\t\t\t\topacity: 1,\n\t\t\t\t\tease: 'back(2)',\n\t\t\t\t\tonUpdate: onUpdate,\n\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t$imgDiv.addClass('content-displayed');\n\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\tgsap.to(props1, {\n\t\t\t\t\t\t\t\tduration: 2,\n\t\t\t\t\t\t\t\tpercY: -50,\n\t\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t\tease: 'power2.easeOut',\n\t\t\t\t\t\t\t\tonUpdate: onUpdate,\n\t\t\t\t\t\t\t\tonComplete: function(){\n\t\t\t\t\t\t\t\t\t$imgDiv.remove();\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}, 8000);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\n\t\t\t\t$element.append($imgDiv);\n\t\t\t}\n\t\t});\n\t}\n}","import { isObject } from \"@helpers/utils.js\"\nimport { nextTick } from \"vue\"\n\nimport model from \"../model.js\";\nimport controller from \"../controller/controller.js\";\n\nexport default function(){\n\tmodel.vue.app.directive('keep-lb-within-bounds', {\n\t\tunmounted(element){\n\t\t\telement.onDispose?.();\n\t\t},\n\t\tbeforeMount(element, binding){\n\t\t\tvar params = binding.value;\n\t\t\tif(!params) return;\n\t\n\t\t\tnextTick(() => {\n\t\t\t\tvar $element = $(element);\n\t\t\t\tvar $pivotElem = null;\n\t\n\t\t\t\tvar topVal = 0;\n\t\t\t\tvar t;\n\t\t\t\t\n\t\t\t\tonResize();\n\t\t\t\tmodel.on('WindowResize', 'ForceResize', onResize);\n\t\t\t\telement.onDispose = () => model.off('WindowResize', 'ForceResize', onResize);\n\t\t\t\tbinding.instance.$watch(() => params.lbAttached.value, onResize);\n\t\n\t\t\t\tfunction onResize(){\n\t\t\t\t\tclearTimeout(t);\n\t\t\t\t\tt = setTimeout(() => {\n\t\t\t\t\t\tvar wh = window.innerHeight;\n\t\n\t\t\t\t\t\tvar topPosPlusHeight = $element.offset().top + ($element.outerHeight(true) + 20) - topVal;\n\t\t\t\t\t\tif(topPosPlusHeight > wh) {\n\t\t\t\t\t\t\ttopVal = (topPosPlusHeight - wh) * -1;\n\t\t\t\t\t\t\t$element.css('top', topVal);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t$element.css('top', 0);\n\t\t\t\t\t\t\ttopVal = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(typeof params.pivotElemSelector !== 'string') return;\n\t\n\t\t\t\t\t\tif(params.lbAttached.value) $element.setData('pos-away-from-gameplay', false);\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tif(!$pivotElem) $pivotElem = $(params.pivotElemSelector);\n\t\t\t\t\t\t\tif($pivotElem.length === 0) return;\n\t\n\t\t\t\t\t\t\tlet offset = $pivotElem.offset().left;\n\t\t\t\t\t\t\tlet elemWidth = $element.outerWidth(true);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t$element.setData('pos-away-from-gameplay', offset - elemWidth - 20 < 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 1);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t});\n\t\n\tmodel.vue.app.directive('game-tournament', function(element, binding){\n\t\tif(binding.value && JSON.stringify(binding.value) === JSON.stringify(binding.oldValue)) return;\n\t\n\t\tvar props = binding.value;\n\t\tif(!isObject(props)){\n\t\t\tprops = {\n\t\t\t\tdelayedResponses: props,\n\t\t\t}\n\t\t}\n\t\n\t\tif(typeof props.delayedResponses !== 'boolean') props.delayedResponses = true;\n\t\tif(typeof props.active !== 'boolean') props.active = true;\n\t\n\t\tvar functName = props.active ? 'observeElemIfAPIChange' : 'unobserveElemIfAPIChange';\n\t\tcontroller[functName]('leaderboard', element, props.delayedResponses);\n\t\tcontroller[functName]('tournaments', element, props.delayedResponses);\n\t});\n}","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nimport { nextTick } from \"vue\"\nimport Enum from \"@shared/enum.js\";\nimport { isObject } from \"@helpers/utils.js\";\nimport mainHomeContent from \"./casino-content/main-home-content.js\";\nimport gameContent from \"./casino-content/game-content.js\";\nimport favGamesSection from \"./casino-content/fav-games-section.js\";\nimport categoryToursContent from \"./casino-content/category-tours-content.js\";\nimport gameThumbnailUtils from \"../game-thumbnail-utils.js\";\nimport recentlyPlayedSection from \"./casino-content/recently-played-section.js\";\nimport gameListModel from \"@modelsjs/game-list-model.js\";\nimport bpParticlesDirective from \"@directives/bp-particles-directive.js\";\nimport gameTournamentDirective from \"@directives/game-tournament-directive.js\";\n\nexport default {\n\tmixins: [mainHomeContent, gameContent, favGamesSection, categoryToursContent, gameThumbnailUtils, recentlyPlayedSection],\n\tdata(){\n\t\treturn {\n\t\t\tserverGameLists: [],\n\t\t\tgameLists: [],\n\t\t\tgameListsWithLimit: [],\n\t\t\tgameListEnabled: false,\n\t\t\thasRefreshCallback: {},\n\t\t\trenderCasino: false,\n\t\t\tbigWinImg: null,\n\t\t\tpromoSectionExists: null,\n\t\t\twinnerListActive: null,\n\t\t\tglJackpotActive: null,\n\t\t\tjpActiveAboveFooter: null,\n\t\t\tcategoryToursActive: false,\n\t\t\tfooterLoaded: {value: false},\n\t\t\tspaceBus: {\n\t\t\t\toffered: false,\n\t\t\t\tofferDisplayed: false,\n\t\t\t\tonDismissOffer() {\n\t\t\t\t\tthis.spaceBus.offered = false;\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t},\n\tcomputed: {\n\t\tshowCommonSectionBottomWave(){\n\t\t\tif(this.model.observables.activePage === Enum.Pages.WEBRES){\n\t\t\t\treturn this.model.observables.webresShowCommonSectionBottomWave;\n\t\t\t}\n\n\t\t\treturn ![\n\t\t\t\tEnum.Pages.MAINHOME, \n\t\t\t\tEnum.Pages.PROMOS, \n\t\t\t\tEnum.Pages.PROMO_INFO, \n\t\t\t\tEnum.Pages.PAGE_NOT_FOUND\n\t\t\t].includes(this.model.observables.activePage) && !this.model.observables.subNavPlaceholderSlim;\n\t\t},\n\t},\n\tmethods: {\n\t\t// getGameFrameMobile() {\n\t\t// \treturn model.gameFrameMobile;\n\t\t// },\n\t\tfetchPreparedGames() {\n\t\t\tcontroller.fetchPreparedGames(() => this.renderCasino = true);\n\t\t},\n\t\t_setupRenderedCasino() {\n\t\t\tthis.topListGameLists = (() => {\n\t\t\t\tvar obj = {};\n\n\t\t\t\t[\n\t\t\t\t\tEnum.CATEGORY_IDS.HOMEPAGE,\n\t\t\t\t\tEnum.CATEGORY_IDS.HOMEPAGE_LIVE,\n\t\t\t\t].forEach((catId) => {\n\t\t\t\t\tvar limit = model.topGamesLimit || 9;\n\t\t\t\t\tif (isObject(limit)) limit = limit[catId];\n\n\t\t\t\t\t\tobj[catId] = gameListModel.create({\n\t\t\t\t\t\t\tcategoryID: catId,\n\t\t\t\t\t\t\ttitleLabel: model.isUI('FUND') ? 'PopularLabel' : 'TopGamesLabel',\n\t\t\t\t\t\t\ttitleHidden: true,\n\t\t\t\t\t\t\tlimit: limit,\n\t\t\t\t\t\t\t// loadAllOnShowMore: true,\n\t\t\t\t\t\t\tisHidden: false,\n\t\t\t\t\t\t\tquadThsToTop: false,\n\t\t\t\t\t\t\tonResetLimitsUnderCondition: () => {\n\t\t\t\t\t\t\t\treturn this.shouldUpdateTopList(catId);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\treturn obj;\n\t\t\t})(),\n\n\t\t\tthis.homePageCatIds = Object.keys(this.topListGameLists);\n\t\t\t\n\t\t\tthis._initFavGamesSection();\n\t\t\tthis._initCategoryToursContent();\n\t\t\tthis._initGameContent();\n\n\t\t\tif (model.isUI('FUND')) {\n\t\t\t\tthis._initMainHomeContent();\n\t\t\t}\n\n\t\t\tmodel.on('WindowResize', 'GoToCategory', 'UpdateFilter', () => {\n\t\t\t\tfor (let key in this.topListGameLists)\n\t\t\t\t\tthis.topListGameLists[key].reset();\n\t\t\t});\n\t\t},\n\t\tshouldUpdateTopList(categoryID) {\n\t\t\tif (model.observables.filterOn) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (model.isPage(Enum.Pages.MAINHOME)) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (model.isPage(Enum.Pages.LOBBY)) {\n\t\t\t\treturn model.currCatIds.level2 === categoryID;\n\t\t\t}\n\n\t\t\tif (model.isPage(Enum.Pages.TOP_LIST)) {\n\t\t\t\treturn model.currCatIds.level2 === Enum.CATEGORY_IDS.TOP_LIST;\n\t\t\t}\n\n\t\t\tif (model.isPage(Enum.Pages.TOP_LIST_LIVE)) {\n\t\t\t\treturn model.currCatIds.level2 === Enum.CATEGORY_IDS.TOP_LIST_LIVE;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t},\n\tcreated() {\n\t\tbpParticlesDirective();\n\t\tgameTournamentDirective();\n\n\t\tthis.bigWinImg = model.urls.assets.bigWin;\n\t\tthis.promoSectionExists = Boolean(model.urls.promo?.content);\n\t\tthis.winnerListActive = Boolean(model.externalAPIs?.topWin?.activeInHome);\n\t\tthis.glJackpotActive = Boolean(model.externalAPIs?.jackpotWin?.activeInGameList);\n\t\tthis.jpActiveAboveFooter = Boolean(model.externalAPIs?.jackpotWin?.jpActiveAboveFooter);\n\n\t\tmodel.spaceBusEnabled = typeof model.spaceBusEnabled === 'boolean' ? model.spaceBusEnabled : true;\n\n\t\tmodel.on('PromoListLoaded', () => {\n\t\t\tthis.categoryToursActive = Array.isArray(model.categoryTours) && model.categoryTours.length > 0;\n\t\t});\n\n\t\tlet unwatch = this.$watch('renderCasino', bool => {\n\t\t\tif (!bool) return;\n\t\t\tthis._setupRenderedCasino();\n\t\t\tunwatch();\n\t\t});\n\n\t\tif(model.isUI('FUND')) {\n\t\t\tif(model.currCatIds.level1 !== Enum.CATEGORY_IDS.MAINHOME) this.fetchPreparedGames();\n\t\t\telse {\n\t\t\t\tmodel.on('GoToCategory', e => {\n\t\t\t\t\te.dispose();\n\t\t\t\t\tthis.fetchPreparedGames();\n\t\t\t\t});\n\t\t\t}\n\t\t} \n\t\telse this.fetchPreparedGames();\n\n\t\tmodel.isUI('FOUR_SG', 'SKY') && model.on('WallOfFameStartGame', (e) => {\n\t\t\tif (!model.isMobile)\n\t\t\t\tcontroller.startGame(e.gameId);\n\t\t\telse {\n\t\t\t\tvar items = e.arrItems;\n\t\t\t\tvar thumbnails = [];\n\t\t\t\tvar targetThumbnail = null;\n\n\t\t\t\tfor (var i = 0, j = items.length; i < j; i++) {\n\t\t\t\t\tvar item = items[i];\n\t\t\t\t\t!thumbnails.includes(item.thumbnail) && thumbnails.push(item.thumbnail);\n\t\t\t\t\tif (item.gameId === e.gameId)\n\t\t\t\t\t\ttargetThumbnail = item.thumbnail;\n\t\t\t\t}\n\n\t\t\t\tif (!targetThumbnail) {\n\t\t\t\t\tcontroller.showNotification({\n\t\t\t\t\t\ttitle: model.getStr('warning'),\n\t\t\t\t\t\ttext: model.getStr('GameNotAvailOnDevice'),\n\t\t\t\t\t});\n\t\t\t\t} else if (model.gameFrameMobile)\n\t\t\t\t\tmodel.gameFrameMobile.open(thumbnails, targetThumbnail);\n\t\t\t}\n\t\t});\n\n\t\tmodel.on('LoginComplete', (e) => {\n\t\t\tthis.spaceBus.offered = model.spaceBusEnabled;\n\t\t\tif (model.notificationLength) {\n\t\t\t\tmodel.on('AllMessagesClosed', (e) => {\n\t\t\t\t\tdisplaySBOffer();\n\t\t\t\t\te.dispose();\n\t\t\t\t});\n\t\t\t} else\n\t\t\t\tdisplaySBOffer();\n\t\t});\n\n\t\tmodel.spaceBusEnabled && model.on('LogoutComplete', (e) => {\n\t\t\tclearTimeout(this.t);\n\t\t\tthis.spaceBus.offered = !model.spaceBusAuth;\n\t\t\tthis.spaceBus.offerDisplayed = false;\n\t\t});\n\n\t\tvar displaySBOffer = () => {\n\t\t\tclearTimeout(this.sbT);\n\n\t\t\tthis.spaceBus.offerDisplayed = true;\n\t\t\tthis.sbT = setTimeout(() => {\n\t\t\t\tthis.spaceBus.offerDisplayed = false;\n\t\t\t}, 5000);\n\t\t}\n\t},\n};","import model from \"@js/model.js\";\nimport controller from \"@js/controller/controller.js\";\nexport default {\n\tprops: ['parent'],\n\tdata(){\n\t\treturn {\n\t\t\tTHUMBNAIL_BOTH_SIDES_AMOUNT: 5,\n\t\t\tdisplayed: false,\n\t\t\tinnerDisplayed: false,\n\t\t\tcontentHidden: false,\n\t\t\tthumbnails: [],\n\t\t\thasPrevGameList: false,\n\t\t\thasNextGameList: false,\n\t\t\tswipePrevEnabled: false,\n\t\t\tswipeNextEnabled: false,\n\t\t\tunwatchMsgDisp: null,\n\t\t};\n\t},\n\tcreated(){\n\t\tmodel.gameFrameMobile = this;\n\n\t\tmodel.on('CloseGameFrame', 'GameStarted', (e) => this.displayed = false);\n\n\t\tmodel.on('WindowResize', () => {\n\t\t\tthis.contentHidden = true;\n\t\t\tclearTimeout(this._t1);\n\t\t\tthis._t1 = setTimeout(() => this.instanceIScroll?.refresh(), 0);\n\t\t});\n\n\t\tmodel.on('LoginComplete', 'LogoutComplete', (e) => this.displayed = false);\n\n\t\tthis.$watch(() => this.displayed, value => {\n\t\t\tclearTimeout(this._t2);\n\t\t\tif (!value) {\n\t\t\t\tthis.innerDisplayed = false;\n\t\t\t\tthis.thumbnails = [];\n\t\t\t}\n\t\t\telse this._t2 = setTimeout(() => this.innerDisplayed = true, 100);\n\n\t\t\t!value && clearTimeout(this._t3);\n\n\t\t\tmodel.observables.gameFrameDisplayed = value;\n\t\t\tmodel.dispatchEvent(value ? 'LockBodyScroll' : 'UnlockBodyScroll');\n\t\t});\n\n\t\tthis.unwatchMsgDisp = this.$watch(() => this.innerDisplayed, bool => {\n\t\t\tbool && model.dispatchEvent('OpenGameFrame');\n\t\t});\n\t},\n\tmethods: {\n\t\tswipePrevGame(){\n\t\t\tif (!this.instanceIScroll || this.instanceIScroll.isAnimating)\n\t\t\t\treturn;\n\n\t\t\tthis.instanceIScroll.prev();\n\t\t},\n\t\tswipeNextGame(){\n\t\t\tif (!this.instanceIScroll || this.instanceIScroll.isAnimating)\n\t\t\t\treturn;\n\n\t\t\tthis.instanceIScroll.next();\n\t\t},\n\t\tonCloseGameFrame(){\n\t\t\tthis.displayed = false;\n\t\t},\n\t\tonUpdateFav(thumbnail) {\n\t\t\tthis.controller[!thumbnail.fav ? 'addToFav' : 'removeFromFav'](thumbnail.getRawGameId(), null, true);\n\t\t},\n\t\tonStartGame(thumbnail) {\n\t\t\tif ((!thumbnail.hasPlayFun && !model.logged) || thumbnail.isDisabled())\n\t\t\t\treturn;\n\n\t\t\tcontroller.startGame({\n\t\t\t\tgameID: thumbnail.getGameId(),\n\t\t\t\tmode: 'fun',\n\t\t\t});\n\t\t},\n\t\tonStartGameMoney(thumbnail) {\n\t\t\tif (thumbnail.isDisabled()) return;\n\n\t\t\tthis.displayed = false;\n\t\t\tcontroller.startGame({\n\t\t\t\tgameID: thumbnail.getGameId(),\n\t\t\t\tmode: 'money',\n\t\t\t});\n\t\t},\n\t\tonInitIScroll(){\n\t\t\tlet vm = this;\n\n\t\t\tthis.instanceIScroll.on('scrollStart', function(){\n\t\t\t\tif (vm.unwatchMsgDisp) {\n\t\t\t\t\tvm.unwatchMsgDisp();\n\t\t\t\t\tvm.unwatchMsgDisp = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.currPage = 0;\n\n\t\t\tthis.instanceIScroll.on('scrollEnd', function() {\n\t\t\t\tif (!this.pages || !this.pages.length)\n\t\t\t\t\treturn;\n\n\t\t\t\t//iscroll has a bug where it does not calculate the correct \n\t\t\t\t//current page if you've swiped to the outside of the wrapper's \n\t\t\t\t//bounds from the second last page\n\t\t\t\tvar pageX = this.currentPage.pageX;\n\t\t\t\tif (this.x < this.currentPage.x) pageX++;\n\t\t\t\telse if (this.x > this.currentPage.x) pageX--;\n\n\t\t\t\tvm.currPage = pageX;\n\t\t\t\tif (vm.currPage == 0 && vm.hasPrevGameList) vm._loadPrevThumbnails();\n\t\t\t\telse if (vm.currPage == (this.pages.length - 1) && vm.hasNextGameList) vm._loadNextThumbnails();\n\n\t\t\t\tvm.swipePrevEnabled = vm.currPage > 0;\n\t\t\t\tvm.swipeNextEnabled = vm.currPage < this.pages.length - 1;\n\t\t\t});\n\n\t\t\t//Fixes iScroll's problem where a random page would \n\t\t\t//be shown upon orientation state change, instead of \n\t\t\t//showing the current page. \n\t\t\tthis.instanceIScroll.on('refresh', function() {\n\t\t\t\tif (this.pages && this.pages.length && this.currentPage && (vm.currPage != this.currentPage.pageX)) this.goToPage(vm.currPage, 0, 0);\n\n\t\t\t\tvm.contentHidden = false;\n\n\t\t\t\tvm.swipePrevEnabled = vm.currPage > 0;\n\t\t\t\tvm.swipeNextEnabled = vm.currPage < this.pages.length - 1;\n\t\t\t});\n\t\t},\n\t\topen(thumbnails, currThumbnail, categoryID, arrQuadThs){\n\t\t\tif(!Array.isArray(thumbnails) || !thumbnails.length) return;\n\t\n\t\t\tthis.displayed = true;\n\t\n\t\t\tthis.allThumbnails = thumbnails;\n\t\t\tthis.categoryID = categoryID;\n\t\n\t\t\t//correctly positioning grid thumbnails on the list\n\t\t\tif(Array.isArray(arrQuadThs) && arrQuadThs.length > 0){\n\t\t\t\tvar resColumn = model.getThumbnailColAmount();\n\t\t\t\tarrQuadThs.forEach((th, currIndex) => {\n\t\t\t\t\tvar row = th.getGridRowPos(categoryID);\n\t\t\t\t\tvar newIndex = resColumn * (row - 1) + th.getGridColumnPos(categoryID) - 1;\n\t\n\t\t\t\t\tfor(var i = currIndex - 1; i >= 0; i--){\n\t\t\t\t\t\tvar prevTh = arrQuadThs[i];\n\t\t\t\t\t\tnewIndex -= prevTh.getGridRowSize(this.categoryID) + prevTh.getGridColumnSize(this.categoryID) - 1;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tvar ind = this.allThumbnails.indexOf(th);\n\t\t\t\t\tif(ind !== -1){\n\t\t\t\t\t\tthis.allThumbnails.splice(ind, 1);\n\t\t\t\t\t\tthis.allThumbnails.splice(newIndex, 0, th);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\n\t\t\tclearTimeout(this._t3);\n\t\t\tthis._t3 = setTimeout(() => this._loadThumbnails(this.allThumbnails.indexOf(currThumbnail)), 0);\n\t\t},\n\t\t_loadPrevThumbnails(){\n\t\t\tsetTimeout(() => this._loadThumbnails(this.prevGameListIndex), 0);\n\t\t},\n\t\t_loadNextThumbnails(){\n\t\t\tsetTimeout(() => this._loadThumbnails(this.nextGameListIndex), 0);\n\t\t},\n\t\t_loadThumbnails(index){\n\t\t\tvar maxThIndex = this.allThumbnails.length - 1;\n\t\n\t\t\tvar lowerIndex = index - this.THUMBNAIL_BOTH_SIDES_AMOUNT;\n\t\t\tlowerIndex = lowerIndex < 0 ? 0 : lowerIndex;\n\t\n\t\t\tvar upperIndex = index + this.THUMBNAIL_BOTH_SIDES_AMOUNT;\n\t\t\tupperIndex = upperIndex >= maxThIndex ? maxThIndex : upperIndex;\n\t\n\t\t\tvar firstTh = this.allThumbnails[index];\n\t\t\tfirstTh.renderInfo();\n\t\n\t\t\tvar thumbnails = [firstTh];\n\t\n\t\t\tfor(var i = index - 1; i >= lowerIndex; i--){\n\t\t\t\tvar th = this.allThumbnails[i];\n\t\t\t\tif(!this._shouldAddThumbnail(th)){\n\t\t\t\t\tif(lowerIndex > 0)\n\t\t\t\t\t\tlowerIndex--;\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tth.renderInfo();\n\t\t\t\t\tthumbnails.unshift(th);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tfor(var i = index + 1; i <= upperIndex; i++){\n\t\t\t\tvar th = this.allThumbnails[i];\n\t\t\t\tif(!this._shouldAddThumbnail(th)){\n\t\t\t\t\tif(upperIndex < maxThIndex)\n\t\t\t\t\t\tupperIndex++;\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tth.renderInfo();\n\t\t\t\t\tthumbnails.push(th);\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tthis.prevGameListIndex = this._getGameListIndex(lowerIndex, true);\n\t\t\tthis.nextGameListIndex = this._getGameListIndex(upperIndex, false);\n\t\n\t\t\tthis.hasPrevGameList = this.prevGameListIndex >= 0;\n\t\t\tthis.hasNextGameList = this.nextGameListIndex <= maxThIndex;\n\t\n\t\t\tthis.thumbnails = thumbnails;\n\t\t\t\n\t\t\tvar beginningPage = thumbnails.indexOf(firstTh);\n\t\n\t\t\t/*\n\t\t\t\tIf we have a previous game list on the left hand side, then the first \"page\" in the current \n\t\t\t\tgame list is a placeholder page with a preloader which, when swiped to, loads up the \n\t\t\t\tprevious game list. That is why we have to increment the beginningPage variable by one, to \n\t\t\t\tdisplay the correct game. \n\t\t\t\t*/\n\t\t\tif(this.hasPrevGameList)\n\t\t\t\tbeginningPage++;\n\t\n\t\t\tthis.currPage = beginningPage;\n\t\t\tthis.contentHidden = true;\n\t\t\t\n\t\t\tsetTimeout(() => {\n\t\t\t\tif(this.instanceIScroll){\n\t\t\t\t\tthis.instanceIScroll.refresh();\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.instanceIScroll.refresh();\n\t\t\t\t\t\tthis.instanceIScroll.goToPage(this.currPage, 0, 0);\n\t\t\t\t\t\tthis.contentHidden = false;\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t},\n\t\t_shouldAddThumbnail(thumbnail){\n\t\t\treturn (this.categoryID ? !thumbnail.hidden[this.categoryID] : true) && !thumbnail.isDisabled();\n\t\t},\n\t\t_getGameListIndex(index, isPrev){\n\t\t\tvar length = this.allThumbnails.length;\n\t\n\t\t\tdo{\n\t\t\t\tisPrev ? index-- : index++;\n\t\t\t}\n\t\t\twhile(index >= 0 && index < length && !this._shouldAddThumbnail(this.allThumbnails[index]));\n\t\n\t\t\treturn index;\n\t\t}\n\t},\n};","\r\n\r\n"],"file":"lobby/app/10.93.1/game-frame-mobile-common.js"}