{"version":3,"file":"8575-48013ddd.pkg.js","mappings":"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","sources":["webpack://frontend-build-tools/./src/feature/cardlist/CardListSlider.jsx","webpack://frontend-build-tools/./src/feature/cardlist/cardlist.js","webpack://frontend-build-tools/./src/foundation/tracking/tracking.js","webpack://frontend-build-tools/./node_modules/react-escape-outside/dist/index.js"],"sourcesContent":["import { useSelector } from 'react-redux';\r\nimport React, { useEffect, useState } from 'react';\r\nimport Slider from 'react-slick';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n filterGamesByIds,\r\n filterFavoritesGames,\r\n filterRecentGames,\r\n filterGamesByGroup,\r\n filterGamesByQuery,\r\n queryStringToJSON,\r\n nudgeGames,\r\n sortGamesByDate,\r\n sortGamesByJackpot,\r\n sortGamesByPopularity\r\n} from 'app/shared/store/helpers/game';\r\n\r\nimport { Icon, Link } from 'atoms';\r\nimport { IconButton } from 'molecules';\r\nimport { GameCard } from 'organisms';\r\nimport { matchMedia } from 'foundation/utilities/breakpoint';\r\nimport { pushGaEvent, pushGaEventOnPageRedirect, formatString } from '../../foundation/tracking/tracking';\r\n\r\nconst CardListSlider = ({ cardListIsCentered, cardListLimit, instanceId,\r\n nudgedGames, selectedGames,prefilter, title, type, viewAllLink }) => {\r\n const sliderRef = React.useRef();\r\n const games = useSelector(state => state.games.games);\r\n const [filteredGames,setFilteredGames] = useState([]);\r\n const [alwaysShowFavorites,setAlwaysShowFavorites] = useState(false);\r\n const currentUser = useSelector(state => state.currentUser.currentUser);\r\n const [hasPrevArrow, setHasPrevArrow] = useState(false);\r\n const [hasNextArrow, setHasNextArrow] = useState(false);\r\n const [hasEmptyCardBackground, setHasEmptyCardBackground] = useState(false);\r\n const [isVertical, setVertical] = useState(false);\r\n const [numberOfVerticalSlides, setNumberOfVerticalSlides] = useState(3);\r\n const [showSlider, setShowSlider] = useState(true);\r\n const [isGameLauncherPage, setGameLauncherPage] = useState(false);\r\n\r\n const sliderReinit = () => {\r\n const currentBreakpoint = sliderRef.current.state.breakpoint;\r\n let slidesToShow = sliderSettings.slidesToShow;\r\n let breakpointSettings = null;\r\n if (currentBreakpoint) {\r\n breakpointSettings = sliderSettings.responsive.find(setting => setting.breakpoint === currentBreakpoint);\r\n slidesToShow = breakpointSettings.settings.slidesToShow;\r\n }\r\n const showArrow = filteredGames.length > slidesToShow;\r\n if(!isVertical) {\r\n setHasNextArrow(showArrow);\r\n }\r\n };\r\n\r\n const setSliderPadding = (sliderHeight) => {\r\n if(sliderHeight) {\r\n const paddingBottom = (sliderHeight > 260) ? sliderHeight % 260 : 0;\r\n if(document.getElementsByClassName('slick-vertical')[0]) {\r\n document.getElementsByClassName('slick-vertical')[0].style.paddingBottom = (paddingBottom + 'px');\r\n }\r\n } else if(document.getElementsByClassName('slick-initialized')[0]) {\r\n document.getElementsByClassName('slick-initialized')[0].style.paddingBottom = 0;\r\n }\r\n };\r\n\r\n const showVerticalArrowsAfterChange = () => {\r\n if(sliderRef.current.innerSlider.state.currentSlide === 0) {\r\n setHasPrevArrow(false);\r\n }\r\n if((sliderRef.current.innerSlider.state.currentSlide + sliderRef.current.props.slidesToShow) >= sliderRef.current.innerSlider.state.slideCount) {\r\n setHasNextArrow(false);\r\n }\r\n };\r\n\r\n const setAmountOfSlidesOnVertical = () => {\r\n let gameContainerHeight = document.getElementById('o-game-frame').clientHeight;//window.innerHeight;\r\n const buttonsHeight = document.getElementsByClassName('o-game-overview__buttons')[0]?.clientHeight || 0;\r\n const balanceHeight = document.getElementsByClassName('o-game-overview__balance')[0]?.clientHeight;\r\n const alternativeGameContainerHeight = window.innerHeight - buttonsHeight - balanceHeight - 100;\r\n\r\n let heightForCardSlider = 0;// (gameContainerHeight) - buttonsHeight - balanceHeight - 20 - 45; // 20 is padding in heights // 45 is cardlist title with margin height\r\n\r\n if(matchMedia('ml') && document.getElementsByClassName('o-game-overview--vertical')[0]) {\r\n\r\n gameContainerHeight = document.getElementsByClassName('o-game-overview--vertical')[0].clientHeight;\r\n\r\n heightForCardSlider = gameContainerHeight - buttonsHeight - balanceHeight - 100;\r\n\r\n if(heightForCardSlider > alternativeGameContainerHeight) {\r\n heightForCardSlider = alternativeGameContainerHeight;\r\n }\r\n\r\n }\r\n\r\n const iSlides = parseInt(heightForCardSlider/260, 10);\r\n if(iSlides) {\r\n if(numberOfVerticalSlides !== iSlides) {\r\n setNumberOfVerticalSlides(iSlides);\r\n }\r\n } else {\r\n if(numberOfVerticalSlides !== 1) {\r\n setNumberOfVerticalSlides(1);\r\n }\r\n }\r\n setSliderPadding(heightForCardSlider);\r\n };\r\n\r\n let sliderSettings = {\r\n onReInit: sliderReinit,\r\n className: (cardListIsCentered ? 'slick-slider--centered' : '') + (hasEmptyCardBackground ? 'm-cardlist__empty-cards-background' : ''),\r\n dots: false,\r\n infinite: hasNextArrow || hasPrevArrow,\r\n lazyLoad: 'progressive',\r\n speed: 500,\r\n slidesToShow: 5,\r\n slidesToScroll: 5,\r\n mobileFirst: true,\r\n responsive: [{\r\n breakpoint: 1600,\r\n settings: {\r\n slidesToShow: 5,\r\n slidesToScroll: 5,\r\n infinite: hasNextArrow || hasPrevArrow\r\n }\r\n },\r\n {\r\n breakpoint: 1440,\r\n settings: {\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n infinite: hasNextArrow || hasPrevArrow\r\n }\r\n },\r\n {\r\n breakpoint: 960,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n infinite: hasNextArrow || hasPrevArrow\r\n }\r\n },\r\n {\r\n breakpoint: 640,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2,\r\n infinite: hasNextArrow || hasPrevArrow\r\n }\r\n }]\r\n };\r\n\r\n if(isGameLauncherPage && isVertical) {\r\n setAmountOfSlidesOnVertical();\r\n sliderSettings = {\r\n onReInit: sliderReinit,\r\n afterChange: showVerticalArrowsAfterChange,\r\n className: (cardListIsCentered ? 'slick-slider--centered' : '') + (hasEmptyCardBackground ? 'm-cardlist__empty-cards-background' : ''),\r\n dots: false,\r\n vertical: true,\r\n infinite: false,\r\n lazyLoad: 'progressive',\r\n speed: 500,\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n mobileFirst: true,\r\n responsive: [{\r\n breakpoint: 960,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 1600,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 1440,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n }]\r\n };\r\n }\r\n\r\n const handleGames = (filterGames) => {\r\n let filteredGames = filterGames;\r\n if (nudgedGames?.length > 0) {\r\n filteredGames = nudgeGames(filterGames, games, nudgedGames);\r\n }\r\n setFilteredGames(filteredGames.slice(0, cardListLimit));\r\n };\r\n\r\n const handleGamesWithPrefilter = (prefilterGames) => {\r\n const queryStart = prefilter.indexOf('?');\r\n let query = prefilter;\r\n if (queryStart > 0) {\r\n const group = query.slice(0,queryStart);\r\n if (group) {\r\n prefilterGames = filterGamesByGroup(prefilterGames, group);\r\n }\r\n query = query.slice(queryStart);\r\n }\r\n prefilterGames = filterGamesByQuery(prefilterGames, queryStringToJSON(query));\r\n handleGames(prefilterGames);\r\n };\r\n\r\n useEffect(() => {\r\n setGameLauncherPage(document.getElementById('GamePage') !== null);\r\n\r\n if (prefilter) {\r\n handleGamesWithPrefilter(games);\r\n }\r\n if((type === 'latest' || type ==='favorites') && (!hasNextArrow || !hasPrevArrow)) {\r\n // insert empty cards background\r\n setHasEmptyCardBackground(true);\r\n }\r\n\r\n if(document.getElementById('GamePage') !== null) {\r\n if(matchMedia('ml')) {\r\n setAmountOfSlidesOnVertical();\r\n\r\n setVertical(true);\r\n setTimeout( () => {\r\n sliderSettings = {\r\n onReInit: sliderReinit,\r\n afterChange: showVerticalArrowsAfterChange,\r\n className: (cardListIsCentered ? 'slick-slider--centered' : '') + (hasEmptyCardBackground ? 'm-cardlist__empty-cards-background' : ''),\r\n dots: false,\r\n vertical: true,\r\n infinite: false,\r\n lazyLoad: 'progressive',\r\n speed: 500,\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n mobileFirst: true,\r\n responsive: [{\r\n breakpoint: 960,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 1600,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 1440,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n }]\r\n };\r\n }, 1000);\r\n }\r\n window.addEventListener('resize', (event) => {\r\n if(matchMedia('ml')) {\r\n setVertical(true);\r\n setAmountOfSlidesOnVertical();\r\n sliderSettings = {\r\n onReInit: sliderReinit,\r\n afterChange: showVerticalArrowsAfterChange,\r\n className: (cardListIsCentered ? 'slick-slider--centered' : '') + (hasEmptyCardBackground ? 'm-cardlist__empty-cards-background' : ''),\r\n dots: false,\r\n vertical: true,\r\n infinite: false,\r\n lazyLoad: 'progressive',\r\n speed: 500,\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n mobileFirst: true,\r\n responsive: [{\r\n breakpoint: 960,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 1600,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n },\r\n {\r\n breakpoint: 1440,\r\n settings: {\r\n slidesToShow: numberOfVerticalSlides,\r\n slidesToScroll: numberOfVerticalSlides,\r\n infinite: false\r\n }\r\n }]\r\n };\r\n\r\n } else {\r\n setVertical(false);\r\n const container = document.getElementsByClassName('o-game-overview');\r\n if(container) { // rendered on gamelauncher page\r\n container[0].classList.remove('o-game-overview--vertical');\r\n if(document.getElementsByClassName('m-cardlist__arrow-wrapper--right')[0]) {\r\n document.getElementsByClassName('m-cardlist__arrow-wrapper--right')[0].style = null;\r\n }\r\n setSliderPadding(0);\r\n }\r\n }\r\n });\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(isGameLauncherPage) {\r\n setHasEmptyCardBackground(false);\r\n setHasNextArrow(true);\r\n\r\n if(type === 'latest' && window.location.href.indexOf('/spil-for-sjov/') > -1) {\r\n setShowSlider(false);\r\n } else if(type !== 'latest' && window.location.href.indexOf('/pengespil/') > -1) {\r\n setShowSlider(false);\r\n }\r\n\r\n if(matchMedia('ml')) {\r\n setVertical(true);\r\n }\r\n }\r\n\r\n }, [isGameLauncherPage]);\r\n\r\n useEffect(() => {\r\n if(type === 'favorites' && currentUser.isAuthenticated) {\r\n handleGames(filterFavoritesGames(games));\r\n\r\n if(filteredGames?.length) {\r\n setAlwaysShowFavorites(true);\r\n }\r\n }\r\n if(type === 'select' && selectedGames?.length > 0) {\r\n handleGames(filterGamesByIds(games, selectedGames));\r\n }\r\n if(type === 'new') {\r\n handleGames(sortGamesByDate(games));\r\n }\r\n if(type === 'jackpot') {\r\n handleGames(sortGamesByJackpot(games));\r\n }\r\n if(type === 'latest' && currentUser.isAuthenticated) {\r\n handleGames(filterRecentGames(games));\r\n }\r\n if(type === 'popular' && showSlider) {\r\n handleGames(sortGamesByPopularity(games, true));\r\n }\r\n\r\n if (['all'].includes(type)) {\r\n if (prefilter) {\r\n handleGamesWithPrefilter(games);\r\n } else {\r\n handleGames(games);\r\n }\r\n }\r\n },[games]);\r\n\r\n\r\n\r\n const prevNextButton = (direction) => {\r\n if (direction === 'left') {\r\n if (!hasPrevArrow) return null;\r\n return
{\r\n sliderRef.current.slickPrev();\r\n setHasNextArrow(true);\r\n trackOnPage(title, 'klik_horisontal');\r\n } }\r\n className='m-cardlist__arrow-prev' />
;\r\n }\r\n\r\n if (direction === 'right') {\r\n if (!hasNextArrow) return null;\r\n return
{\r\n sliderRef.current.slickNext();\r\n setHasPrevArrow(true);\r\n trackOnPage(title, 'klik_horisontal');\r\n } }\r\n className='m-cardlist__arrow-next' />
;\r\n }\r\n\r\n if (direction === 'down') {\r\n\r\n if (!hasNextArrow) return null;\r\n return
{\r\n sliderRef.current.slickNext();\r\n setHasPrevArrow(true);\r\n trackOnPage(title, 'klik_vertikal');\r\n } }\r\n className='m-cardlist__arrow-next' />
;\r\n }\r\n if (direction === 'up') {\r\n\r\n if (!hasPrevArrow) return null;\r\n return
{\r\n sliderRef.current.slickPrev();\r\n setHasNextArrow(true);\r\n trackOnPage(title, 'klik_vertikal');\r\n } }\r\n className='m-cardlist__arrow-next'/>
;\r\n }\r\n };\r\n\r\n const emptyCards = () => {\r\n const EmptyCardNeeded = 6 - filteredGames?.length ;\r\n let emptyCards = [];\r\n\r\n for (let i = 0; i < EmptyCardNeeded; i++) {\r\n emptyCards.push(\r\n {index: i}\r\n );\r\n }\r\n return emptyCards;\r\n };\r\n\r\n let PrevButton = prevNextButton('left');\r\n let NextButton = prevNextButton('right');\r\n\r\n if(isVertical) {\r\n PrevButton = prevNextButton('up');\r\n NextButton = prevNextButton('down');\r\n const container = document.getElementsByClassName('o-game-overview');\r\n if(container) { // rendered on gamelauncher page\r\n container[0].classList.add('o-game-overview--vertical');\r\n }\r\n }\r\n\r\n const trackOnPage = (ribbon, label) => {\r\n if (ribbon) ribbon = formatString(ribbon);\r\n label = label ? formatString(label) : 'klik_paa_pil';\r\n pushGaEvent('spilbaand', ribbon, label);\r\n }\r\n\r\n const trackRedirect = (url, ribbon, label) => {\r\n label = label ? formatString(label) : 'se_alle';\r\n if (ribbon) ribbon = formatString(ribbon);\r\n pushGaEventOnPageRedirect('spilbaand', ribbon, label);\r\n if (url) {\r\n window.location.href = url;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n { showSlider ?
\r\n <>\r\n {PrevButton}\r\n {\r\n (filteredGames?.length > 0 || alwaysShowFavorites) ?
\r\n
\r\n
\r\n {viewAllLink && trackRedirect(viewAllLink.Url, title, title) } className={'m-cardlist__header-title'}>\r\n {title}\r\n }\r\n {viewAllLink && trackRedirect(viewAllLink.Url, title, viewAllLink.Text)} className={'m-cardlist__header-link'}>\r\n {viewAllLink.Text}\r\n \r\n }\r\n
\r\n \r\n { filteredGames?.length && filteredGames.map((game, i) => (\r\n \r\n ))}\r\n { hasEmptyCardBackground && emptyCards().map((ignore, index) => )}\r\n \r\n\r\n
\r\n
:\r\n null\r\n }\r\n {filteredGames.length ? NextButton : null}\r\n \r\n
: null}\r\n \r\n );\r\n};\r\n\r\nCardListSlider.propTypes = {\r\n cardListIsCentered: PropTypes.bool,\r\n cardListLimit: PropTypes.number,\r\n instanceId: PropTypes.string,\r\n maxShownCards: PropTypes.number,\r\n nudgedGames: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n position: PropTypes.number\r\n })),\r\n selectedGames: PropTypes.array,\r\n prefilter: PropTypes.string,\r\n title: PropTypes.string,\r\n type: PropTypes.string,\r\n vertical: PropTypes.bool,\r\n viewAllLink: PropTypes.object\r\n};\r\n\r\nCardListSlider.defaultProps = {\r\n cardListIsCentered: false,\r\n cardListLimit: 30,\r\n instanceId: '',\r\n maxShownCards: 30,\r\n nudgedGames: [],\r\n selectedGames: [],\r\n prefilter: '',\r\n title: null,\r\n type: null,\r\n vertical: false,\r\n viewAllLink: null,\r\n};\r\n\r\nexport default CardListSlider;","import BaseFeature from 'foundation/base/base';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { store } from 'app/shared/store';\r\nimport CardListSlider from './CardListSlider';\r\n\r\nclass CardList extends BaseFeature {\r\n constructor(element) {\r\n super(element);\r\n this.element = element;\r\n this.loadReactApp();\r\n }\r\n\r\n loadReactApp() {\r\n ReactDOM.render(\r\n <>\r\n
\r\n \r\n \r\n \r\n
\r\n , this.element);\r\n }\r\n}\r\n\r\nexport default CardList;","export const onError = (errors, e) => {\r\n const concatErrors = Object.keys(errors).map((key) => {\r\n const error = errors[key];\r\n return `${key.toLowerCase()}_${error.type}`;\r\n }).join(',');\r\n\r\n if (typeof window.TC?.gaEvent === 'function') {\r\n window.TC?.gaEvent(e.target.name, 'error', concatErrors);\r\n }\r\n};\r\n\r\nexport const pushGaEvent = (category, action, label, value = '') => {\r\n const dataLayerAvailable = Array.isArray(window.dataLayer);\r\n\r\n if (!dataLayerAvailable) {\r\n console.warn('Tracking DataLayer not available');\r\n return;\r\n }\r\n\r\n var tracking = {\r\n event: 'gaEvent',\r\n eventSyntax: {\r\n action: action,\r\n category: category,\r\n value: value,\r\n label: label\r\n }\r\n };\r\n\r\n window.dataLayer.push(tracking);\r\n};\r\n\r\n// format string from e.g. 'Populære spil' to 'populaere_spil'\r\nexport var formatString = (str) => {\r\n str = str.replace(/\\s+/g, '_').toLowerCase();\r\n str = str.replace(/æ/g, 'ae');\r\n str = str.replace(/ø/g, 'oe');\r\n str = str.replace(/å/g, 'aa');\r\n return str;\r\n};\r\n\r\nexport const pushGaEventOnPageRedirect = (category, action, label) => {\r\n localStorage.setItem('localStorageGaEventTracking', JSON.stringify({\r\n category: category,\r\n action: action,\r\n label: label,\r\n }));\r\n};\r\n\r\nexport const getGaEventAfterPageRedirect = () => {\r\n var ls = localStorage.getItem('localStorageGaEventTracking');\r\n if (ls) {\r\n ls = JSON.parse(ls);\r\n if (ls.category !== null\r\n && ls.action !== null\r\n && ls.label !== null) {\r\n pushGaEvent(ls.category, ls.action, ls.label);\r\n }\r\n localStorage.removeItem('localStorageGaEventTracking');\r\n }\r\n};\r\n\r\nexport const pushGaEventVirtualPage = (name, virtualPath) => {\r\n const dataLayerAvailable = Array.isArray(window.dataLayer);\r\n\r\n if (!dataLayerAvailable) {\r\n console.warn('Tracking DataLayer not available');\r\n return;\r\n }\r\n\r\n var tracking = {\r\n event: 'virtualPage',\r\n page: {\r\n name: name,\r\n virtualPath: virtualPath\r\n }\r\n };\r\n\r\n window.dataLayer.push(tracking);\r\n};\r\n\r\nexport const pushGaEventVirtualPageOnPageRedirect = (name, virtualPath) => {\r\n let vp = '/virtualpath/' + virtualPath;\r\n localStorage.setItem('localStorageGaEventVirtualPageTracking', JSON.stringify({\r\n name: name,\r\n virtualPath: vp\r\n }));\r\n};\r\n\r\nexport const getGaEventVirtualPageAfterPageRedirect = () => {\r\n var ls = localStorage.getItem('localStorageGaEventVirtualPageTracking');\r\n if (ls) {\r\n ls = JSON.parse(ls);\r\n if (ls.name !== null\r\n && ls.virtualPath !== null) {\r\n pushGaEventVirtualPage(ls.name, ls.virtualPath);\r\n }\r\n localStorage.removeItem('localStorageGaEventVirtualPageTracking');\r\n }\r\n};\r\n\r\nexport const pushHeroTrackingEvent = (eventType, bannerName) => {\r\n const dataLayerAvailable = Array.isArray(window.dataLayer);\r\n\r\n if (!dataLayerAvailable) {\r\n console.warn('Tracking DataLayer not available');\r\n return;\r\n }\r\n\r\n var tracking = {\r\n event: eventType,\r\n ecommerce: {\r\n [eventType]: {\r\n promotions: [{\r\n name: 'tivo',\r\n position: 'hero_banner',\r\n creative: bannerName\r\n }]\r\n }\r\n }\r\n };\r\n\r\n window.dataLayer.push(tracking);\r\n};\r\n\r\nexport const initTracking = () => {\r\n const dataLayerAvailable = Array.isArray(window.dataLayer);\r\n\r\n const pushVirtualPage = function(name, path, type) {\r\n if (!dataLayerAvailable) {\r\n console.warn('Tracking DataLayer not available');\r\n // No reason to do any furhter if dataLayer is not available or method is called without an object\r\n return;\r\n }\r\n\r\n const pushEvent = {\r\n event: 'virtualPage',\r\n page: {\r\n name: name.trim(),\r\n virtualPath: '/virtualPath' + path ? path.toLowerCase() : '',\r\n type: type ? type.toLowerCase() : ''\r\n }\r\n };\r\n\r\n window.dataLayer.push(pushEvent);\r\n };\r\n\r\n const userEvent = function(userObj) {\r\n if (!dataLayerAvailable || (typeof userObj === 'undefined' && !userObj)) {\r\n // No reason to do any furhter if dataLayer is not available or method is called without an object\r\n return;\r\n }\r\n\r\n var pushEvent = {\r\n event: 'umPushed',\r\n user: userObj\r\n };\r\n\r\n window.dataLayer.push(pushEvent);\r\n };\r\n\r\n const gaEvent = function(action, category,label) {\r\n if (!dataLayerAvailable) {\r\n console.warn('Tracking DataLayer not available');\r\n // No reason to do any furhter if dataLayer is not available or method is called without an object\r\n return;\r\n }\r\n\r\n var trackData = {\r\n 'event': 'gaEvent',\r\n 'eventSyntax': {\r\n 'action': action,\r\n 'category': category,\r\n 'label': label\r\n }\r\n };\r\n\r\n window.dataLayer.push(trackData);\r\n };\r\n\r\n // Global bindings here\r\n\r\n // Make available on window (namespaced to not conflict with other scripts)\r\n window.TC = window.TC || {};\r\n window.TC.userEvent = userEvent;\r\n window.TC.pushVirtualPage = pushVirtualPage;\r\n window.TC.gaEvent = gaEvent;\r\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar EscapeOutside = /*#__PURE__*/function (_Component) {\n _inherits(EscapeOutside, _Component);\n\n var _super = _createSuper(EscapeOutside);\n\n function EscapeOutside() {\n var _this;\n\n _classCallCheck(this, EscapeOutside);\n\n _this = _super.call(this);\n _this.onEscape = _this.onEscape.bind(_assertThisInitialized(_this));\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(EscapeOutside, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener(\"keydown\", this.onEscape);\n document.addEventListener(this.props.mouseEvent, this.onClick, true);\n document.addEventListener(this.props.touchEvent, this.onClick, true);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.onEscape);\n document.removeEventListener(this.props.mouseEvent, this.onClick, true);\n document.removeEventListener(this.props.touchEvent, this.onClick, true);\n }\n }, {\n key: \"onEscape\",\n value: function onEscape(e) {\n if (e.keyCode === 27) this.props.onEscapeOutside();\n }\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n if (this.ref && !this.ref.contains(e.target)) this.props.onEscapeOutside(e);\n }\n }, {\n key: \"getRef\",\n value: function getRef(ref) {\n this.ref = ref;\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = Object.assign({}, this.props);\n var children = props.children;\n delete props.onEscapeOutside;\n delete props.children;\n delete props.mouseEvent;\n delete props.touchEvent;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.getRef\n }, props), children);\n }\n }]);\n\n return EscapeOutside;\n}(_react.Component);\n\nexports[\"default\"] = EscapeOutside;\n\n_defineProperty(EscapeOutside, \"propTypes\", {\n children: _propTypes[\"default\"].element.isRequired,\n onEscapeOutside: _propTypes[\"default\"].func.isRequired,\n mouseEvent: _propTypes[\"default\"].string,\n touchEvent: _propTypes[\"default\"].string\n});\n\n_defineProperty(EscapeOutside, \"defaultProps\", {\n mouseEvent: \"click\",\n touchEvent: \"touchend\"\n});"],"names":["CardListSlider","_ref","cardListIsCentered","cardListLimit","instanceId","nudgedGames","selectedGames","prefilter","title","type","viewAllLink","sliderRef","React","games","useSelector","state","filteredGames","setFilteredGames","useState","alwaysShowFavorites","setAlwaysShowFavorites","currentUser","hasPrevArrow","setHasPrevArrow","hasNextArrow","setHasNextArrow","hasEmptyCardBackground","setHasEmptyCardBackground","isVertical","setVertical","numberOfVerticalSlides","setNumberOfVerticalSlides","showSlider","setShowSlider","isGameLauncherPage","setGameLauncherPage","sliderReinit","currentBreakpoint","current","breakpoint","slidesToShow","sliderSettings","breakpointSettings","responsive","find","setting","settings","showArrow","length","setSliderPadding","sliderHeight","paddingBottom","document","getElementsByClassName","style","showVerticalArrowsAfterChange","innerSlider","currentSlide","props","slideCount","setAmountOfSlidesOnVertical","gameContainerHeight","getElementById","clientHeight","buttonsHeight","balanceHeight","alternativeGameContainerHeight","window","innerHeight","heightForCardSlider","matchMedia","iSlides","parseInt","onReInit","className","dots","infinite","lazyLoad","speed","slidesToScroll","mobileFirst","afterChange","vertical","handleGames","filterGames","nudgeGames","slice","handleGamesWithPrefilter","prefilterGames","queryStart","indexOf","query","group","filterGamesByGroup","filterGamesByQuery","queryStringToJSON","useEffect","setTimeout","addEventListener","event","container","classList","remove","location","href","isAuthenticated","filterFavoritesGames","filterGamesByIds","sortGamesByDate","sortGamesByJackpot","filterRecentGames","sortGamesByPopularity","includes","prevNextButton","direction","IconButton","iconId","onClick","slickPrev","trackOnPage","slickNext","PrevButton","NextButton","add","ribbon","label","formatString","pushGaEvent","trackRedirect","url","pushGaEventOnPageRedirect","id","Link","target","Url","Text","Icon","Slider","_extends","ref","map","game","i","GameCard","key","canFavorize","emptyCards","EmptyCardNeeded","push","index","ignore","isEmpty","propTypes","PropTypes","maxShownCards","position","defaultProps","CardList","BaseFeature","constructor","element","super","this","loadReactApp","ReactDOM","Name","Provider","store","CardListIsCentered","CardListLimit","NudgeGames","SelectedGames","Prefilter","CardListHeaderText","Type","CardListHeaderLink","onError","errors","e","concatErrors","Object","keys","error","toLowerCase","join","TC","gaEvent","name","category","action","value","arguments","undefined","Array","isArray","dataLayer","tracking","eventSyntax","console","warn","str","replace","localStorage","setItem","JSON","stringify","getGaEventAfterPageRedirect","ls","getItem","parse","removeItem","pushGaEventVirtualPageOnPageRedirect","virtualPath","vp","getGaEventVirtualPageAfterPageRedirect","pushGaEventVirtualPage","page","pushHeroTrackingEvent","eventType","bannerName","ecommerce","promotions","creative","initTracking","dataLayerAvailable","userEvent","userObj","pushEvent","user","pushVirtualPage","path","trim","trackData","exports","obj","_react","__esModule","_typeof","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","defineProperty","getOwnPropertyDescriptor","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","_propTypes","WeakMap","Symbol","iterator","assign","source","apply","_defineProperties","descriptor","enumerable","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","_getPrototypeOf","getPrototypeOf","_defineProperty","EscapeOutside","_Component","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","Derived","_super","result","Super","Reflect","construct","sham","Proxy","Date","toString","_isNativeReflectConstruct","NewTarget","_possibleConstructorReturn","_this","instance","_classCallCheck","onEscape","bind","getRef","mouseEvent","touchEvent","removeEventListener","keyCode","onEscapeOutside","contains","children","createElement","Component","isRequired","func","string"],"sourceRoot":""}