{"version":3,"sources":["utility/LocalStorage.ts","utils.ts","contexts/LottoContext.tsx","utility/CustomLocalForageDriver.ts","index.tsx"],"names":["NOTIFICATIONS","localforage","defineDriver","localVariableDriver","setDriver","INDEXEDDB","tokenPromise","Skin","previousNotifications","add","notifications","getItem","entries","i","length","unshift","setItem","get","markAllAsRead","forEach","entry","read","markAsRead","index","quickPickButtons","markAsShown","value","splashScreen","showed","splashScreenHasBeenShown","date","isSameDate","now","Date","areTheSameDates","show","setLimit","getLimit","parseInt","increaseCounter","counter","getCounter","preventLogging","set","swipeAnimation","hideAnimation","recentSearches","currentServerDatetime","datetime","datetimeToString","storedPurchase","purchase","currencyCodeSetting","currency","authorizationTokenStorage","token","Promise","resolve","value2","mainHostStorage","localizationStorage","skinStorage","Default","themeStorage","Theme","forceIframeStorage","showStarCampaignAnimation","showAnimation","rushinRabbitAmount","amount","pickifyAmount","lottoDefaultCurrencies","trizStorage","setDontShowAgain","getDontShowAgain","identificationsStorage","matomoScriptStorage","WEEK_DAY","MONTH","dateToStringFull","getDay","getMonth","getDate","getFullYear","dateToString","hideYear","dateString","isToday","isTomorrow","formatRelativeDate","today","yesterday","setDate","tomorrow","toDateString","date1","date2","dateFnsIsToday","dateFnsIsTomorrow","isTomorrowOrLater","compareDate","isPastDate","isPast","hasPast","getTime","pad","num","padStart","dateToStringValues","trim","getHours","getMinutes","getSeconds","timeToStringValues","timeLeft","diff","hours","Math","floor","days","minutes","minutesAndSecondsLeft","timeDifferenceInMinutes","seconds","round","timePast","months","daysPast","dateRounded","years","weeks","secondsToTimeString","totalSecondsLeft","hoursStr","toString","minutesStr","secondsStr","secondsToTrimmedTimeString","stringToDate","split","time","month","day","year","dateStringToDate","resizeImage","file","maxwidth","maxheight","callback","fileTracker","FileReader","onload","image","Image","canvas","document","createElement","height","width","ctx","getContext","clearRect","drawImage","dataURL","toDataURL","indexOf","parts","contentType","raw","Blob","type","window","atob","rawLength","uInt8Array","Uint8Array","charCodeAt","dataURLToBlob","src","URL","createObjectURL","readAsDataURL","REWARD_TYPES","CAMPAIGN_TYPES","isTouchEnabled","navigator","maxTouchPoints","filterOutDuplicates","arr","uniqueItems","Set","result","item","has","push","TicketGameType","TicketGameTypeShort","getClassByCampaignType","scaleType","campaignName","DailyCounter","AmountCounter","getPickFromPickNumber","pickNumber","Pick","PICK2","PICK3","PICK4","PICK5","shortPick","gameType","pickLabel","daysOfWeek","getShortDay","gameTypesFromTicket","ticketGameType","Pick2Boxed","pick","TicketType","BOXED","GameType","short","P2B","Pick2Straight","STRAIGHT","P2S","Pick3Boxed","P3B","Pick3Straight","P3S","Pick4Boxed","P4B","Pick4Straight","P4S","Pick5Boxed","P5B","Pick5Straight","P5S","ticketGameTypesFromTypes","ticketType","toCamelCase","str","replace","word","toLowerCase","toUpperCase","TrizGameType","TrizPick","defaultPurchaseValue","numbers","dates","drawings","trizDrawings","trizCombos","multiplier","timeDifference","timeDifferenceTriz","showRibbon","offDrawingsConfirmed","hasLoaded","defaultBalance","balanceFormatted","balance","alreadySearch","hasErrorBalance","currencyCode","isOpenBalanceModal","orderCurrencyType","unicode","defaultWheelsHarvestSeason","maxStreakDays","maxLevels","hasCampaignStart","spinWheel","resources","stages","defaultCampaignStatus","currentStreakGoal","currentLevel","isParticipating","timeForNextStreak","availableSpinsByLevel","remainingAmount","canPlayerClaim","showClosestDate","startClaimDate","endClaimDate","playerDaysOfWeek","allowedDaysOfWeek","playerAmountGoal","currentStreakPlayerAmount","PlayerContext","createContext","setPurchase","playerInformation","avatar","nickname","setPlayerInformation","balanceContext","refreshBalance","buyAgain","isSplashActive","setIsCurrentSplashView","balanceList","setCurrencyAndBalance","toggleBalanceModal","campaignInformation","campaignStatus","isOpenPromoSeasonModal","togglePromoSessionModal","isOpenSpinModal","toggleSpinModal","isOpenCampaignStatusModal","toggleCampaignStatusModal","isOpenCongratulationCampaignModal","toggleCongratulationCampaignModal","congratulationValue","setCongratulationValue","isOpenLevelUpModal","toggleLevelUpModal","isOpenLoseStreakModal","toggleLoseStreakModal","getCampaignStatus","id","getCampaignInformation","addCampaignId","campaign","campaignIdSelected","promotionNumber","rewardType","isOpenCampaignOptionModal","toggleCampaignOptionsModal","campaignList","setCampaignList","localization","theme","Error","_driver","_initStorage","options","_storage","clear","this","key","iterate","iteratee","iterationNumber","reject","keys","then","promises","map","all","iterateeResults","lastResult","catch","n","Object","removeItem","smoothscroll","polyfill","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","paths","location","pathname","search","subdirectory","skinParam","URLSearchParams","skin","CustomerApp","lazy","CustomerCronosApp","CustomerAppComponent","Cronos","AdminApp","InternalAdminApp","SocialApp","ReactDOM","render","basename","fallback","setVh","vh","innerHeight","documentElement","style","setProperty","addEventListener"],"mappings":"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","file":"static/js/main.92b07666.chunk.js","sourcesContent":["import localforage from 'localforage';\nimport { INotification } from '../services/customer-api-client';\nimport { areTheSameDates, datetimeToString } from '../utils';\nimport { IDefaultCurrencies, IPurchase, Theme } from '../contexts/LottoContext';\nimport { localVariableDriver } from './CustomLocalForageDriver';\n\nconst NOTIFICATIONS = 'previousNotifications';\nconst QUICKPICK_BOTTOM_BUTTONS = 'quickpickBottomButtons';\nconst SPLASH_SCREEN = 'alreadyShowedSplashScreen';\nconst SPLASH_SCREEN_DATE = 'splashScreenLastDate';\nconst PREVENT_LOGGING = 'preventLogging';\nconst SWIPE_ANIMATION = 'alreadyShowedSwipeAnimation';\nconst RECENT_SEARCHES = 'lastRecentSearch';\nconst CURRENT_SERVER_DATETIME = 'currentServerDatetime';\nconst STORED_PURCHASE_KEY = 'spk';\nconst CURRENCY_CODE = 'currencyCode';\nconst TOKEN = 'tk';\nconst MAIN_HOST = 'main_host';\nconst LOCALIZATION = 'localization';\nconst SKIN_KEY = 'sk';\nconst THEME_KEY = 'theme';\nconst SPLASH_SCREEN_LIMIT_KEY = 'splashScreenLimit';\nconst SPLASH_SCREEN_COUNTER_KEY = 'splashScreenCounter';\nconst RUSHIN_RABBIT_AMOUNT = 'rushinRabbitAmount';\nconst PICKIFY_AMOUNT = 'pickifyAmount';\nconst FORCE_IFRAME = 'forceIframe';\nconst SHOW_STAR_CAMPAIGN_ANIMATION = 'showStarCampaignAnimation';\nconst LOTTO_CURRENCIES = 'lottoDefaultCurrencies';\nconst TRIZ_DONT_SHOW_AGAIN = 'trizDontShowAgain';\nconst IDENTIFICATIONS = 'identifications';\nconst MATOMO_SCRIPT = 'mtm';\n\nlocalforage.defineDriver(localVariableDriver);\n\nlocalforage.setDriver([localforage.INDEXEDDB, 'localVariableStorage']);\n\nexport const previousNotifications = {\n async add(notifications: INotification[]) {\n const entries: INotification[] =\n (await localforage.getItem(NOTIFICATIONS)) || [];\n for (let i = notifications.length - 1; i >= 0; i--) {\n entries.unshift(notifications[i]);\n }\n localforage.setItem(NOTIFICATIONS, entries);\n },\n async get() {\n const entries: INotification[] =\n (await localforage.getItem(NOTIFICATIONS)) || [];\n return entries;\n },\n async markAllAsRead() {\n const entries = await this.get();\n entries.forEach((entry) => (entry.read = true));\n localforage.setItem(NOTIFICATIONS, entries);\n },\n async markAsRead(index: number) {\n const entries = await this.get();\n entries[index].read = true;\n localforage.setItem(NOTIFICATIONS, entries);\n },\n};\n\nexport const quickPickButtons = {\n markAsShown() {\n localforage.setItem(QUICKPICK_BOTTOM_BUTTONS, true);\n },\n async get() {\n const value: boolean | null = await localforage.getItem(QUICKPICK_BOTTOM_BUTTONS);\n return value === true;\n },\n};\n\nexport const splashScreen = {\n async showed() {\n const splashScreenHasBeenShown = await localforage.getItem(SPLASH_SCREEN);\n const date = await localforage.getItem(SPLASH_SCREEN_DATE);\n let isSameDate = false;\n if (date) {\n const now = new Date();\n isSameDate = areTheSameDates(date, now);\n }\n return splashScreenHasBeenShown === true && isSameDate;\n },\n show() {\n localforage.setItem(SPLASH_SCREEN, true);\n localforage.setItem(SPLASH_SCREEN_DATE, new Date());\n },\n setLimit(value: string) {\n localforage.setItem(SPLASH_SCREEN_LIMIT_KEY, value);\n },\n async getLimit(): Promise {\n const value = (await localforage.getItem(SPLASH_SCREEN_LIMIT_KEY)) || '0';\n return parseInt(value, 10);\n },\n async increaseCounter() {\n const counter = (await localforage.getItem(SPLASH_SCREEN_COUNTER_KEY)) || 0;\n localforage.setItem(SPLASH_SCREEN_COUNTER_KEY, counter + 1);\n },\n async getCounter() {\n const counter = await localforage.getItem(SPLASH_SCREEN_COUNTER_KEY);\n return counter || 0;\n },\n};\n\nexport const preventLogging = {\n set(preventLogging: boolean) {\n localforage.setItem(PREVENT_LOGGING, preventLogging);\n },\n async get() {\n const value: boolean | null = await localforage.getItem(PREVENT_LOGGING);\n return value === true;\n },\n};\n\nexport const swipeAnimation = {\n async showed() {\n const value: boolean | null = await localforage.getItem(SWIPE_ANIMATION);\n return value === true;\n },\n show() {\n localforage.setItem(SWIPE_ANIMATION, true);\n },\n hideAnimation() {\n localforage.setItem(SWIPE_ANIMATION, false);\n },\n};\n\nexport const recentSearches = {\n set(date: string) {\n localforage.setItem(RECENT_SEARCHES, date);\n },\n async get() {\n const value: string | null = await localforage.getItem(RECENT_SEARCHES);\n return value || '';\n },\n};\n\nexport const currentServerDatetime = {\n set(datetime: string) {\n localforage.setItem(CURRENT_SERVER_DATETIME, datetime);\n },\n async get() {\n const value: string | null = await localforage.getItem(CURRENT_SERVER_DATETIME);\n if (!!value) return value;\n return datetimeToString(new Date());\n },\n};\n\nexport const storedPurchase = {\n set(purchase: IPurchase) {\n localforage.setItem(STORED_PURCHASE_KEY, purchase);\n },\n async get() {\n const value: IPurchase | null = await localforage.getItem(STORED_PURCHASE_KEY);\n return value;\n },\n};\n\nexport const currencyCodeSetting = {\n set(currency: string) {\n localforage.setItem(CURRENCY_CODE, currency);\n },\n async get() {\n const value: string | null = await localforage.getItem(CURRENCY_CODE);\n return value || '';\n },\n};\n\nlet tokenPromise: Promise;\n\nexport const authorizationTokenStorage = {\n set(token: string) {\n tokenPromise = new Promise((resolve) => {\n localforage.setItem(TOKEN, token, resolve);\n });\n },\n async get(): Promise {\n const value: string | null = await localforage.getItem(TOKEN);\n if (!!value) {\n return value;\n }\n await tokenPromise;\n const value2 = await localforage.getItem(TOKEN);\n return value2;\n },\n};\n\nexport const mainHostStorage = {\n set(value: string) {\n localforage.setItem(MAIN_HOST, value);\n },\n async get(): Promise {\n const value: string | null = await localforage.getItem(MAIN_HOST);\n return value;\n },\n};\n\nexport const localizationStorage = {\n set(value: string) {\n localforage.setItem(LOCALIZATION, value);\n },\n async get(): Promise {\n const value: string | null = await localforage.getItem(LOCALIZATION);\n return value;\n },\n};\n\nexport enum Skin {\n Default = 'default',\n Cronos = 'cronos',\n}\n\nexport const skinStorage = {\n set(value: Skin) {\n localforage.setItem(SKIN_KEY, value);\n },\n async get(): Promise {\n const value: Skin = (await localforage.getItem(SKIN_KEY)) || Skin.Default;\n return value;\n },\n};\n\nexport const themeStorage = {\n set(value: Theme) {\n localforage.setItem(THEME_KEY, value);\n },\n async get(): Promise {\n const value: Theme = (await localforage.getItem(THEME_KEY)) || Theme.Default;\n return value;\n },\n};\n\nexport const forceIframeStorage = {\n set(value: boolean) {\n localforage.setItem(FORCE_IFRAME, value);\n },\n async get(): Promise {\n const value: boolean | null = await localforage.getItem(FORCE_IFRAME);\n return value;\n },\n};\n\nexport const showStarCampaignAnimation = {\n set(showAnimation: boolean) {\n localforage.setItem(SHOW_STAR_CAMPAIGN_ANIMATION, showAnimation);\n },\n async get() {\n const value: boolean | null = await localforage.getItem(SHOW_STAR_CAMPAIGN_ANIMATION);\n return value === true;\n },\n};\n\nexport const rushinRabbitAmount = {\n set(amount: number) {\n localforage.setItem(RUSHIN_RABBIT_AMOUNT, amount);\n },\n async get() {\n const value: number | null = await localforage.getItem(RUSHIN_RABBIT_AMOUNT);\n return value || 0;\n },\n};\n\nexport const pickifyAmount = {\n set(amount: number) {\n localforage.setItem(PICKIFY_AMOUNT, amount);\n },\n async get() {\n const value: number | null = await localforage.getItem(PICKIFY_AMOUNT);\n return value || 0;\n },\n};\n\nexport const lottoDefaultCurrencies = {\n set(amount: IDefaultCurrencies) {\n localforage.setItem(LOTTO_CURRENCIES, amount);\n },\n async get() {\n const value: IDefaultCurrencies | null = await localforage.getItem(\n LOTTO_CURRENCIES\n );\n return value;\n },\n};\n\nexport const trizStorage = {\n setDontShowAgain(value: boolean) {\n localforage.setItem(TRIZ_DONT_SHOW_AGAIN, value);\n },\n async getDontShowAgain() {\n const value: boolean | null = await localforage.getItem(TRIZ_DONT_SHOW_AGAIN);\n return value === true;\n },\n};\n\ninterface IIdentifications {\n playerId: string;\n affiliateId: string;\n}\n\nexport const identificationsStorage = {\n set(value: IIdentifications) {\n localforage.setItem(IDENTIFICATIONS, value);\n },\n async get(): Promise {\n const value: IIdentifications | null = await localforage.getItem(\n IDENTIFICATIONS\n );\n return value;\n },\n};\n\nexport const matomoScriptStorage = {\n set(value: string) {\n localforage.setItem(MATOMO_SCRIPT, value);\n },\n async get(): Promise {\n const value: string | null = await localforage.getItem(MATOMO_SCRIPT);\n return value;\n },\n};\n","import { isToday as dateFnsIsToday, isTomorrow as dateFnsIsTomorrow, isPast } from 'date-fns';\nimport { GameType, Pick, TicketType } from './contexts/LottoContext';\n\nconst WEEK_DAY = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nconst MONTH = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\nexport const dateToStringFull = (date: Date): string =>\n `${WEEK_DAY[date.getDay()]}, ${MONTH[date.getMonth()]} ${date.getDate()}, ${date.getFullYear()}`;\n\nexport const dateToString = (date: Date, hideYear?: boolean): string => {\n let dateString = `${WEEK_DAY[date.getDay()]}, ${MONTH[date.getMonth()]} ${date.getDate()}`;\n if (!hideYear) dateString += `, ${date.getFullYear()}`;\n if (isToday(date)) dateString = `Today ${dateString}`;\n if (isTomorrow(date)) dateString = `Tomorrow ${dateString}`;\n return dateString;\n};\n\nexport function formatRelativeDate(date: Date, hideYear?: boolean): string {\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n const tomorrow = new Date(today);\n tomorrow.setDate(tomorrow.getDate() + 1);\n\n if (date.toDateString() === today.toDateString()) {\n return 'Today';\n } else if (date.toDateString() === yesterday.toDateString()) {\n return 'Yesterday';\n } else if (date.toDateString() === tomorrow.toDateString()) {\n return 'Tomorrow';\n } else {\n let dateString = `${WEEK_DAY[date.getDay()]}, ${MONTH[date.getMonth()]} ${date.getDate()}`;\n if (!hideYear) dateString += `, ${date.getFullYear()}`;\n return dateString;\n }\n}\n\nexport const areTheSameDates = (date1: Date, date2: Date): boolean => {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n};\n\nexport const isToday = (date: Date): boolean => dateFnsIsToday(date);\n\nexport const isTomorrow = (date: Date): boolean => dateFnsIsTomorrow(date);\n\nexport const isTomorrowOrLater = (date: Date, compareDate?: Date): boolean => {\n const now = compareDate || new Date();\n const [nowYear, nowMonth, nowDay] = [now.getFullYear(), now.getMonth(), now.getDate()];\n const tomorrow = new Date(nowYear, nowMonth, nowDay + 1);\n return date >= tomorrow;\n};\n\nexport const isPastDate = (date: Date): boolean => isPast(date);\n\nexport const hasPast = (date: Date, compareDate?: Date): boolean => {\n if (!compareDate) compareDate = new Date();\n return date.getTime() < compareDate.getTime();\n};\n\nexport const pad = (num: any): string => `${num}`.padStart(2, '0');\n\nexport const dateToStringValues = (date: Date): string =>\n `${pad(date.getMonth() + 1).trim()}/${pad(date.getDate()).trim()}/${date.getFullYear()}`;\n\nconst timeToStringValues = (date: Date): string =>\n `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\n\nexport const datetimeToString = (date: Date): string =>\n `${dateToStringValues(date)} ${timeToStringValues(date)}`;\n\nexport const timeLeft = (date: Date, compareDate?: Date): string => {\n if (!compareDate) compareDate = new Date();\n const diff = date.getTime() - compareDate.getTime();\n const hours = Math.floor(diff / 3600000);\n if (hours > 0) {\n if (hours < 24) {\n return `In ${hours}h`;\n } else {\n const days = Math.floor(hours / 24);\n return `In ${days} ${days > 1 ? 'days' : 'day'}`;\n }\n } else {\n const minutes = Math.floor(diff / 60000);\n if (minutes > 0) {\n return `In ${minutes}m`;\n } else {\n return `In <1m`;\n }\n }\n};\n\nexport const minutesAndSecondsLeft = (date: Date, timeDifferenceInMinutes: number): string => {\n const now = new Date();\n const diff = date.getTime() - (now.getTime() + timeDifferenceInMinutes * 60000);\n let minutes = Math.floor(diff / 60000);\n let seconds = Math.round((diff / 60000 - minutes) * 60);\n if (seconds === 60) {\n minutes++;\n seconds = 0;\n }\n return `${pad(minutes)}:${pad(seconds)}`;\n};\n\nexport const timePast = (date: Date, compareDate?: Date): string => {\n if (!compareDate) compareDate = new Date();\n const diff = compareDate.getTime() - date.getTime();\n const months = Math.floor(diff / 3600000 / 24 / 30);\n if (months > 0) {\n return `${months} ${months === 1 ? 'month' : 'months'} ago`;\n } else {\n const days = Math.floor(diff / 3600000 / 24);\n if (days > 0) {\n return `${days} ${days === 1 ? 'day' : 'days'} ago`;\n } else {\n const hours = Math.floor(diff / 3600000);\n if (hours > 0) {\n return `${hours}h ago`;\n } else {\n const minutes = Math.floor(diff / 60000);\n if (minutes > 0) {\n return `${minutes}m ago`;\n } else return `Just now`;\n }\n }\n }\n};\n\nexport const daysPast = (date: Date, compareDate?: Date): string => {\n if (!compareDate) compareDate = new Date();\n const dateRounded = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const compareDateRounded = new Date(\n compareDate.getFullYear(),\n compareDate.getMonth(),\n compareDate.getDate()\n );\n const diff = compareDateRounded.getTime() - dateRounded.getTime();\n const years = Math.floor(diff / 3600000 / 24 / 365);\n if (years > 1) {\n return 'Over a year ago';\n } else if (years === 1) {\n return 'Last year';\n } else {\n const months = Math.floor(diff / 3600000 / 24 / 30);\n if (months > 1) {\n return `${months} months ago`;\n } else if (months === 1) {\n return 'Last month';\n } else {\n const weeks = Math.floor(diff / 3600000 / 24 / 7);\n if (weeks > 1) {\n return `${weeks} weeks ago`;\n } else if (weeks === 1) {\n return 'Last week';\n } else {\n const days = Math.floor(diff / 3600000 / 24);\n if (days > 1) {\n return `${days} days ago`;\n } else if (days === 1) {\n return 'Yesterday';\n } else {\n return 'Today';\n }\n }\n }\n }\n};\n\nexport const secondsToTimeString = (totalSecondsLeft: number): string => {\n const hours = Math.floor(totalSecondsLeft / 3600);\n const minutes = Math.floor((totalSecondsLeft % 3600) / 60);\n const seconds = totalSecondsLeft % 60;\n\n const hoursStr = hours.toString().padStart(2, '0');\n const minutesStr = minutes.toString().padStart(2, '0');\n const secondsStr = seconds.toString().padStart(2, '0');\n\n return `${hoursStr}:${minutesStr}:${secondsStr}`;\n};\n\nexport const secondsToTrimmedTimeString = (totalSecondsLeft: number): string => {\n const hours = Math.floor(totalSecondsLeft / 3600);\n const minutes = Math.floor((totalSecondsLeft % 3600) / 60);\n const seconds = totalSecondsLeft % 60;\n\n const hoursStr = hours.toString().padStart(2, '0');\n const minutesStr = minutes.toString().padStart(2, '0');\n const secondsStr = seconds.toString().padStart(2, '0');\n\n return hours > 0\n ? `${hoursStr}:${minutesStr}:${secondsStr}`\n : minutes > 0\n ? `${minutesStr}:${secondsStr}`\n : secondsStr;\n};\n\nexport const stringToDate = (dateString: string): Date => {\n const [date, time] = dateString.split(' ');\n const [month, day, year] = date.split('/');\n const [hours, minutes, seconds] = time ? time.split(':') : ['00', '00', '00'];\n return new Date(\n parseInt(year),\n parseInt(month) - 1,\n parseInt(day),\n parseInt(hours),\n parseInt(minutes),\n parseInt(seconds)\n );\n};\n\nexport const dateStringToDate = (dateString: string): Date => {\n const [month, day, year] = dateString.split('/');\n return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n};\n\nexport function resizeImage(\n file: File,\n maxwidth: number,\n maxheight: number,\n callback: (url: Blob) => void\n) {\n const fileTracker = new FileReader();\n fileTracker.onload = function () {\n const image = new Image();\n image.onload = function () {\n const canvas = document.createElement('canvas');\n\n if (image.height > maxheight) {\n image.width *= maxheight / image.height;\n image.height = maxheight;\n }\n\n if (image.width > maxwidth) {\n image.height *= maxwidth / image.width;\n image.width = maxwidth;\n }\n const ctx = canvas.getContext('2d');\n ctx!.clearRect(0, 0, canvas.width, canvas.height);\n canvas.width = image.width;\n canvas.height = image.height;\n ctx!.drawImage(image, 0, 0, image.width, image.height);\n const dataURL = canvas.toDataURL('image/png');\n callback(dataURLToBlob(dataURL));\n };\n image.src = URL.createObjectURL(file);\n };\n fileTracker.readAsDataURL(file);\n}\n\nfunction dataURLToBlob(dataURL: string): Blob {\n const BASE64_MARKER = ';base64,';\n if (dataURL.indexOf(BASE64_MARKER) === -1) {\n const parts = dataURL.split(',');\n const contentType = parts[0].split(':')[1];\n const raw = parts[1];\n\n return new Blob([raw], { type: contentType });\n }\n\n const parts = dataURL.split(BASE64_MARKER);\n const contentType = parts[0].split(':')[1];\n const raw = window.atob(parts[1]);\n const rawLength = raw.length;\n\n const uInt8Array = new Uint8Array(rawLength);\n\n for (let i = 0; i < rawLength; ++i) {\n uInt8Array[i] = raw.charCodeAt(i);\n }\n\n return new Blob([uInt8Array], { type: contentType });\n}\n\nexport const isTouchEnabled = () => {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n};\n\nexport function filterOutDuplicates(arr: T[]): T[] {\n const uniqueItems: Set = new Set();\n const result: T[] = [];\n\n for (const item of arr) {\n if (!uniqueItems.has(item)) {\n uniqueItems.add(item);\n result.push(item);\n }\n }\n\n return result;\n}\n\nexport enum REWARD_TYPES {\n Wheel = 'SpinWheel',\n None = 'None',\n FlatCashback = 'FlatCashback',\n TieredCashback = 'TieredCashback',\n}\n\nexport enum CAMPAIGN_TYPES {\n DailyCounter = 'DailyCounter',\n AmountCounter = 'AmountCounter',\n PurchaseCounter = 'PurchaseCounter',\n MANUAL_AMOUNT = 'ManualAmount',\n PERCENTAGE_RANGE = 'PercentageRange',\n ActionerStreak = 'ActionerStreak',\n GiftCard = 'GiftCard',\n RewardBased = 'RewardBased',\n SpinKick = 'SpinKick',\n}\n\nexport const getClassByCampaignType = (scaleType: string, campaignName: string) => {\n if (scaleType === CAMPAIGN_TYPES.DailyCounter) {\n return '';\n } else if (\n scaleType === CAMPAIGN_TYPES.AmountCounter &&\n campaignName !== 'T-day Campaign' &&\n campaignName !== 'Frenzy Friday'\n ) {\n return 'pumpkin';\n } else if (scaleType === CAMPAIGN_TYPES.AmountCounter && campaignName === 'T-day Campaign') {\n return 'tday';\n } else if (scaleType === CAMPAIGN_TYPES.AmountCounter && campaignName === 'Frenzy Friday') {\n return 'black-friday';\n } else {\n return '';\n }\n};\n\nexport const getPickFromPickNumber = (pickNumber: number): Pick => {\n switch (pickNumber) {\n case 2:\n return Pick.PICK2;\n case 3:\n return Pick.PICK3;\n case 4:\n return Pick.PICK4;\n case 5:\n return Pick.PICK5;\n default:\n return Pick.PICK2;\n }\n};\n\nexport const shortPick = (gameType: Pick) => {\n switch (gameType) {\n case Pick.PICK2:\n return 'P2';\n case Pick.PICK3:\n return 'P3';\n case Pick.PICK4:\n return 'P4';\n case Pick.PICK5:\n return 'P5';\n default:\n return '';\n }\n};\n\nexport const pickLabel = (gameType: Pick) => {\n switch (gameType) {\n case Pick.PICK2:\n return 'Pick 2';\n case Pick.PICK3:\n return 'Pick 3';\n case Pick.PICK4:\n return 'Pick 4';\n case Pick.PICK5:\n return 'Pick 5';\n default:\n return '';\n }\n};\n\nexport const daysOfWeek = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n];\nexport const getShortDay = (day: string) => {\n const shortDaysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n const index = daysOfWeek.indexOf(day);\n return index !== -1 ? shortDaysOfWeek[index] : '';\n};\n\nexport enum TicketGameType {\n Pick2Straight = 'TicketPick2Straight',\n Pick2Boxed = 'TicketPick2Boxed',\n Pick3Straight = 'TicketPick3Straight',\n Pick3Boxed = 'TicketPick3Boxed',\n Pick4Straight = 'TicketPick4Straight',\n Pick4Boxed = 'TicketPick4Boxed',\n Pick5Straight = 'TicketPick5Straight',\n Pick5Boxed = 'TicketPick5Boxed',\n}\n\nenum TicketGameTypeShort {\n P2S = 'P2S',\n P2B = 'P2B',\n P3S = 'P3S',\n P3B = 'P3B',\n P4S = 'P4S',\n P4B = 'P4B',\n P5S = 'P5S',\n P5B = 'P5B',\n}\n\nexport const gameTypesFromTicket = (ticketGameType: TicketGameType) => {\n switch (ticketGameType) {\n case TicketGameType.Pick2Boxed:\n return {\n pick: Pick.PICK2,\n type: TicketType.BOXED,\n gameType: GameType.PICK2,\n short: TicketGameTypeShort.P2B,\n };\n case TicketGameType.Pick2Straight:\n return {\n pick: Pick.PICK2,\n type: TicketType.STRAIGHT,\n gameType: GameType.PICK2,\n short: TicketGameTypeShort.P2S,\n };\n case TicketGameType.Pick3Boxed:\n return {\n pick: Pick.PICK3,\n type: TicketType.BOXED,\n gameType: GameType.PICK3,\n short: TicketGameTypeShort.P3B,\n };\n case TicketGameType.Pick3Straight:\n return {\n pick: Pick.PICK3,\n type: TicketType.STRAIGHT,\n gameType: GameType.PICK3,\n short: TicketGameTypeShort.P3S,\n };\n case TicketGameType.Pick4Boxed:\n return {\n pick: Pick.PICK4,\n type: TicketType.BOXED,\n gameType: GameType.PICK4,\n short: TicketGameTypeShort.P4B,\n };\n case TicketGameType.Pick4Straight:\n return {\n pick: Pick.PICK4,\n type: TicketType.STRAIGHT,\n gameType: GameType.PICK4,\n short: TicketGameTypeShort.P4S,\n };\n case TicketGameType.Pick5Boxed:\n return {\n pick: Pick.PICK5,\n type: TicketType.BOXED,\n gameType: GameType.PICK5,\n short: TicketGameTypeShort.P5B,\n };\n case TicketGameType.Pick5Straight:\n return {\n pick: Pick.PICK5,\n type: TicketType.STRAIGHT,\n gameType: GameType.PICK5,\n short: TicketGameTypeShort.P5S,\n };\n }\n};\n\nexport const ticketGameTypesFromTypes = (pick: Pick, ticketType: TicketType) => {\n switch (pick) {\n case Pick.PICK2:\n return ticketType === TicketType.STRAIGHT\n ? { gameType: TicketGameType.Pick2Straight, short: TicketGameTypeShort.P2S }\n : { gameType: TicketGameType.Pick2Boxed, short: TicketGameTypeShort.P2B };\n case Pick.PICK3:\n return ticketType === TicketType.STRAIGHT\n ? { gameType: TicketGameType.Pick3Straight, short: TicketGameTypeShort.P3S }\n : { gameType: TicketGameType.Pick3Boxed, short: TicketGameTypeShort.P3B };\n case Pick.PICK4:\n return ticketType === TicketType.STRAIGHT\n ? { gameType: TicketGameType.Pick4Straight, short: TicketGameTypeShort.P4S }\n : { gameType: TicketGameType.Pick4Boxed, short: TicketGameTypeShort.P4B };\n case Pick.PICK5:\n return ticketType === TicketType.STRAIGHT\n ? { gameType: TicketGameType.Pick5Straight, short: TicketGameTypeShort.P5S }\n : { gameType: TicketGameType.Pick5Boxed, short: TicketGameTypeShort.P5B };\n }\n};\n\nexport const toCamelCase = (str: string) => {\n return str\n .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (word, index) =>\n index === 0 ? word.toLowerCase() : word.toUpperCase()\n )\n .replace(/\\s+/g, '');\n};\n","import { createContext } from 'react';\nimport { IResourceCampaign } from '../customer/components/Common';\n\nexport enum Pick {\n PICK2 = 'pick2',\n PICK3 = 'pick3',\n PICK4 = 'pick4',\n PICK5 = 'pick5',\n POWERBALL = 'powerball',\n RABBIT = 'rabbit',\n PICKIFY = 'pickify',\n TRIZ = 'triz',\n}\n\nexport enum TicketType {\n BOXED = 'boxed',\n STRAIGHT = 'straight',\n}\n\nexport enum GameType {\n PICK2 = 'LotteryPick2',\n PICK3 = 'LotteryPick3',\n PICK4 = 'LotteryPick4',\n PICK5 = 'LotteryPick5',\n}\n\nexport interface INumber {\n value: string;\n isNew: boolean;\n willBeRemoved: boolean;\n newIndex: number;\n}\n\nexport interface IDomain {\n url: string;\n isEnabled: boolean;\n}\n\nexport interface IDrawing {\n uniqueDrawingId: number;\n description: string;\n state: string;\n stateName: string;\n scheduledHour: string;\n drawDate: string;\n gameType: GameType;\n isEnabled: boolean;\n anyFakeTicketNumber: boolean;\n domains: IDomain[];\n url: string;\n noAction: boolean;\n hasFireBall: boolean;\n}\n\nenum TrizGameType {\n Triz = 'LotteryTriz',\n}\n\nexport interface ITrizDrawing extends Omit {\n gameType: TrizGameType;\n}\n\nexport enum TrizPick {\n P2 = 'pick2',\n P3 = 'pick3',\n P4 = 'pick4',\n P5 = 'pick5',\n}\n\nexport interface TrizCombo {\n id: string;\n number: string;\n splittedNumbers: string[];\n pick: TrizPick;\n}\n\nexport interface IPurchase {\n numbers: INumber[];\n pick: Pick;\n dates: Date[];\n drawings: IDrawing[];\n trizDrawings: ITrizDrawing[];\n trizCombos: TrizCombo[];\n amount: number;\n multiplier: number;\n type: TicketType;\n timeDifference: number;\n timeDifferenceTriz: number;\n showRibbon: boolean;\n offDrawingsConfirmed: boolean;\n hasLoaded: boolean;\n}\n\nexport interface IPlayerInformation {\n avatar: string;\n nickname: string;\n}\n\nexport interface BalanceResponse {\n accounts: any[];\n balance: number;\n balanceFormatted: string;\n changePercentage: number;\n code: string;\n locked: number;\n lockedFormatted: string;\n type: string;\n visible?: boolean;\n isRewardCurrency?: boolean;\n isStandardCurrency?: boolean;\n orderCurrencyType?: string;\n unicode: string;\n}\n\ninterface ISpinWheels {\n level: number;\n title: string;\n segments: string[];\n streakGoal?: number;\n percentage?: string;\n}\n\ninterface IStages {\n level: number;\n title: string;\n percentage?: string;\n}\nexport interface ICampaignHSeason {\n maxStreakDays: number;\n maxLevels: number;\n hasCampaignStart: boolean;\n spinWheel: ISpinWheels[];\n stages?: IStages[];\n resources: { key: string; url: string }[];\n}\nexport interface ICampaignHSeasonStatus {\n currentStreakGoal: number;\n currentLevel: number;\n isParticipating: boolean;\n timeForNextStreak: number;\n availableSpinsByLevel?: { turns: number; level: number }[];\n remainingAmount?: number;\n canPlayerClaim?: boolean;\n startClaimDate?: string;\n endClaimDate?: string;\n showClosestDate?: boolean;\n allowedDaysOfWeek?: string[];\n playerDaysOfWeek?: string[];\n playerAmountGoal?: number;\n currentStreakPlayerAmount?: number;\n}\nexport interface IBalance {\n balanceFormatted: string;\n balance: number;\n alreadySearch: boolean;\n hasErrorBalance: boolean;\n currencyCode: string;\n isOpenBalanceModal: boolean;\n orderCurrencyType?: string;\n unicode: string;\n}\n\nexport interface ICampaignSelect {\n promotionNumber: number;\n campaignName: string;\n scaleType: string;\n rewardType: string;\n resources?: IResourceCampaign[];\n urlImage?: any;\n}\n\ninterface ICurrency {\n balance: number;\n currencyCode: string;\n orderCurrencyType?: string;\n unicode: string;\n}\n\nexport interface IDefaultCurrencies {\n standardCurrency: string;\n rewardCurrency: string;\n}\n\nexport enum Theme {\n Default = 'default',\n Halloween2024 = 'halloween2024',\n}\n\ntype IPlayerContext = {\n purchase: IPurchase;\n setPurchase: (newPurchase: IPurchase) => void;\n playerInformation: IPlayerInformation;\n setPlayerInformation: (information: IPlayerInformation) => void;\n balanceContext: IBalance;\n refreshBalance: () => Promise;\n buyAgain: (newPurchase: IPurchase) => void;\n isSplashActive: boolean;\n setIsCurrentSplashView: (isActive: boolean) => void;\n balanceList: BalanceResponse[];\n setCurrencyAndBalance: (currency: ICurrency) => void;\n toggleBalanceModal: () => void;\n campaignInformation: ICampaignHSeason;\n campaignStatus: ICampaignHSeasonStatus;\n isOpenPromoSeasonModal: boolean;\n togglePromoSessionModal: () => any;\n isOpenSpinModal: boolean;\n toggleSpinModal: () => any;\n isOpenCampaignStatusModal: boolean;\n toggleCampaignStatusModal: () => void;\n isOpenCongratulationCampaignModal: boolean;\n toggleCongratulationCampaignModal: () => void;\n setCongratulationValue: (value: string) => void;\n congratulationValue: string;\n isOpenLevelUpModal: boolean;\n toggleLevelUpModal: () => void;\n isOpenLoseStreakModal: boolean;\n toggleLoseStreakModal: () => void;\n getCampaignStatus: (id?: number) => void;\n getCampaignInformation: (id?: number) => void;\n addCampaignId: (campaign: ICampaignSelect) => void;\n campaignIdSelected: ICampaignSelect;\n shareData?: {\n files: any[];\n title: string;\n text: string;\n };\n isOpenCampaignOptionModal: boolean;\n toggleCampaignOptionsModal: () => void;\n campaignList: ICampaignSelect[];\n setCampaignList: (campaignList: ICampaignSelect[]) => void;\n localization: string | null;\n theme: Theme;\n};\n\nconst now = new Date();\n\nexport const defaultPurchaseValue: IPurchase = {\n numbers: [],\n pick: Pick.PICK3,\n dates: [new Date(now.getFullYear(), now.getMonth(), now.getDate())],\n drawings: [],\n trizDrawings: [],\n trizCombos: [],\n amount: 1,\n multiplier: 1,\n type: TicketType.STRAIGHT,\n timeDifference: 0,\n timeDifferenceTriz: 0,\n showRibbon: false,\n offDrawingsConfirmed: false,\n hasLoaded: false,\n};\n\nconst defaultPlayerInformation: IPlayerInformation = {\n avatar: '',\n nickname: '',\n};\n\nexport const defaultBalance: IBalance = {\n balanceFormatted: '',\n balance: 0,\n alreadySearch: false,\n hasErrorBalance: false,\n currencyCode: '',\n isOpenBalanceModal: false,\n orderCurrencyType: '',\n unicode: '',\n};\n\nexport const defaultWheelsHarvestSeason: ICampaignHSeason = {\n maxStreakDays: 0,\n maxLevels: 0,\n hasCampaignStart: false,\n spinWheel: [],\n resources: [],\n stages: [],\n};\n\nexport const defaultCampaignStatus: ICampaignHSeasonStatus = {\n currentStreakGoal: 0,\n currentLevel: 0,\n isParticipating: false,\n timeForNextStreak: 0,\n availableSpinsByLevel: [],\n remainingAmount: 0,\n canPlayerClaim: false,\n showClosestDate: false,\n startClaimDate: '',\n endClaimDate: '',\n playerDaysOfWeek: [],\n allowedDaysOfWeek: [],\n playerAmountGoal: 0,\n currentStreakPlayerAmount: 0,\n};\n\nexport const PlayerContext = createContext({\n purchase: defaultPurchaseValue,\n setPurchase: () => {},\n playerInformation: defaultPlayerInformation,\n setPlayerInformation: () => {},\n balanceContext: defaultBalance,\n refreshBalance: () => Promise.resolve(0),\n buyAgain: () => {},\n isSplashActive: false,\n setIsCurrentSplashView: () => {},\n balanceList: [],\n setCurrencyAndBalance: () => {},\n toggleBalanceModal: () => {},\n campaignInformation: defaultWheelsHarvestSeason,\n campaignStatus: defaultCampaignStatus,\n isOpenPromoSeasonModal: false,\n togglePromoSessionModal: () => {},\n isOpenSpinModal: false,\n toggleSpinModal: () => {},\n isOpenCampaignStatusModal: false,\n toggleCampaignStatusModal: () => {},\n isOpenCongratulationCampaignModal: false,\n toggleCongratulationCampaignModal: () => {},\n congratulationValue: '',\n setCongratulationValue: (value: string) => {},\n isOpenLevelUpModal: false,\n toggleLevelUpModal: () => {},\n isOpenLoseStreakModal: false,\n toggleLoseStreakModal: () => {},\n getCampaignStatus: (id?: number) => {},\n getCampaignInformation: (id?: number) => {},\n addCampaignId: (campaign: ICampaignSelect) => {},\n campaignIdSelected: {\n promotionNumber: -1,\n campaignName: '',\n scaleType: '',\n rewardType: '',\n resources: [],\n },\n isOpenCampaignOptionModal: false,\n toggleCampaignOptionsModal: () => {},\n campaignList: [],\n setCampaignList: (campaignList: ICampaignSelect[]) => {},\n localization: null,\n theme: Theme.Default,\n});\n","interface LocalForageDbMethodsCore {\n getItem(key: string, callback?: (err: any, value: T | null) => void): Promise;\n setItem(key: string, value: T, callback?: (err: any, value: T) => void): Promise;\n removeItem(key: string, callback?: (err: any) => void): Promise;\n clear(callback?: (err: any) => void): Promise;\n length(callback?: (err: any, numberOfKeys: number) => void): Promise;\n key(keyIndex: number, callback?: (err: any, key: string) => void): Promise;\n keys(callback?: (err: any, keys: string[]) => void): Promise;\n iterate(\n iteratee: (value: T, key: string, iterationNumber: number) => U,\n callback?: (err: any, result: U) => void\n ): Promise;\n}\n\ninterface LocalForageDbInstanceOptions {\n name?: string;\n storeName?: string;\n}\n\ninterface LocalForageDropInstanceFn {\n (dbInstanceOptions?: LocalForageDbInstanceOptions, callback?: (err: any) => void): Promise;\n}\n\ninterface LocalForageDriverMethodsOptional {\n dropInstance?: LocalForageDropInstanceFn;\n}\n\ninterface LocalForageDriverDbMethods\n extends LocalForageDbMethodsCore,\n LocalForageDriverMethodsOptional {}\n\ninterface LocalForageDriver extends LocalForageDriverDbMethods {\n _driver: string;\n _initStorage(options: LocalForageOptions): void;\n _support?: boolean | LocalForageDriverSupportFunc;\n}\n\ninterface LocalVariableDriver extends LocalForageDriver {\n _storage: object;\n}\n\nclass BreakIteration extends Error {\n constructor() {\n super('Iteration stopped by BreakIteration');\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n// Define the custom driver\nexport const localVariableDriver: LocalVariableDriver = {\n _driver: 'localVariableStorage',\n _initStorage(options: LocalForageOptions): void {\n // Custom initialization code here...\n },\n _storage: {}, // Local variable to store the values\n\n clear(callback?: (err: any) => void): Promise {\n // @ts-ignore\n this._storage = {}; // Clear the local variable\n if (callback) {\n callback(null);\n }\n return Promise.resolve();\n },\n\n getItem(key: string, callback?: (err: any, value: T | null) => void): Promise {\n // @ts-ignore\n const value = this._storage[key];\n if (callback) {\n callback(null, value);\n }\n return Promise.resolve(value);\n },\n\n iterate(\n iteratee: (value: T, key: string, iterationNumber: number) => U,\n callback?: (err: any, result: U) => void\n ): Promise {\n let iterationNumber = 0;\n\n return new Promise((resolve, reject) => {\n this.keys()\n .then((keys) => {\n const promises = keys.map((key) => {\n // @ts-ignore\n const value = this._storage[key];\n return Promise.resolve(iteratee(value, key, iterationNumber++));\n });\n\n Promise.all(promises)\n .then((iterateeResults) => {\n const lastResult = iterateeResults[iterateeResults.length - 1];\n resolve(lastResult);\n if (callback && lastResult) {\n callback(null, lastResult);\n }\n })\n .catch(reject);\n })\n .catch(reject);\n });\n },\n\n key(n: number, callback?: (err: any, key: string) => void): Promise {\n const keys = Object.keys(this._storage);\n const key = keys[n] || '';\n if (callback) {\n callback(null, key);\n }\n return Promise.resolve(key);\n },\n\n keys(callback?: (err: any, keys: string[]) => void): Promise {\n const keys = Object.keys(this._storage);\n if (callback) {\n callback(null, keys);\n }\n return Promise.resolve(keys);\n },\n\n length(callback?: (err: any, numberOfKeys: number) => void): Promise {\n const length = Object.keys(this._storage).length;\n if (callback) {\n callback(null, length);\n }\n return Promise.resolve(length);\n },\n\n removeItem(key: string, callback?: (err: any) => void): Promise {\n // @ts-ignore\n delete this._storage[key];\n if (callback) {\n callback(null);\n }\n return Promise.resolve();\n },\n\n setItem(key: string, value: T, callback?: (err: any, value: T) => void): Promise {\n // @ts-ignore\n this._storage[key] = value;\n if (callback) {\n callback(null, value);\n }\n return Promise.resolve(value);\n },\n};\n","import 'bootstrap/dist/css/bootstrap.css';\nimport './index.css';\nimport React, { lazy, Suspense } from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport smoothscroll from 'smoothscroll-polyfill';\nimport { Skin, skinStorage } from './utility/LocalStorage';\n\nsmoothscroll.polyfill();\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')!;\nconst rootElement = document.getElementById('root');\nconst paths = {\n customer: 'player',\n admin: 'admin',\n social: 'social',\n internalAdmin: 'internal-admin',\n};\nconst { pathname, search } = document.location;\nconst subdirectory = pathname.split('/')[1];\n\nconst searchParams = new URLSearchParams(search);\nconst skinParam = searchParams.get('sk') as Skin | null;\n\nskinStorage.get().then((skin) => {\n if (!!skinParam) {\n skinStorage.set(skinParam);\n skin = skinParam;\n }\n const CustomerApp = lazy(() => import('./customer/App'));\n const CustomerCronosApp = lazy(() => import('./customer-cronos/App'));\n const CustomerAppComponent = skin === Skin.Cronos ? CustomerCronosApp : CustomerApp;\n\n const AdminApp = lazy(() => import('./admin/App'));\n const InternalAdminApp = lazy(() => import('./internalAdmin/App'));\n const SocialApp = lazy(() => import('./social/App'));\n switch (subdirectory) {\n case paths.customer:\n ReactDOM.render(\n \n }>\n \n \n ,\n rootElement\n );\n break;\n case paths.admin:\n ReactDOM.render(\n \n }>\n \n \n ,\n rootElement\n );\n break;\n case paths.internalAdmin:\n ReactDOM.render(\n \n }>\n \n \n ,\n rootElement\n );\n break;\n case paths.social:\n ReactDOM.render(\n \n }>\n \n \n ,\n rootElement\n );\n break;\n default:\n ReactDOM.render(
Error 404: Page not found
, rootElement);\n }\n});\n\nconst setVh = () => {\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n};\n\nwindow.addEventListener('load', setVh);\nwindow.addEventListener('resize', setVh);\n"],"sourceRoot":""}