{ "version": 3, "sources": ["angular:script/global:preloader.js"], "sourcesContent": ["//use strict\n\nif (MS2JS === undefined) {\n var MS2JS = {};\n}\n\n(function () {\n window['_boot'].then(() => {\n const { vnPage, vnProducts, msImages, msPreloader, vnUser } = globalThis.clientConfig;\n\n MS2JS.Http = new (function () {\n return {\n get,\n post,\n getMS2Api,\n };\n\n function getMS2Api(url, callback) {\n const headers = {\n 'x-bwin-browser-url': globalThis.location.href,\n 'X-XSRF-TOKEN': getCookie('XSRF-TOKEN'),\n };\n\n if (vnProducts.sports.enabled) {\n headers['x-bwin-sports-api'] = vnPage.environment;\n url = vnProducts.sports.apiBaseUrl + url;\n }\n\n get(url, callback, {\n headers,\n });\n }\n\n function get(url, callback, options) {\n asyncRequest(url, 'GET', callback, options);\n }\n\n function post(url, callback, options) {\n asyncRequest(url, 'POST', callback, options);\n }\n\n function asyncRequest(url, method, callback, options) {\n options = options || {};\n\n const defaultHeaders = { 'Content-Type': 'application/json;charset=UTF-8' };\n const headers = Object.assign({}, defaultHeaders, options.headers || {});\n const data = options.data ? JSON.stringify(options.data) : undefined;\n\n return fetch(url, {\n method,\n cache: 'no-cache',\n credentials: 'include',\n headers,\n body: data,\n })\n .then((res) => res.json())\n .then((data) => callback(null, data))\n .catch((error) => {\n console.error(error);\n callback(error);\n });\n }\n\n function getCookie(name) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) return parts.pop().split(';').shift();\n }\n })();\n\n MS2JS.GridGroupLoader = new (function () {\n let isLoading = false;\n let groupingData = null;\n let hasError = false;\n\n init();\n\n return {\n loading() {\n return isLoading;\n },\n error() {\n return hasError;\n },\n data() {\n return groupingData;\n },\n reset() {\n isLoading = false;\n groupingData = null;\n hasError = false;\n },\n };\n\n function init() {\n isLoading = true;\n MS2JS.Http.get(msPreloader.groupingUrl, function (error, data) {\n hasError = !!error;\n isLoading = false;\n groupingData = data;\n });\n }\n })();\n\n MS2JS.ModularHomePageDataLoader = new (function () {\n let isLoading = false;\n let homePageData = null;\n let hasError = false;\n let requestContext = null;\n\n init();\n\n return {\n loading() {\n return isLoading;\n },\n error() {\n return hasError;\n },\n data() {\n return homePageData;\n },\n requestContext() {\n return requestContext;\n },\n reset() {\n isLoading = false;\n requestContext = null;\n homePageData = null;\n hasError = false;\n },\n };\n\n function init() {\n const isSportsLobby = isOnSportsLobby();\n if (!isOnHomepage() && !isSportsLobby) {\n return;\n }\n\n const context = prepareContext(isSportsLobby, getScreenSize());\n const url = constructUrl(context);\n\n isLoading = true;\n const screenSize = getScreenSize();\n\n if (!isOnHomepage() && !isSportsLobby) {\n return;\n }\n\n isLoading = true;\n\n fetchData(url, (error, data) => {\n hasError = !!error;\n isLoading = false;\n homePageData = data;\n requestContext = context;\n\n if (data?.widgets) {\n preloadLcpImages(data.widgets);\n preloadWidgetData(data.widgets, screenSize, isSportsLobby, requestContext.sportId);\n }\n });\n }\n\n function prepareContext(isSportsLobby, screenSize, widgetId) {\n let sportId = null;\n if (isSportsLobby) {\n const sportsPathIndex = globalThis.location.pathname.indexOf('/sports/');\n const sportsIdPath = globalThis.location.pathname.slice(Math.max(0, sportsPathIndex + 8));\n const sportPathSplitted = sportsIdPath.split('-');\n sportId = sportPathSplitted.at(-1);\n\n return {\n page: 'SportLobby',\n layoutSize: screenSize,\n sportId: Number.parseInt(sportId),\n };\n }\n\n return {\n page: 'HomeLobby',\n layoutSize: screenSize,\n widgetId,\n };\n }\n\n function constructUrl(context) {\n const url = new URL(`${globalThis.location.protocol}//${globalThis.location.host}${msPreloader.pagePrefix}/api/widget`);\n url.searchParams.set('layoutSize', context.layoutSize);\n url.searchParams.set('page', context.page);\n if (context.page === 'SportLobby') {\n url.searchParams.set('sportId', context.sportId);\n }\n\n if (context.widgetId) {\n url.pathname += '/widgetdata';\n url.searchParams.set('widgetId', context.widgetId);\n url.searchParams.set('shouldIncludePayload', 'true');\n }\n\n if (vnUser.isAuthenticated) {\n url.searchParams.set('isAuth', '1');\n }\n\n return decodeURIComponent(url.href);\n }\n\n async function preloadWidgetData(widgets, screenSize, isSportLobby, sportId) {\n let deviceType = 'phone';\n if (globalThis.clientConfig.vnDevice.isTablet) {\n deviceType = 'tablet';\n } else if (globalThis.clientConfig.vnDevice.isDesktop) {\n deviceType = 'desktop';\n }\n const requestInit = {\n headers: {\n 'accept': 'application/json, text/plain, */*',\n 'X-From-Product': vnPage.product,\n 'x-bwin-browser-url': globalThis.location.href,\n 'x-app-context': 'default',\n 'x-device-type': deviceType,\n 'sports-api-version': 'SportsAPIv2',\n },\n };\n await Promise.all(\n widgets\n .filter((widget) => !widget.shouldIncludePayload && ['Center', 'Top'].includes(widget.location))\n .sort((a, b) => a.order - b.order)\n .slice(0, 6)\n .map((widget) => {\n const url = new URL(\n `${globalThis.location.protocol}//${globalThis.location.host}${msPreloader.pagePrefix}/api/widget/widgetdata`,\n );\n // ?layoutSize=${screenSize}&page=HomeLobby&widgetId=${widget.id}&shouldIncludePayload=true\n url.searchParams.set('layoutSize', screenSize);\n url.searchParams.set('page', isSportLobby ? 'SportLobby' : 'HomeLobby');\n if (sportId) {\n url.searchParams.set('sportId', sportId);\n }\n url.searchParams.set('widgetId', widget.id);\n url.searchParams.set('shouldIncludePayload', true);\n if (widget.type === 'Marquee') {\n url.searchParams.set('marqueesOnly', true);\n url.searchParams.set('shouldIncludePersonalizedData', false);\n const personalizedUrl = new URL(url.href.replace('widgetdata', 'personalizedWidgetData'));\n personalizedUrl.searchParams.set('shouldIncludePersonalizedData', true);\n return Promise.all([\n fetch(decodeURIComponent(url.href), requestInit).then((response) => (response.ok ? response.json() : [])),\n fetch(decodeURIComponent(personalizedUrl.href), requestInit).then((response) =>\n response.ok ? response.json() : [],\n ),\n ]).then(([marqueeData, personalizedData]) => {\n const widget = [...marqueeData.widgets, ...personalizedData.widgets]\n .filter((widget) => widget.visible)\n .sort((a, b) => a.order - b.order)?.[0];\n preloadMarqueeLcp(widget);\n });\n }\n return fetch(decodeURIComponent(url.href), requestInit);\n }),\n );\n }\n\n function getScreenSize() {\n if (globalThis.matchMedia('(min-width:601px) and (max-width: 1279px)').matches) {\n return 'Medium';\n } else if (globalThis.matchMedia('(min-width: 1280px)').matches) {\n return 'Large';\n }\n\n return 'Small';\n }\n\n function preloadLcpImages(widgets) {\n const staticTeaser = widgets.find((widget) => widget.type === 'StaticTeaser');\n preloadStaticTeaserLcp(staticTeaser);\n const storyContent = widgets.find((widget) => widget.type === 'StoryContent');\n preloadStoryContentLcp(storyContent);\n const teaser = widgets.find((widget) => widget.type === 'RotatingTeaser');\n preloadTeaserLcp(teaser);\n const marquee = widgets.find((widget) => widget.type === 'Marquee');\n preloadMarqueeLcp(marquee);\n const casinoBanner = widgets.find((widget) => widget.type === 'Banner' && !!widget.payload?.imageUrl);\n preloadCasinoBannerLcp(casinoBanner);\n const popularBets = widgets.filter((widget) => widget.type === 'PopularMultiBets' && widget.visible);\n preloadPopularBetsLcp(popularBets);\n }\n\n function preloadPopularBetsLcp(widgets) {\n const isSportsLobby = isOnSportsLobby();\n const screenSize = getScreenSize();\n const preloadImages = new Set();\n for (const widget of widgets) {\n if (!widget.id) continue;\n\n const context = prepareContext(isSportsLobby, screenSize, widget.id);\n const url = constructUrl(context);\n\n fetchData(url, (error, data) => {\n if (error || !data?.widgets?.length) return;\n\n const widget = data.widgets[0];\n if (!widget.visible || !widget.payload?.pods?.length) return;\n\n for (const pod of widget.payload.pods) {\n const { backgroundImage } = pod;\n if (backgroundImage && !preloadImages.has(backgroundImage.src)) {\n preloadImages.add(backgroundImage.src);\n createImagePreloadLink(backgroundImage.src);\n }\n }\n });\n }\n }\n\n function fetchData(url, callback) {\n MS2JS.Http.getMS2Api(url, function (error, data) {\n callback(error, data);\n });\n }\n\n function preloadStoryContentLcp(widget) {\n if (widget) {\n const stories = widget.payload.stories;\n const story = stories?.length > 0 ? stories[0] : null;\n if (story?.tileImage) {\n const stretch = stories.length > 1;\n const imageUrl = new URL(story?.tileImage);\n const backgroundWidth = stretch ? '540' : '160';\n const qualityParam = `width${backgroundWidth}`;\n\n imageUrl.searchParams.set('p', qualityParam);\n createImagePreloadLink(imageUrl.toString());\n }\n }\n }\n\n function preloadMarqueeLcp(widget) {\n if (widget && widget.payload?.tiles?.length > 0) {\n const tile = widget.payload.tiles[0];\n if (tile.imageUrl) {\n const srcSet = ['280', '560'].map((size, i) => `${tile.imageUrl}?w=${size} ${i + 1}x`);\n createImagePreloadLink(tile.imageUrl, null, srcSet);\n }\n }\n }\n\n function preloadTeaserLcp(widget) {\n if (widget) {\n const teasers = widget.payload.teasers;\n if (teasers?.length > 0 && teasers[0].imageUrl) {\n const imageUrl = teasers[0].imageUrl;\n const srcSet = ['480', '640', '768'].map((size) => `${imageUrl}?w=${size} ${size}w`).join(', ');\n const sizes = '(min-width: 960px) 768px, 100vw';\n createImagePreloadLink(imageUrl, sizes, srcSet);\n }\n }\n }\n\n function preloadStaticTeaserLcp(widget) {\n if (widget) {\n const teaser = widget.payload;\n if (teaser?.imageUrl) {\n const imageUrl = `${teaser.imageUrl}?p=width540`;\n createImagePreloadLink(imageUrl);\n }\n }\n }\n\n function preloadCasinoBannerLcp(widget) {\n if (widget) {\n let imageUrl = widget.payload.imageUrl;\n if (msImages?.imageQualityParams?.homePage?.casinoBanner) {\n imageUrl = setImageQuality(\n imageUrl,\n msImages.imageQualityParams.allowedImageTypes,\n msImages.imageQualityParams.homePage.casinoBanner,\n );\n }\n createImagePreloadLink(imageUrl);\n }\n }\n\n function setImageQuality(imageSource, allowedImageTypes, qualityValue) {\n const allowedExtensions = new RegExp(allowedImageTypes, 'i');\n\n if (imageSource && imageSource.match(allowedExtensions) && !imageSource.includes('q='))\n return (imageSource += imageSource.includes('?') ? `&${qualityValue}` : `?${qualityValue}`);\n\n return imageSource;\n }\n\n function createImagePreloadLink(src, sizes, srcSet) {\n const preloadLink = document.createElement('link');\n preloadLink.rel = 'preload';\n preloadLink.href = src;\n if (sizes) {\n preloadLink.imageSizes = sizes;\n }\n if (srcSet) {\n preloadLink.imageSrcset = srcSet;\n }\n preloadLink.as = 'image';\n preloadLink.setAttribute('fetchpriority', 'high');\n document.head.append(preloadLink);\n }\n })();\n\n MS2JS.SiteMapLoader = new (function () {\n let isLoading = false;\n let siteMapData = null;\n let hasError = false;\n\n init();\n\n return {\n loading() {\n return isLoading;\n },\n error() {\n return hasError;\n },\n data() {\n return siteMapData;\n },\n reset() {\n isLoading = false;\n siteMapData = null;\n hasError = false;\n },\n };\n\n function init() {\n if (!msPreloader.loadSitemap) {\n return;\n }\n\n isLoading = true;\n MS2JS.Http.getMS2Api(`${msPreloader.pagePrefix}/api/sitemap`, function (error, data) {\n hasError = !!error;\n isLoading = false;\n siteMapData = data;\n });\n }\n })();\n\n MS2JS.TeaserPricesTableLoader = new (function () {\n let isLoading = false;\n let teaserPrices = null;\n let hasError = false;\n\n init();\n\n return {\n loading() {\n return isLoading;\n },\n error() {\n return hasError;\n },\n data() {\n return teaserPrices;\n },\n reset() {\n isLoading = false;\n teaserPrices = null;\n hasError = false;\n },\n };\n\n function init() {\n isLoading = true;\n MS2JS.Http.getMS2Api(`${msPreloader.pagePrefix}/api/teaserbet/getLatestTeaserPrices`, function (error, data) {\n hasError = !!error;\n isLoading = false;\n teaserPrices = data;\n });\n }\n })();\n\n function isOnSportsLobby() {\n const sportsRegex = /sports\\/\\D+(-\\d+){1,2}\\/?$/gm;\n return sportsRegex.test(decodeURI(globalThis.location.pathname));\n }\n\n function isOnHomepage() {\n const homepageUrlRegex = new RegExp(`${msPreloader.pagePrefix}$`, 'i');\n return homepageUrlRegex.test(globalThis.location.pathname);\n }\n });\n})();\n"], "mappings": "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", "names": ["vnPage", "vnProducts", "msImages", "msPreloader", "vnUser", "get", "post", "getMS2Api", "url", "callback", "headers", "getCookie", "options", "asyncRequest", "method", "data", "res", "error", "name", "parts", "isLoading", "groupingData", "hasError", "init", "homePageData", "requestContext", "isSportsLobby", "isOnSportsLobby", "isOnHomepage", "context", "prepareContext", "getScreenSize", "constructUrl", "screenSize", "fetchData", "preloadLcpImages", "preloadWidgetData", "widgetId", "sportId", "sportsPathIndex", "widgets", "isSportLobby", "deviceType", "requestInit", "widget", "a", "b", "personalizedUrl", "response", "marqueeData", "personalizedData", "_a", "preloadMarqueeLcp", "staticTeaser", "preloadStaticTeaserLcp", "storyContent", "preloadStoryContentLcp", "teaser", "preloadTeaserLcp", "marquee", "casinoBanner", "preloadCasinoBannerLcp", "popularBets", "preloadPopularBetsLcp", "preloadImages", "_b", "_c", "pod", "backgroundImage", "createImagePreloadLink", "stories", "story", "stretch", "imageUrl", "qualityParam", "tile", "srcSet", "size", "i", "teasers", "setImageQuality", "imageSource", "allowedImageTypes", "qualityValue", "allowedExtensions", "src", "sizes", "preloadLink", "siteMapData", "teaserPrices"] }