{"version":3,"sources":["TeamsAndLeaguesLinks.js","GameIframe.js","DigitalPortalLoader.js","Accordion.js"],"names":["defineDs","HashChange","LoginController","SitecoreAuth","Utils","getCompetitionID","str","splitCharacter","needle","index","indexOf","id","substring","length","split","parseInt","redirect","url","logDeprecated","getLoginStatus","loggedInSitecore","location","href","openLogin","loginSuccessUrl","match","hash","params","competitionId","window","teamId","getTeamID","returnUrl","newUrl","encodeURIComponent","leagueId","getLeagueID","Event","$iframe","matchesObHash","test","document","body","classList","contains","querySelector","iframeUrl","getAttribute","setTimeout","setAttribute","subscribe","data","h","height","contentDocument","scrollHeight","e","console","trace","style","refreshHeight","setGameVerticalHashMatcher","init","$element","getElementById","listeners","i","SGDPortal","q","l","load","n","c","push","addEventListener","script","createElement","onload","basePath","pathname","__OpenbetAppConfig__","__SGD__","webapp","route","async","src","dataset","digitalPortalLoaderUrl","head","appendChild","$enablePools","enablePools","operatorSpecificConfig","_objectSpread","operatorVariation","accordionItems","querySelectorAll","forEach","item","toggle","content","wrapper","closest","acordionItemToggle","key","ariaExpanded","ariaHidden"],"mappings":"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","file":"region-oddset.js","sourcesContent":["defineDs('DanskeSpil/Framework/TeamsAndLeagues/Scripts/TeamsAndLeaguesLinks', [\r\n 'DanskeSpil/Project/Design/Js/Global/HashChange',\r\n 'DanskeSpil/Domain/Authentification/Scripts/LoginController',\r\n 'DanskeSpil/Domain/Authentification/Scripts/SitecoreAuth',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils'\r\n], function (HashChange, LoginController, SitecoreAuth, Utils) {\r\n\r\n /** ******************************************************************\r\n * Translate URLs comming from links from create and change buttons\r\n * in Oddset or Tips in the form:\r\n * \"Opret hold\", \"Opret liga\", \"Rediger hold\", \"Rediger liga\"\r\n * https://town21.danskespil.dk/tips/konkurrencer/29#hold/opret/konkurrenceId=29/konkurrenceNavn=Future%20Pools%20Leaderboard/slutDato=2020-01-29T09:55:00.000Z\r\n * https://town21.danskespil.dk/tips/konkurrencer/29#liga/opret/konkurrenceId=29/konkurrenceNavn=Future%20Pools%20Leaderboard\r\n * into the form used by pam.\r\n * https://town21.danskespil.dk//tal/createteam#/create?competitionId=29/konkurrenceNavn=05%20-%20TestPAM%20May%202018/slutDato=2018-05-31T21:58:00.000Z&returnUrl=https%3A%2F%2Fweb.trunk.danskespil.dk%2Foddset%2Fkonkurrencer%2F22\r\n */\r\n\r\n var getCompetitionID = function (str) {\r\n var splitCharacter = '/';\r\n var needle = 'konkurrenceId=';\r\n var index = str.indexOf(needle);\r\n if (index === -1) {\r\n needle = 'konkurrencer/';\r\n index = str.indexOf(needle);\r\n splitCharacter = '#';\r\n }\r\n\r\n var sub = str.substring(index + needle.length);\r\n var id = sub.split(splitCharacter)[0];\r\n\r\n return parseInt(id, 10);\r\n };\r\n\r\n var getLeagueID = function (str) {\r\n var index = str.indexOf('ligaId=');\r\n if (index === -1) {\r\n return null;\r\n }\r\n var sub = str.substring(index + 'ligaId='.length);\r\n var id = sub.split('/')[0];\r\n return parseInt(id, 10);\r\n };\r\n\r\n var getTeamID = function (str) {\r\n var index = str.indexOf('holdId=');\r\n if (index === -1) {\r\n return null;\r\n }\r\n var sub = str.substring(index + 'holdId='.length);\r\n var id = sub.split('/')[0];\r\n return parseInt(id, 10);\r\n };\r\n\r\n var redirect = function (url) {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n Utils.logDeprecated('TeamsAndLeaguesLinks.js redirect'); // Added July 2019 by Micki\r\n\r\n SitecoreAuth.getLoginStatus(function (loggedInSitecore) {\r\n if (loggedInSitecore) {\r\n location.href = url;\r\n } else {\r\n LoginController.openLogin({\r\n loginSuccessUrl: url\r\n });\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Test URLs from Openbet\r\n * Create team: \"https://town23.danskespil.dk/oddset/konkurrencer/8#hold/opret/konkurrenceId=8/konkurrenceNavn=new%20lead%2007/05/18/slutDato=2019-05-01T11:24\"\r\n * Edit team: \"https://town23.danskespil.dk/oddset/konkurrencer/8#hold/rediger/holdId=7160/slutDato=2020-01-29T09:50:00.000Z\"\r\n */\r\n HashChange.match(/^hold\\//, function (hash) {\r\n var params = hash.substring(5);\r\n var competitionId = getCompetitionID(window.location.href);\r\n var teamId = getTeamID(window.location.href);\r\n var returnUrl = window.location.href.split('#')[0];\r\n var newUrl = '';\r\n if (params.indexOf('opret') === 0) {\r\n newUrl = '/konkurrencer/hold/opret?competitionId=' + competitionId + '&returnUrl=' + encodeURIComponent(returnUrl) + '#/create';\r\n } else if (params.indexOf('rediger') === 0) {\r\n newUrl = '/konkurrencer/hold/oversigt?teamId=' + teamId + '&returnUrl=' + encodeURIComponent(returnUrl) + '#/overview';\r\n }\r\n\r\n redirect(newUrl);\r\n });\r\n\r\n /**\r\n * Test URLs from Openbet\r\n * Create league: \"https://town23.danskespil.dk/oddset/konkurrencer/8#liga/opret/konkurrenceId=8/konkurrenceNavn=Future%20Oddset%20Leaderboard\"\r\n * Edit league: \"https://town23.danskespil.dk/oddset/konkurrencer/8#liga/rediger/ligaId=7204\"\r\n */\r\n HashChange.match(/^liga\\//, function (hash) {\r\n var params = hash.substring(5);\r\n var competitionId = getCompetitionID(window.location.href);\r\n var leagueId = getLeagueID(window.location.href);\r\n var returnUrl = window.location.href.split('#')[0];\r\n var newUrl = '';\r\n if (params.indexOf('opret') === 0) {\r\n newUrl = '/konkurrencer/liga/opret?competitionId=' + competitionId + '&returnUrl=' + encodeURIComponent(returnUrl) + '#/create';\r\n } else if (params.indexOf('rediger') === 0) {\r\n newUrl = '/konkurrencer/liga/oversigt?leagueId=' + leagueId + '&returnUrl=' + encodeURIComponent(returnUrl) + '#/overview';\r\n }\r\n\r\n redirect(newUrl);\r\n });\r\n});\r\n","defineDs('DanskeSpil/Domain/Oddset/Scripts/GameIframe', [\r\n 'Common/Framework/EventHandling/Scripts/Event',\r\n 'DanskeSpil/Project/Design/Js/Global/HashChange'\r\n], function (Event, HashChange) {\r\n\r\n // Variables:\r\n var $iframe = null;\r\n\r\n // Functions:\r\n var refreshHeight = function (params) {\r\n var h = 0;\r\n\r\n if (params && params.height) {\r\n h = params.height;\r\n } else {\r\n try {\r\n h = $iframe.contentDocument.body.scrollHeight;\r\n } catch (e) {\r\n console.trace('GameFrame.refreshHeight', e);\r\n }\r\n }\r\n\r\n if (h > 0) {\r\n $iframe.style.height = h + 'px';\r\n }\r\n };\r\n\r\n var matchesObHash = function (hash) {\r\n /* Returns true, if the current hash does match a Game Vertical hash */\r\n return /^#?\\/(kkr|tps|mlt|ob)\\//g.test(hash); // allowed OB hashes\r\n };\r\n\r\n var init = function () {\r\n $iframe = document.querySelector('.js-oddset-game-iframe');\r\n\r\n if (!$iframe) {\r\n return;\r\n }\r\n\r\n var startUrl = $iframe.getAttribute('data-iframe-url');\r\n var hash = location.hash || '';\r\n var iframeUrl = startUrl + hash;\r\n\r\n // workaround to ensure async iframe loading in all browsers\r\n setTimeout(function () {\r\n $iframe.setAttribute('src', iframeUrl);\r\n }, 1);\r\n\r\n Event.subscribe('dsapi-update-game-frame-height', function (data) {\r\n refreshHeight(data);\r\n });\r\n\r\n // Custom help-overlay for Oddset region\r\n HashChange.match('oddset/help', function () {\r\n /* Forward to #p/oddset/help - used by Openbet */\r\n location.hash = '#p/oddset/help';\r\n });\r\n\r\n // Setup hashchange matcher\r\n HashChange.setGameVerticalHashMatcher(matchesObHash);\r\n };\r\n\r\n // Init:\r\n if (document.body.classList.contains('mode-normal')) {\r\n init();\r\n }\r\n\r\n});\r\n\r\n\r\n","defineDs('DanskeSpil/Domain/OpenBet/Scripts/DigitalPortalLoader', function () {\r\n\r\n // Variables:\r\n var $element = document.getElementById('digital-portal-wrapper');\r\n\r\n // Context:\r\n if ($element) {\r\n var $enablePools = $element.dataset.enablePools === 'True' || false;\r\n var listeners = [\r\n '@sgd/account-activity/READY',\r\n 'openbet-portal-core/content/CMS_CONTENT_READY',\r\n '@dan/headless-sportsbook/content/CMS_CONTENT_READY',\r\n '@sgd/headless-sportsbook/route/NOT_FOUND',\r\n 'portal.login.statusChanged'\r\n ];\r\n window.SGDPortal = {\r\n q: [],\r\n e: [],\r\n l: listeners,\r\n load: function (e, n, c) {\r\n window.SGDPortal.q.push([e, n, c]);\r\n },\r\n h: function (e) {\r\n window.SGDPortal.e.push(e);\r\n }\r\n };\r\n\r\n for (var i in listeners) {\r\n window.addEventListener(listeners[i], window.SGDPortal.h);\r\n }\r\n\r\n var script = document.createElement('script');\r\n\r\n script.onload = function () {\r\n var basePath = '/' + window.location.pathname.split('/')[1];\r\n\r\n // Old namespace:\r\n if (window.__OpenbetAppConfig__) {\r\n window.__OpenbetAppConfig__.basePath = basePath;\r\n }\r\n\r\n // New namespace:\r\n if (window.__SGD__ && window.__SGD__.webapp) {\r\n window.__SGD__.webapp.basePath = basePath;\r\n window.__SGD__.webapp.operatorSpecificConfig = { ...window.__SGD__.webapp.operatorSpecificConfig, ...{ operatorVariation: 'oddset' } };\r\n }\r\n\r\n if ($enablePools) {\r\n window.__SGD__.webapp.operatorSpecificConfig = { ...window.__SGD__.webapp.operatorSpecificConfig, ...{ operatorVariation: 'pools' } };\r\n }\r\n window.SGDPortal.load('#digital-portal-wrapper', 'sportsbook', { route: '/' });\r\n };\r\n\r\n script.async = true;\r\n script.src = $element.dataset.digitalPortalLoaderUrl;\r\n\r\n document.head.appendChild(script);\r\n }\r\n});\r\n","defineDs('DanskeSpil/Domain/Feature.Components/Scripts/Accordion.js', [], function () {\r\n\r\n if (document.querySelector('.js-accordion-item')) {\r\n const accordionItems = document.querySelectorAll('.js-accordion-item');\r\n\r\n accordionItems?.forEach((item) => {\r\n const toggle = item.querySelector('.js-accordion-title');\r\n const content = item.querySelector('.js-accordion-content');\r\n const wrapper = toggle.closest('.js-accordion-wrapper');\r\n toggle?.addEventListener('click', () => {\r\n acordionItemToggle(wrapper, toggle, content);\r\n });\r\n\r\n item?.addEventListener('keydown', (e) => {\r\n if (e.key === 'Enter') {\r\n acordionItemToggle(wrapper, toggle, content);\r\n }\r\n });\r\n });\r\n\r\n\r\n const acordionItemToggle = (wrapper, toggle, content) => {\r\n if (toggle.ariaExpanded === 'false') {\r\n wrapper.querySelectorAll('[aria-hidden=\"false\"]').forEach((e) => e.setAttribute('aria-hidden', 'true'));\r\n wrapper.querySelectorAll('[aria-expanded=\"true\"]').forEach((e) => e.setAttribute('aria-expanded', 'false'));\r\n }\r\n toggle.setAttribute('aria-expanded', toggle.ariaExpanded === 'true' ? 'false' : 'true');\r\n content.setAttribute('aria-hidden', content.ariaHidden === 'true' ? 'false' : 'true');\r\n };\r\n }\r\n});\r\n"]}