{"brand":"GRL","gtmId":"GTM-PQ42K9D","languages":[{"value":"uk","label":"Українська"}],"components":{"playBreak":{"skipButtonTime":{"defaultVariation":5},"playTime":{"defaultVariation":7200},"timerTick":{"defaultVariation":1}},"gravitec":{"defaultVariation":{}},"restrictions":{"defaultVariation":{"support":"/support","kyc":"/my-account/kyc","profile":"/my-account/personal-data","rg":"/deposit-limits","limit":"/my-account/kyc","riskLevel":"/my-account/kyc","rgDepositLimit":"/deposit-limits","rgLossLimit":"/loss-limits","rgBetLimit":"/bet-limits","rgTimeLimit":"/time-limits"}},"maintenancePage":{"defaultVariation":{"imageUrl":"/media/maintenance/flash.png","contacts":[[{"title":{"value":"Email"},"value":"support@gorilla.ua","icon":"SUPI_Email"}]]}},"header":{"defaultVariation":{"items":[{"id":"logo","link":"/","imageUrl":"/content/uploads/icons/GRL/Logo.svg"},{"id":"registration","appearance":"main","link":"/choose-reg/regtel/1","isHiddenOnRoute":"/regtel"},{"id":"login","appearance":"default","link":"/login","isHiddenOnRoute":"/login"}]},"rules":[{"conditions":[{"values":[true],"predicate":"user.isLoggedIn","operator":"is"}],"variation":{"showDepositButtonOnMobile":true,"items":[{"id":"logo","imageUrl":"/logos/pm-logo-full-v2.svg","link":"/"},{"id":"userBox","link":"/my-account"},{"id":"notificationService"},{"id":"deposit","label":"Deposit"}]}}]},"search":{"visibility":{"defaultVariation":{"enabledOnRoutes":{"mobile":["HOME_PAGE","LIVE_OVERVIEW","LIVE_TOURNAMENTS","CONTENT_PAGE","MOBILE_APPLICATIONS","COMPETITORS_LIST","BONUSES_AND_PROMOS","NATIVE_APPS_PAGE","PREMATCH","PREMATCH_COUNTRIES","PREMATCH_TIME_FILTERS","ALL_LIVE","WEEKEND","PREMATCH_EVENTS","EVENT_VIEW","BETS_HISTORY","PROMO_LIST","MAIN_PAGE","RESULT_PAGE","PROMO_RULES","VIP_CONTENT","PRINCIPLES_RESPONSIBLE_GAMBLING","NATIONAL_EVENTS","SPORT_TEAM","BET_BOOSTER","TOP_EXPRESS","FAVORITES","SURPRISE_ME","CUSTOM_PAGE","CUSTOM_TOURNAMENTS_PAGE","MENU"],"desktop":["HOME_PAGE","LIVE_OVERVIEW","LIVE_TOURNAMENTS","CONTENT_PAGE","MOBILE_APPLICATIONS","COMPETITORS_LIST","BONUSES_AND_PROMOS","NATIVE_APPS_PAGE","PREMATCH","PREMATCH_COUNTRIES","PREMATCH_TIME_FILTERS","ALL_LIVE","WEEKEND","PREMATCH_EVENTS","EVENT_VIEW","BETS_HISTORY","PROMO_LIST","MAIN_PAGE","RESULT_PAGE","PROMO_RULES","VIP_CONTENT","PRINCIPLES_RESPONSIBLE_GAMBLING","NATIONAL_EVENTS","SPORT_TEAM","BET_BOOSTER","TOP_EXPRESS","FAVORITES","SURPRISE_ME","CUSTOM_PAGE","CUSTOM_TOURNAMENTS_PAGE","MENU"]}}}},"notificationCenterSubscriptions":{"defaultVariation":{"indexSportIds":["F","CS","CK","H","B","T","BN","BV","VB","TT","SQ","FZ","UFC","BB","HB","WP","BX"]}},"sports":{"defaultVariation":{"items":[{"feedId":"F","id":"soccer","title":"Football","icon":"SI_Soccer"},{"feedId":"CS","id":"eSport","title":"E-Sports","icon":"SI_Cybersport"},{"feedId":"T","id":"tennis","title":"Tennis","icon":"SI_Tennis"},{"feedId":"TT","id":"tableTennis","title":"Table Tennis","icon":"SI_TableTennis"},{"feedId":"B","id":"basketball","title":"Basketball","icon":"SI_Basketball"},{"feedId":"VB","id":"volleyball","title":"Volleyball","icon":"SI_Volleyball"},{"feedId":"H","id":"iceHockey","title":"Ice Hockey","icon":"SI_IceHockey"},{"feedId":"UFC","id":"ufc","title":"UFC","icon":"SI_UFC"},{"feedId":"HB","id":"handball","title":"Handball","icon":"SI_Handball"},{"feedId":"BV","id":"beachVolleyball","title":"Beach Volleyball","icon":"SI_BeachVolleyball"},{"feedId":"BN","id":"badminton","title":"Badminton","icon":"SI_Badminton"},{"feedId":"BX","id":"box","title":"Boxing","icon":"SI_Box"},{"feedId":"MA","id":"mma","title":"MMA","icon":"SI_MMA"},{"feedId":"FZ","id":"futsal","title":"Futsal","icon":"SI_IndoorSoccer"},{"feedId":"AF","id":"amFootball","title":"American football","icon":"SI_AmFootball"},{"feedId":"AM","id":"autoMoto","title":"Motor Sports","icon":"SI_Racing"},{"feedId":"AR","id":"ausFootball","title":"Australian football","icon":"SI_AusFootball"},{"feedId":"BB","id":"baseball","title":"Baseball","icon":"SI_Baseball"},{"feedId":"BD","id":"bandy","title":"Bandy","icon":"SI_Bandy"},{"feedId":"BF","id":"beachSoccer","title":"Beach Football","icon":"SI_BeachSoccer"},{"feedId":"BW","id":"bowls","title":"Bowls","icon":"SI_Bowls"},{"feedId":"CR","id":"cycleRacing","title":"Cycling","icon":"SI_Cycling"},{"feedId":"CE","id":"chess","title":"Chess","icon":"SI_Chess"},{"feedId":"CL","id":"curling","title":"Curling","icon":"SI_Curling"},{"feedId":"CK","id":"cricket","title":"Cricket","icon":"SI_Cricket"},{"feedId":"DT","id":"darts","title":"Darts","icon":"SI_Darts"},{"feedId":"FL","id":"floorball","title":"Floorball","icon":"SI_Floorball"},{"feedId":"FH","id":"fieldHockey","title":"Field Hockey","icon":"SI_FieldHockey"},{"feedId":"GF","id":"golf","title":"Golf","icon":"SI_Golf"},{"feedId":"MR","id":"motorcycle-races","title":"Motorbikes","icon":"SI_Racing"},{"feedId":"LT","id":"lottery","title":"Lottery","icon":"SI_Lottery"},{"feedId":"OG","id":"olympicGames","title":"Olympics","icon":"SI_Olympics"},{"feedId":"PL","id":"snooker","title":"Snooker","icon":"SI_Snooker"},{"feedId":"PO","id":"politics","title":"Politics","icon":"SI_Politics"},{"feedId":"RG","id":"rugby","title":"Rugby","icon":"SI_Rugby"},{"feedId":"BT","id":"biathlon","title":"Biathlon","icon":"SI_Biathlon"},{"feedId":"VF","id":"virtual-football","title":"Virtual Football","icon":"SI_Cybersport"},{"feedId":"VT","id":"virtual-tennis","title":"Virtual Tennis","icon":"SI_Cybersport"},{"feedId":"VL","id":"virtual-basketball","title":"Virtual Basketball","icon":"SI_Cybersport"},{"feedId":"WP","id":"waterPolo","title":"Water Polo","icon":"SI_WaterPolo"},{"feedId":"WS","id":"winterSport","title":"Winter Sports","icon":"SI_WinterSports"},{"feedId":"OT","id":"otherEvents","title":"Help Ukraine","icon":"SI_OtherEvents"},{"feedId":"SQ","id":"squash","title":"Squash","icon":"SI_Squash"}]},"rules":[]},"supportButton":{"defaultVariation":{"isExternalLink":false,"supportPageLink":"/support"}}},"dextra":{"appId":"07160dfd-e882-475d-a8cf-572f5251331e","delay":30,"delayAfterClose":259200,"pagesBlacklist":["LOGIN","REGISTRATION","PAYMENTS","MY_ACCOUNT"]},"defaultCurrency":"UAH","locizeVersion":{"defaultVariation":"stable"},"maxEventsInHotTab":{"defaultVariation":20},"pwa":{"defaultVariation":{"pwaShowOnPages":["HOME_PAGE"],"pwaShowInterval":"2m","pwaShowIntervalAfterInstallClick":"7d","pwaShowIntervalAfterCancelClick":"7d"}},"sentry":{"defaultVariation":{"DSN_KEY":"https://bca98dae553e4242bbfceeeea05b7d6b@errs.qwrt.xyz/15","TRACES_SAMPLE_RATE":0.05,"SAMPLE_RATE":0,"PROFILES_SAMPLE_RATE":0,"isEnabled":true}},"translations":{"defaultVariation":{"brandKeys":{"brandName":"Gorilla","brandNameRu":"Gorilla"}},"rules":[]},"localization":{"translationsUrl":{"defaultVariation":"/translations/merged/stable/{{lng}}/{{ns}}"},"overrides":{"defaultVariation":{"en":{"overrideLng":"en-GRL","fallbackLng":"en"},"uk":{"overrideLng":"uk-GRL","fallbackLng":"uk"},"ru":{"overrideLng":"ru-GRL","fallbackLng":"ru"}}}},"redirectFromRegPage":{"defaultVariation":{"redirectTo":"do-99074-tr.xyz/ru","brandsFromRedirect":["COM","KZ","UA"],"redirectFromCountryCode":"UZ"}},"languageIconsMap":{"uk":"ua"},"themeModeRoutes":{"defaultVariation":{"^/^/casino-tournament(/.*)?$/":"dark","^/casino":"dark","^/promo":"dark","^/gamification":"dark","^/peer2peer":"dark","^/my-bonus-shop":"dark"}},"socialAuth":{"Apple":{"params":{"clientId":"ua.gorilla.casino.ios-grl","redirectURI":"https://gorilla.ua/uk/regtel"},"options":{"modulorIcon":"apple_filled"}}},"languageSettings":{"defaultVariation":{"defaultLanguage":"uk","setDefaultLanguage":false,"languageDetect":["parsed","defaultBrand"],"availableLanguages":["uk"]}},"pagesWithoutFeed":{"defaultVariation":["HOME_PAGE","CASINO"]},"livechat":{"defaultVariation":{"pages":["SUPPORT"],"type":"SALESFORCE_CHAT","scriptSource":"/support-hub/script.js","styleSource":"/support-hub/style.css"},"rules":[{"variation":{"pages":["SUPPORT"],"type":"LIVECHAT_CHAT","scriptSource":"/support-hub/script.js","styleSource":"/support-hub/style.css"},"conditions":[{"predicate":"app.brand","operator":"is-one-of","values":["GRL"]}]}]},"operatorId":"FST","widgets":{"defaultVariation":{"apiKeySdk":"773e81fd-99c8-41b2-85de-f662bfb0d8ef","baseURLOverride":{"useHostForAPI":true},"feedURL":"/direct-feed","pageType":"Main","isPageLazyLoadEnabled":true,"isWidgetsLazyLoadEnabled":true,"isAnalyticsViewEnabled":true,"preloadBottomMargin":300,"applicationId":"8e85884b-3123-435f-a024-38e21d3f47b2","appId":"betbook","plugins":[{"name":"analytics","product":"platform","version":"1","params":{"trigger":{"type":"onMountAsync","handledEvents":["analytics"]}}},{"name":"casino-favorites","product":"platform","version":"1","params":{"trigger":{"type":"onMessageBus","eventType":"casino.favorite.init","handledEvents":["casino.favorite.fetch","casino.favorite.state","casino.favorite.toggle"]}}},{"name":"notification","product":"widget-toolkit","version":"1.0.0","params":{"trigger":{"type":"onMessageBus","eventType":"notification.count.init","handledEvents":[]}}}],"skeletons":{"QAB":"const rect = getParentClientBoundingRect(); const isRoundedType = configuration?.type === 'rounded'; const hasHeader = configuration?.header?.title?.text; if (!rect && isRoundedType) { return { height: `${hasHeader ? 138 : 100}px` }; } if (!rect && !isRoundedType) { return { height: `${hasHeader ? 126 : 88}px` }; } const isMobile = rect.width < 541; let baseHeight = isRoundedType ? 100 : 40; if (isRoundedType && hasHeader) { baseHeight += 38; } if (!isRoundedType && hasHeader && !isMobile) { baseHeight += 38; } if (!isRoundedType && isMobile && !hasHeader) { baseHeight += 48; } if (!isRoundedType && hasHeader && isMobile) { baseHeight += 86; } return { height: `${baseHeight}px` };","SportLine":"const cardType = configuration.cardType;const cardHeaderHeight = {0: 38, 1: 38, 2: 0};const cardInfoHeights = {0: 98, 1: 98, 2: 88,};const marketsHeights = {0: 72, 1: 72, 2: 0,};const widgetHeaderHeight = configuration.itemHeader.length ? cardHeaderHeight[cardType] : 0; const widgetHeader = 32; return { height: widgetHeader + widgetHeaderHeight + cardInfoHeights[cardType] + marketsHeights[cardType] + 'px', paddingTop: widgetHeader + 'px'}","Slider":"let baseHeight = 152;if (configuration.header) {baseHeight += 38;}return { height: baseHeight + 'px'}","CasinoLine":"const CARD_MARGIN = 8; const DEFAULT_OFFSET_NEXT_CARD = 12; const rect = getParentClientBoundingRect(); const isGrid = configuration.layout.cardsType === 'new-slots-grid'; const isCompact = configuration.layout.cardsType === 'compact-square-icons'; if (!rect || !rect.width) { return { height: isGrid ? '550px' : (isCompact ? '170px' : '250px') }; } const size = rect.width > 540 ? 'large' : 'small'; let containerHeight = 0; if (configuration.header && configuration.header.title && configuration.header.title.text) { containerHeight += 38; } if (isGrid) { containerHeight += size === 'small' ? 696 : 440; return { height: `${containerHeight}px` }; } const containerWidth = rect.width; const getLayoutConfiguration = () => { if (size === 'small') { return configuration.layout.mobile; } else { return configuration.layout.desktop; } }; const getWidgetPaddings = () => { if (size !== 'small') { return 0; } const { scrollable } = getLayoutConfiguration(); if (scrollable) { return 0; } if (configuration.layout.cardsType === 'new-slots-grid') { return 16; } if (!scrollable) { return 16; } return 0; }; function getMinCardWidth() { const MIN_CARDS_WIDTH_BY_CARD_TYPE = { 'compact-square-icons': { large: 102, small: 92, }, 'rectangular-icons': { large: 158, small: 140, }, 'medium-square-icons': { large: 158, small: 140, }, 'large-icons': { large: 180, small: 140, }, 'new-slots-grid': { large: 168, small: 148, }, }; const sizes = MIN_CARDS_WIDTH_BY_CARD_TYPE[configuration.layout.cardsType] || MIN_CARDS_WIDTH_BY_CARD_TYPE['medium-square-icons']; return sizes[size]; } function calculateMargins(columnsCount) { const { scrollable } = getLayoutConfiguration(); const isSmall = size === 'small'; const isMultiColumns = columnsCount > 1; if (isSmall && scrollable) { return columnsCount * CARD_MARGIN + 8; } if (isMultiColumns && scrollable) { return columnsCount * CARD_MARGIN; } if (columnsCount > 1 && !scrollable) { return columnsCount * CARD_MARGIN - CARD_MARGIN; } return 0; } const { scrollable, numberOfRows = 1 } = getLayoutConfiguration(); const paddings = getWidgetPaddings(); const minCardsWidth = getMinCardWidth(); const column = Math.floor(containerWidth / minCardsWidth); const remainderOfDivision = containerWidth % minCardsWidth; const margins = calculateMargins(column); const offsetNextCard = scrollable ? DEFAULT_OFFSET_NEXT_CARD : 0; const hasPlaceForMargins = remainderOfDivision - margins - paddings - offsetNextCard >= 0; const newColumnsCount = hasPlaceForMargins ? column : column - 1; const columns = Math.max(newColumnsCount, 1); const imageWidth = (rect.width - paddings - margins - offsetNextCard) / columns; const { cardsType } = configuration.layout; let cardHeight = imageWidth + 32; if (cardsType === 'large-icons') { cardHeight = imageWidth / 1.2 + 49; } else if (cardsType === 'rectangular-icons') { cardHeight = (imageWidth * 2) / 3 + 29; } else if (cardsType === 'compact-square-icons') { cardHeight = imageWidth + 32; } else if (cardsType === 'medium-square-icons') { cardHeight = imageWidth + 49; } else { cardHeight = imageWidth + 32; } containerHeight += cardHeight * numberOfRows + (numberOfRows - 1) * CARD_MARGIN; return { height: `${containerHeight}px`, };","Navigation":"if (configuration.itemsAmount < 2) { return { height: '0', }; } const rect = getParentClientBoundingRect(); const layoutConfigByViewMode = { mobile: { maxRowsCount: 3, maxItemsInRow: 2, rowHeight: 80, }, desktop: { maxRowsCount: 2, maxItemsInRow: 3, rowHeight: 88, }, }; const calculateHeigth = (viewMode, itemsAmount) => { const gapBetweenRows = 8; const { maxRowsCount, maxItemsInRow, rowHeight } = layoutConfigByViewMode[viewMode]; const rowsCount = Math.min(Math.ceil(itemsAmount / maxItemsInRow), maxRowsCount); return rowsCount * rowHeight + (rowsCount - 1) * gapBetweenRows; }; if (!rect || !rect.width) { return { height: `${calculateHeigth('mobile', configuration.itemsAmount)}px`, }; } const viewMode = rect.width < 541 ? 'mobile' : 'desktop'; return { height: `${calculateHeigth(viewMode, configuration.itemsAmount)}px`, };","MediumBanner":"const rect = getParentClientBoundingRect(); if (!rect || !rect.width) { return { height: '280px' }; } let containerHeight = 0; if (configuration?.header?.title?.text) { containerHeight += 38; } const isBig = rect.width > 820; containerHeight += isBig ? 360 : 256; return { height: `${containerHeight}px` };","CasinoBigWin":"return { height: '134px' };","SportVertical":"const { title, cardType, marketsType, source, withItemHeader, itemsLimit } = configuration || {};const hasTitle = title?.text || marketsType === 3;const hasTabs = source?.params?.tabs?.length > 1;let widgetHeader = 0;if (hasTitle || hasTabs) widgetHeader = 48;if (hasTitle && hasTabs) widgetHeader = 88;const border = 1;const cardHeaderHeight = withItemHeader ? 33 : 0;const cardInfoHeights = { mobile: { 0: 98, 1: 94, 2: 88 }, desktop: { 0: 98, 1: 94, 2: 94 } };const cardMarketsHeight = viewMode === 'mobile' && marketsType !== 0 && cardType !== 2 ? 72 : 0;const cardHeight = cardHeaderHeight + cardInfoHeights[viewMode][cardType] + cardMarketsHeight + border;const cardsNumber = itemsLimit;const widgetFooter = 49;return { height: widgetHeader + border + cardHeight * cardsNumber + widgetFooter + 'px' };","TopWins":"const rect = getParentClientBoundingRect(); if (!rect || !rect.width) { return { height: '250px' }; } let containerHeight = 0; if (configuration.title && configuration.title && configuration.title.text) { containerHeight += 38; } const isMobile = rect.width < 600; containerHeight += isMobile ? 376 : 184; return { height: `${containerHeight}px` };","BigBanner":"const rect = getParentClientBoundingRect(); if (!rect || !rect.width) { return { height: '360px' }; } let containerHeight = 0; if (configuration.title && configuration.title.text) { containerHeight += 38; } const isBig = rect.width < 500; containerHeight += isBig ? 480 : 360; return { height: `${containerHeight}px` };","TopParlays":"const { title, withPatternBackground, withLastEventStartTime, parlayItemsRange, } = configuration || {};const baseHeight = 16;const titleHeight = title?.text ? 44 : 0;const patternHeight = withPatternBackground ? 34 : 0;const itemHeight = 74;const itemsGap = 4;const { to: itemsLimit } = parlayItemsRange || { to: 2 };const parlayItemsHeight = itemHeight * itemsLimit + itemsGap * (itemsLimit - 1);const footerHeight = withLastEventStartTime ? 52 : 40;return { height: baseHeight + titleHeight + patternHeight + parlayItemsHeight + footerHeight + 'px',};","CasinoTournamentsLine":"let containerHeight = 0; const tabsHeight = { horizontal: 42, vertical: 56 }; const headerHeight = { horizontal: 38, vertical: 0 }; if (configuration.header && configuration.header.title.text) { containerHeight += headerHeight[configuration.layout.type]; } const hasOneTournamentStatus = configuration.source.tournamentsStatuses && configuration.source.tournamentsStatuses.length === 1; const hasTabs = configuration.source.type !== 'automated' || !hasOneTournamentStatus; if (hasTabs) { containerHeight += tabsHeight[configuration.layout.type]; } const cardHeight = 412; containerHeight += cardHeight; const isVertical = configuration.layout.type === 'vertical'; const rect = getParentClientBoundingRect(); if (isVertical && rect && rect.width && rect.width < 664) { const gap = 8; containerHeight += cardHeight + gap; } return { height: `${containerHeight}px`, };","SportBetBuilder":"const { title, withPatternBackground, outcomesLimit } = configuration || {};const titleHeight = title?.text ? 38 : 0;const eventNameHeight = 28;const patternHeight = withPatternBackground ? 34 : 0;const itemHeight = 44;const itemContainerOffset = 4;const itemsHeight = outcomesLimit * itemHeight + itemContainerOffset * 2;const footerHeight = 68;const topOffset = 12;const bottomOffset = 8;return { height: titleHeight + patternHeight + eventNameHeight + itemsHeight + footerHeight + topOffset + bottomOffset + 'px' };","CasinoInfinityLineWidget":"const CARD_MARGIN = 8; const NUMBER_OF_ROWS = 2; const SHOW_MORE_BUTTON = 40; const rect = getParentClientBoundingRect(); if (!rect || !rect.width) { return { height: '500px', }; } const size = rect.width > 540 ? 'large' : 'small'; let containerHeight = 0; if (configuration.title && configuration.title.text) { containerHeight += 38; } const containerWidth = rect.width; const getWidgetPaddings = () => { if (viewMode === 'desktop') { return 0; } return 16; }; function getMinCardWidth() { const MIN_CARDS_WIDTH_BY_CARD_TYPE = { large: 158, small: 140, }; return MIN_CARDS_WIDTH_BY_CARD_TYPE[size]; } function calculateMargins(columnsCount) { if (columnsCount > 1) { return columnsCount * CARD_MARGIN - CARD_MARGIN; } return 0; } const paddings = getWidgetPaddings(); const minCardsWidth = getMinCardWidth(); const column = Math.floor(containerWidth / minCardsWidth); const remainderOfDivision = containerWidth % minCardsWidth; const margins = calculateMargins(column); const hasPlaceForMargins = remainderOfDivision - margins - paddings >= 0; const newColumnsCount = hasPlaceForMargins ? column : column - 1; const columns = Math.max(newColumnsCount, 1); const imageWidth = (rect.width - paddings - margins) / columns; const cardHeight = imageWidth + 50; containerHeight += cardHeight * NUMBER_OF_ROWS + (NUMBER_OF_ROWS - 1) * CARD_MARGIN + SHOW_MORE_BUTTON; return { height: `${containerHeight}px`, };"}}},"brandHash":"ee4d4dda","theme":{"name":"brand16","mode":"hybrid","modeFallback":"dark"}}