{"tags":[{"tagId":"2023579a-cdfc-4682-aacf-e14f16279478","tagTypeId":"custom_tag_type","name":"Header and Mobile Menu new styles","description":"Header and Mobile Menu new styles","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"c108e716-8f80-4252-938c-63b4328d7401","tagTypeId":"custom_js","name":"Registration billing address","description":"Registration billing address","config":{"code":"Playtech.API.auth.addBeforeRegistrationHook(({ dataMap, addressDetails }) => {\n dataMap.address = addressDetails.streetName + ' ' + addressDetails.buildingNumber + ' ' + addressDetails.unitNumber;\n\n return { dataMap, addressDetails };\n});\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"e9b76d2c-21d0-408c-babb-452806f7bdd0","tagTypeId":"custom_js","name":"Copy Phone from Visible Field","description":"Copy Phone from Visible Field","config":{"code":"Playtech.API.auth.addBeforeRegistrationHook(({ dataMap }) => {\n // modify phone right before registration request is sent\n dataMap.phone = dataMap.cellphone\n \n return { dataMap };\n});"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"a8c00411-fb57-48c3-b3d4-4d4593656c1b","tagTypeId":"custom_tag_type","name":"Styles - Advanced Player Messages","description":"Styles - Advanced Player Messages","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"9ff845f2-4a5c-40c5-97be-4ceb59c672e8","tagTypeId":"custom_js","name":"adaChatBot","description":"Ada Chat Bot","config":{"code":"setTimeout(() => {\r\n requestIdleCallback(() => {\r\n const isNorthStarBets =\r\n window.location.hostname.includes(\"northstarbets.ca\") ||\r\n window.location.hostname.includes(\"torstar-stg-admin.mhub2.com\");\r\n if (!isNorthStarBets) {\r\n console.warn(\"Ada AI Agent is only available on northstarbets.ca\");\r\n return;\r\n }\r\n\r\n const isTestPage = window.location.pathname.includes(\r\n \"/ada-ai-agent-testing\",\r\n );\r\n if (!isTestPage) {\r\n console.warn(\r\n \"Ada AI Agent is only available on /ada-ai-agent-testing page\",\r\n );\r\n return;\r\n }\r\n\r\n window.toggleAdaChat = () => {\r\n if (window.adaEmbed) {\r\n window.adaEmbed.toggle();\r\n }\r\n };\r\n\r\n const resetAda = async (settings) => {\r\n await window.adaEmbed?.stop();\r\n await window.adaEmbed?.start(settings);\r\n };\r\n\r\n const defaultAdaSettings = {\r\n handle: \"northstarbetsai\",\r\n cluster: \"maple\",\r\n language: \"en\",\r\n metaFields: {},\r\n sensitiveMetaFields: {},\r\n };\r\n\r\n window.adaSettings = { ...defaultAdaSettings };\r\n\r\n const getSettings = async () => {\r\n let metaFields = {};\r\n let sensitiveMetaFields = { JWT_token: \"\" };\r\n\r\n if (Playtech.API.auth.isLoggedIn) {\r\n const { firstName, lastName, email, username, vipLevel } =\r\n Playtech.fetchUserDetails();\r\n\r\n const response = await Playtech.API.server.getJWTToken();\r\n const jwtToken = response?.data?.jwtToken;\r\n\r\n metaFields = {\r\n name: [firstName, lastName].filter((v) => v).join(\" \"),\r\n first_name: firstName,\r\n last_name: lastName,\r\n email: email,\r\n user_id: username,\r\n vip_level: vipLevel,\r\n };\r\n\r\n sensitiveMetaFields = {\r\n JWT_token: jwtToken,\r\n };\r\n }\r\n\r\n return {\r\n ...defaultAdaSettings,\r\n metaFields,\r\n sensitiveMetaFields,\r\n };\r\n };\r\n\r\n const updateAdaSettings = async () => {\r\n const settings = await getSettings();\r\n window.adaSettings = {\r\n ...window.adaSettings,\r\n ...settings,\r\n };\r\n\r\n await Promise.all([\r\n window.adaEmbed?.setMetaFields(settings.metaFields),\r\n window.adaEmbed?.setSensitiveMetaFields(settings.sensitiveMetaFields),\r\n ]);\r\n };\r\n\r\n const loadAdaScript = () => {\r\n if (document.getElementById(\"__ada\")) return;\r\n const script = document.createElement(\"script\");\r\n script.id = \"__ada\";\r\n script.setAttribute(\"data-handle\", defaultAdaSettings.handle);\r\n script.src = \"https://static.ada.support/embed2.js\";\r\n script.async = true;\r\n script.onerror = () => {\r\n console.error(\"Error loading Ada script\");\r\n };\r\n document.body.append(script);\r\n };\r\n\r\n if (Playtech.API.user.isLoggedIn()) {\r\n loadAdaScript();\r\n getSettings().then((settings) => resetAda(settings));\r\n }\r\n\r\n Playtech.on(Playtech.Events.LOGGED_IN, async () => {\r\n loadAdaScript();\r\n const settings = await getSettings();\r\n await resetAda(settings);\r\n });\r\n\r\n Playtech.on(Playtech.Events.LOGGED_OUT, async () => {\r\n if (window.adaEmbed) {\r\n await window.adaEmbed.deleteHistory();\r\n await window.adaEmbed.stop();\r\n }\r\n });\r\n\r\n window.adaSettings.toggleCallback = async (isDrawerOpen) => {\r\n if (isDrawerOpen && Playtech.API.auth.isLoggedIn) {\r\n await updateAdaSettings();\r\n }\r\n };\r\n });\r\n}, 2000);\r\n\r\nwindow.addEventListener(\"click\", (event) => {\r\n if (event.target?.classList.contains(\"adaOpenButton\")) {\r\n toggleAdaChat();\r\n }\r\n});\r\n"},"conditionIds":["a03573de-bf87-4289-a97a-eba42a70086d","8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"cb7b6903-9dd7-4076-9fe4-2d6c2f3cdc9a","tagTypeId":"custom_js","name":"Shufti On Tag Change","description":"Shufti On Tag Change","config":{"code":"Playtech.on('player-tag-change', ({ tag, value, removed }) => {\n \n if (window.location.pathname.includes('/verification/id')) return;\n \n if (tag === 'risk/doc/id_upload_requirement' && value === 'required') {\n \n Playtech.API.common.navigate('/verification/id');\n }\n});\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8","3ce8bb22-93fc-4109-a439-67a5b66e6826"]},{"tagId":"5c74daf2-974f-4b24-b303-72dd18f6e432","tagTypeId":"custom_js","name":"Verification Shufti popup","description":"Verification Shufti popup","config":{"code":"(async function check() {\n if (!Playtech.API.auth.isLoggedIn) {\n // player not logged in\n return;\n }\n\n if (window.location.pathname.includes('/verification/id')) {\n // check happens on /verification page already\n // so no need to do it again\n return;\n }\n \n try {\n const { data } = await Playtech.API.user.getPlayerTags('risk/doc/id_upload_requirement');\n const { tags } = data;\n\n if (tags.length === 0) {\n // no tag assigned, skipping\n return;\n }\n\n const [tag] = tags;\n\n if (tag.value !== 'required') {\n // tag value is not expected, skipping\n return;\n }\n\n Playtech.API.common.navigate('/verification/id');\n } catch (error) {\n console.error(error);\n }\n})();"},"conditionIds":["d56bbd7d-efba-4e18-a8be-9467a5db3176","3ce8bb22-93fc-4109-a439-67a5b66e6826"]},{"tagId":"79e1a6e3-1548-48c3-9c2b-fc9aaf453a19","tagTypeId":"custom_js","name":"ZenDesk","description":"ZenDesk","config":{"code":"(() => {\r\n let zendeskReady = false;\r\n let authCompleted = false;\r\n let pendingOpen = false;\r\n\r\n const registerAuth = () => {\r\n if (typeof zE !== \"function\") return;\r\n\r\n zE(\"messenger\", \"loginUser\", async (callback) => {\r\n try {\r\n const response = await Playtech.API.server.getJWTToken();\r\n const jwtToken = response?.data?.jwtToken;\r\n if (!jwtToken) return;\r\n\r\n callback(jwtToken);\r\n authCompleted = true;\r\n\r\n if (pendingOpen) {\r\n pendingOpen = false;\r\n zE(\"messenger\", \"show\");\r\n zE(\"messenger\", \"open\");\r\n }\r\n } catch (e) {\r\n console.error(\"Zendesk JWT fetch failed\", e);\r\n }\r\n });\r\n };\r\n\r\n const openChat = () => {\r\n if (typeof zE !== \"function\" || !Playtech.API.auth.isLoggedIn) return;\r\n\r\n if (authCompleted) {\r\n zE(\"messenger\", \"show\");\r\n zE(\"messenger\", \"open\");\r\n } else {\r\n pendingOpen = true;\r\n }\r\n };\r\n\r\n const initZendesk = () => {\r\n if (zendeskReady || !Playtech.API.auth.isLoggedIn) return;\r\n zendeskReady = true;\r\n\r\n Playtech.API.common\r\n .getScript(\r\n \"https://static.zdassets.com/ekr/snippet.js?key=571772db-59b3-42ff-9c59-317894562e91\",\r\n { id: \"ze-snippet\" }\r\n )\r\n .then(() => {\r\n if (typeof zE !== \"function\") return;\r\n\r\n zE(\"messenger\", \"hide\");\r\n zE(\"messenger:on\", \"close\", () => zE(\"messenger\", \"hide\"));\r\n\r\n zE(\"messenger:on\", \"unreadMessages\", (count) => {\r\n if (count === 0) return;\r\n const helpMenu = document.querySelector(\"#ns-help-menu\");\r\n const chatItem = document.querySelector(\".ns-help-menu-item.ns-help-menu-item-chat\");\r\n if (helpMenu) helpMenu.dataset.unreadCount = count;\r\n if (chatItem) chatItem.dataset.unreadCount = count;\r\n });\r\n\r\n registerAuth();\r\n\r\n Playtech.on(Playtech.Events.LOGGED_OUT, () => {\r\n zE(\"messenger\", \"logoutUser\");\r\n zE(\"messenger\", \"hide\");\r\n authCompleted = false;\r\n zendeskReady = false;\r\n pendingOpen = false;\r\n });\r\n })\r\n .catch(() => (zendeskReady = false));\r\n };\r\n\r\n const initTimeout = setTimeout(initZendesk, 3000);\r\n\r\n Playtech.on(Playtech.Events.LOGGED_IN, () => {\r\n clearTimeout(initTimeout);\r\n initZendesk();\r\n });\r\n\r\n window.addEventListener(\"click\", (e) => {\r\n const target = e.target;\r\n if (!target || !Playtech.API.auth.isLoggedIn) return;\r\n\r\n if (target.classList?.contains(\"chatOpenButton\") || target.closest('[data-promotion-id=\"cosmo-banner\"]')) {\r\n typeof zE === \"function\" ? openChat() : initZendesk();\r\n }\r\n });\r\n})();\r\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"30d0e5ca-43ad-4769-8a51-fbf9bafb3880","tagTypeId":"custom_tag_type","name":"New-Login-Style","description":"New-Login-Style","config":{"beforeEndHead":"\n","beforeEndBody":""},"conditionIds":["d75b35ac-62ba-4fee-85eb-9a943061049b"]},{"tagId":"bde361cd-1943-4da1-99b7-faa9cdebe45a","tagTypeId":"custom_js","name":"Scroll Up on Navigate","description":"Scroll Up on Navigate","config":{"code":"\r\nlet gameInfoNavigationState = {\r\n isActive: false,\r\n scrollPosition: 0,\r\n startTime: 0\r\n};\r\n\r\nPlaytech.on('navigate', () => {\r\n const currentPath = window.location.pathname;\r\n const isGameInfoRoute = currentPath.includes('/game-info/');\r\n \r\n if (isGameInfoRoute && !gameInfoNavigationState.isActive) {\r\n gameInfoNavigationState = {\r\n isActive: true,\r\n scrollPosition: window.scrollY,\r\n startTime: Date.now()\r\n };\r\n return; \r\n }\r\n \r\n if (!isGameInfoRoute && gameInfoNavigationState.isActive) {\r\n // Restore scroll position\r\n window.scrollTo(0, gameInfoNavigationState.scrollPosition);\r\n gameInfoNavigationState.isActive = false;\r\n return; // Don't scroll to top\r\n }\r\n \r\n if (!isGameInfoRoute) {\r\n window.scrollTo(0, 0);\r\n }\r\n});"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"1b5c5d32-21cc-40da-b560-12a2604566e5","tagTypeId":"custom_tag_type","name":"Promotion Grid Styling","description":"Promotion Grid Styling","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"cd86abc2-4eb6-4457-ba04-33ab4585ed7a","tagTypeId":"custom_js","name":"HOTFIX_KAMBI_DISPOSE","description":"Dispose on navigation","config":{"code":"Playtech.on('navigate', ({pathname, prevPathname}) => { if (prevPathname.startsWith('/sportsbook') && !pathname.startsWith('/sportsbook') && !Playtech.API.page.isPageInPopupUrl()) _kbc?.dispose() })"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"13449a2b-50fb-4d82-b1e0-2a0736c48780","tagTypeId":"custom_js","name":"AppsFlyer Download App Banner","description":"AppsFlyer Download App Banner","config":{"code":"!function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){(t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))},t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1,o.src=\"https://websdk.appsflyer.com?\"+(c.length>0?\"st=\"+c.split(\",\").sort().join(\",\")+\"&\":\"\")+(i.length>0?\"af_id=\"+i:\"\"),p.parentNode.insertBefore(o,p)}(window,document,\"script\",0,\"AF\",\"banners\",{banners: {key: \"f610f4db-fc04-4a2c-b063-479d3591abf9\"}});\r\nAF('banners', 'showBanner')\r\n"},"conditionIds":["3116e3f0-d9b8-4025-a6fa-a8ba5f88713d","8251a559-2ca7-44c4-a5c7-76ac77d838d8","3ce8bb22-93fc-4109-a439-67a5b66e6826"]},{"tagId":"97da214d-29ea-4239-971b-53b94aa239f7","tagTypeId":"custom_js","name":"Refresh shufti","description":"Refresh shufti","config":{"code":"Playtech.on('player-tag-change', ({ tag, value }) => {\n if (tag === 'risk/doc/id_upload_requirement') {\n Playtech.API.page.requestPageInPopupUpdate();\n }\n})"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"a41c8b90-f490-4549-aa22-46dbf85d1a23","tagTypeId":"custom_tag_type","name":"customInboxStyling","description":"custom styling for inbox feature","config":{"beforeEndHead":"","beforeEndBody":"\r\n \r\n "},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"e44b7511-150e-4053-8ebc-f1971a414ca0","tagTypeId":"custom_js","name":"window.localStorage set hasUser","description":"Writes to localStorage on login or signup hasUser","config":{"code":"(() => {\r\n const apply = () => {\r\n localStorage.setItem('hasUser', '1');\r\n }\r\n Playtech.on('LOGGED_IN', apply);\r\n Playtech.on('LOGGED_OUT', apply);\r\n})();"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"bee2df2b-319f-4471-a687-327e9e90e5a0","tagTypeId":"geocomply","name":"GeoComply for Sports","description":"GeoComply for Sports","config":{"enableNative":false,"clientURL":"https://cdn.geocomply.com/plc/4.0.0.4/geocomply-client.min.js","disableStoreAutoLaunch":false,"oobeeURL":"https://ca1-oobee-v2.geocomply.com/","enableMobile":false,"identifierType":"Casino","installerBaseURL":"https://ums.geocomply.com/installer/url","useTransparentPopup":false,"skipBrowserGeolocation":false,"mobileClientURL":"https://cdn.geocomply.com/glv/1094/glv.js","installerKey":"rWxFaJ4pox","installerVersion":"4.0.0.4","environmentID":"production","enableSolus":true,"solusClientURL":"https://cdn.geocomply.com/244/gc-html5.js ","enableDesktop":false},"conditionIds":["3ce8bb22-93fc-4109-a439-67a5b66e6826","20d6f19d-4580-4e94-960b-b2dd39f21599","d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"58856d36-ac1b-49ea-8aaa-3f4dc12c6ea7","tagTypeId":"geocomply","name":"GeoComply for Wrapper","description":"GeoComply for games","config":{"enableNative":false,"clientURL":"https://cdn.geocomply.com/plc/4.0.0.4/geocomply-client.min.js","disableStoreAutoLaunch":false,"oobeeURL":"https://ca1-oobee-v2.geocomply.com/","enableMobile":false,"identifierType":"","installerBaseURL":"https://ums.geocomply.com/installer/url","useTransparentPopup":true,"skipBrowserGeolocation":false,"mobileClientURL":"https://cdn.geocomply.com/glv/1094/glv.js","installerKey":"rWxFaJ4pox","installerVersion":"4.0.0.4","environmentID":"production","enableSolus":true,"solusClientURL":"https://cdn.geocomply.com/244/gc-html5.js ","enableDesktop":false},"conditionIds":["1ff4bb65-77ad-4c2c-9d6e-d5c3c753a348"]},{"tagId":"3ace9086-c0c1-43ae-a395-5643b8840814","tagTypeId":"custom_tag_type","name":"User currency","description":"Adds the current currency of the user","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"cacdd75e-deb3-4201-9051-f27e77b83ba2","tagTypeId":"custom_tag_type","name":"CSS for ALL pages","description":"CSS for ALL pages","config":{"beforeEndHead":"\r\n","beforeEndBody":""},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8","d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"d6979fc5-a64b-4e65-938c-91681e07644b","tagTypeId":"custom_js","name":"documentElement Player Tags","description":"documentElement Player Tags","config":{"code":"(() => {\r\n const dashToCamelCase = (str) => \r\n str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\r\n\r\n const capitalizeFirstLetter = (str) =>\r\n str.length === 0 ? str : str.charAt(0).toUpperCase() + str.slice(1);\r\n\r\n const setPlayerTags = (tags) => {\r\n tags.forEach(({ name, value }) => {\r\n const formattedName = capitalizeFirstLetter(dashToCamelCase(name.replaceAll('/', '-')));\r\n document.documentElement.dataset[`tag${formattedName}`] = value ?? '';\r\n });\r\n };\r\n\r\n const clearPlayerTags = () => {\r\n Object.keys(document.documentElement.dataset).forEach((key) => {\r\n if (key.startsWith('tag')) {\r\n delete document.documentElement.dataset[key];\r\n }\r\n });\r\n };\r\n\r\n const render = async () => {\r\n if (Playtech.API.user.isLoggedIn()) {\r\n try {\r\n const response = await Playtech.API.user.getPlayerTags();\r\n setPlayerTags(response.data.tags);\r\n } catch (error) {\r\n console.error('Error fetching player tags:', error);\r\n }\r\n } else {\r\n clearPlayerTags();\r\n }\r\n };\r\n\r\n Playtech.on('LOGGED_IN', render);\r\n Playtech.on('LOGGED_OUT', render);\r\n render();\r\n})();\r\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"ff49488a-6cf7-409f-91ec-9fb456491f04","tagTypeId":"custom_js","name":"Verify Now Popup","description":"Verify Now with Player Tag Check","config":{"code":"(async function check() {\n if (!Playtech.API.auth.isLoggedIn) {\n // player not logged in\n return;\n }\n\n if (window.location.pathname.includes('/verification')) {\n // check happens on /verification page already\n // so no need to do it again\n return;\n }\n \n if (window.location.pathname.includes('/after-registration/deposit')) {\n // check if on /after-registration/deposit\n return;\n }\n\n try {\n const { data } = await Playtech.API.user.getPlayerTags('risk/doc/kyc_upload_requirement');\n const { tags } = data;\n\n if (tags.length === 0) {\n // no tag assigned, skipping\n return;\n }\n\n const [tag] = tags;\n\n if (tag.value !== 'required') {\n // tag value is not expected, skipping\n return;\n }\n\n Playtech.API.common.navigate('/verification');\n } catch (error) {\n console.error(error);\n }\n})();\n"},"conditionIds":["d56bbd7d-efba-4e18-a8be-9467a5db3176","3ce8bb22-93fc-4109-a439-67a5b66e6826"]},{"tagId":"fbf6fbe8-396e-4c2c-8fce-7154dcc4608a","tagTypeId":"custom_tag_type","name":"XtremePush","description":"XtremePush","config":{"beforeEndHead":"","beforeEndBody":"\r\n\r\n\r\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"43cd4267-1d9f-4962-bc0f-5f993b13f5a4","tagTypeId":"custom_js","name":"Iframe - postMessage","description":"Iframe - postMessage","config":{"code":"Playtech.on('REGISTRATION_COMPLETED', (() => { window.parent?.postMessage('sign-up', '*'); }));"},"conditionIds":["9a574062-2f42-452b-ad52-3d2ccc1c18c3","d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"a5aac826-cb78-435c-8ec0-fc42b303d759","tagTypeId":"custom_js","name":"CSS Display helpers","description":"CSS Display helpers","config":{"code":"(() => {\r\n const DEFAULT_VIP_LEVEL = 'unlogged';\r\n\r\n let vipLevel = DEFAULT_VIP_LEVEL;\r\n let styleEl = document.createElement('style');\r\n document.body.appendChild(styleEl);\r\n\r\n const render = () => {\r\n const forceDate = new URLSearchParams(window.location.search).get('forceDate');\r\n\r\n const today = luxon.DateTime.now().setZone('America/Toronto')\r\n const todayDayName = (forceDate ? luxon.DateTime.fromISO(forceDate) : today).setLocale(\"en\").toFormat('cccc').toLowerCase();\r\n const todayDate = forceDate || today.toFormat('yyyy-MM-dd');\r\n\r\n window.document.documentElement.setAttribute('data-date', todayDate);\r\n window.document.documentElement.setAttribute('data-day-of-the-week', todayDayName);\r\n window.document.documentElement.setAttribute('data-vip-level', vipLevel);\r\n \r\n styleEl.textContent = `\r\n /* LEVEL 1 */\r\n [data-filter-date],\r\n [data-filter-day-of-the-week],\r\n [data-filter-vip-levels] {\r\n display: none;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"] [data-filter-date~=\"${todayDate}\"],\r\n html[data-day-of-the-week=\"${todayDayName}\"] [data-filter-day-of-the-week~=\"${todayDayName}\"],\r\n html[data-vip-level=\"${vipLevel}\"] [data-filter-vip-levels~=\"${vipLevel}\"] {\r\n display: block;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"] [data-filter-date~=\"${todayDate}\"][data-style-display=\"inline-block\"],\r\n html[data-day-of-the-week=\"${todayDayName}\"] [data-filter-day-of-the-week~=\"${todayDayName}\"][data-style-display=\"inline-block\"],\r\n html[data-vip-level=\"${vipLevel}\"] [data-filter-vip-levels~=\"${vipLevel}\"][data-style-display=\"inline-block\"] {\r\n display: inline-block;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"] [data-filter-date~=\"${todayDate}\"][data-style-display=\"flex\"],\r\n html[data-day-of-the-week=\"${todayDayName}\"] [data-filter-day-of-the-week~=\"${todayDayName}\"][data-style-display=\"flex\"],\r\n html[data-vip-level=\"${vipLevel}\"] [data-filter-vip-levels~=\"${vipLevel}\"][data-style-display=\"flex\"] {\r\n display: flex;\r\n }\r\n\r\n /* LEVEL 2 */\r\n html [data-filter-date][data-filter-day-of-the-week],\r\n html [data-filter-date][data-filter-vip-levels],\r\n html [data-filter-day-of-the-week][data-filter-vip-levels] {\r\n --display-applied: none;\r\n display: none;\r\n }\r\n \r\n html[data-date=\"${todayDate}\"][data-day-of-the-week=\"${todayDayName}\"] [data-filter-date~=\"${todayDate}\"][data-filter-day-of-the-week~=\"${todayDayName}\"],\r\n html[data-date=\"${todayDate}\"][data-vip-level=\"${vipLevel}\"] [data-filter-date~=\"${todayDate}\"][data-filter-vip-levels~=\"${vipLevel}\"],\r\n html[data-day-of-the-week=\"${todayDayName}\"][data-vip-level=\"${vipLevel}\"] [data-filter-day-of-the-week~=\"${todayDayName}\"][data-filter-vip-levels~=\"${vipLevel}\"] {\r\n --display-applied: var(--display, block);\r\n display: var(--display-applied);\r\n }\r\n\r\n /* LEVEL 3 */\r\n html [data-filter-date][data-filter-vip-levels][data-filter-day-of-the-week] {\r\n display: none;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"][data-day-of-the-week=\"${todayDayName}\"][data-vip-level=\"${vipLevel}\"] [data-filter-date~=\"${todayDate}\"][data-filter-day-of-the-week~=\"${todayDayName}\"][data-filter-vip-levels~=\"${vipLevel}\"] {\r\n display: block;\r\n }\r\n \r\n html[data-date=\"${todayDate}\"][data-day-of-the-week=\"${todayDayName}\"][data-vip-level=\"${vipLevel}\"] [data-filter-date~=\"${todayDate}\"][data-filter-day-of-the-week~=\"${todayDayName}\"][data-filter-vip-levels~=\"${vipLevel}\"][data-style-display=\"inline-block\"] {\r\n display: inline-block;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"][data-day-of-the-week=\"${todayDayName}\"][data-vip-level=\"${vipLevel}\"] [data-filter-date~=\"${todayDate}\"][data-filter-day-of-the-week~=\"${todayDayName}\"][data-filter-vip-levels~=\"${vipLevel}\"][data-style-display=\"flex\"] {\r\n display: flex;\r\n }\r\n\r\n @media (min-width: 640px) {\r\n html [data-filter-date][data-desktop-style-display],\r\n html [data-filter-day-of-the-week][data-desktop-style-display],\r\n html [data-filter-vip-levels][data-desktop-style-display] {\r\n display: none;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"] [data-filter-date~=\"${todayDate}\"][data-desktop-style-display],\r\n html[data-vip-level=\"${vipLevel}\"] [data-filter-vip-levels~=\"${vipLevel}\"][data-desktop-style-display],\r\n html[data-day-of-the-week=\"${todayDayName}\"] [data-filter-day-of-the-week~=\"${todayDayName}\"][data-desktop-style-display] {\r\n display: attr(data-desktop-style-display);\r\n }\r\n\r\n /* LEVEL 2 */\r\n html [data-filter-date][data-filter-day-of-the-week][data-desktop-style-display],\r\n html [data-filter-date][data-filter-vip-levels][data-desktop-style-display],\r\n html [data-filter-day-of-the-week][data-filter-vip-levels][data-desktop-style-display] {\r\n display: none;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"][data-day-of-the-week=\"${todayDayName}\"] [data-filter-date~=\"${todayDate}\"][data-filter-day-of-the-week~=\"${todayDayName}\"][data-desktop-style-display],\r\n html[data-date=\"${todayDate}\"][data-vip-level=\"${vipLevel}\"] [data-filter-date~=\"${todayDate}\"][data-filter-vip-levels~=\"${vipLevel}\"][data-desktop-style-display],\r\n html[data-day-of-the-week=\"${todayDayName}\"][data-vip-level=\"${vipLevel}\"] [data-filter-day-of-the-week][data-filter-vip-levels~=\"${vipLevel}\"][data-desktop-style-display] {\r\n display: attr(data-desktop-style-display);\r\n }\r\n\r\n /* LEVEL 3 */\r\n html [data-filter-date][data-filter-vip-levels][data-filter-day-of-the-week][data-desktop-style-display] {\r\n display: none;\r\n }\r\n\r\n html[data-date=\"${todayDate}\"][data-day-of-the-week=\"${todayDayName}\"][data-vip-level=\"${vipLevel}\"] [data-filter-date~=\"${todayDate}\"][data-filter-day-of-the-week~=\"${todayDayName}\"][data-filter-vip-levels~=\"${vipLevel}\"][data-desktop-style-display] {\r\n display: attr(data-desktop-style-display);\r\n }\r\n }\r\n `;\r\n }\r\n\r\n const renderFull = () => {\r\n if (Playtech.API.user.isLoggedIn()) {\r\n vipLevel = Playtech.fetchUserDetails().vipLevel; \r\n } else {\r\n vipLevel = DEFAULT_VIP_LEVEL;\r\n }\r\n\r\n render();\r\n }\r\n\r\n Playtech.on('LOGGED_IN', renderFull);\r\n Playtech.on('LOGGED_OUT', renderFull);\r\n\r\n Playtech.API.common.getScript('https://cdn.jsdelivr.net/npm/luxon@3.4.2/build/global/luxon.min.js').then(() => {\r\n renderFull();\r\n });\r\n})();\r\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"c0ed5ec1-b8a3-4ed6-b0e4-5591174bbaf4","tagTypeId":"custom_js","name":"Hide content native","description":"Hide content native","config":{"code":"(() => {\n const searchParams = new URLSearchParams(location.search);\n\n if (searchParams.get('isNative')) {\n // hide the games portlet on /sportsbook\n const sportGamesPortlet = document.getElementsByClassName('responsivegamesonsportsbook');\n sportGamesPortlet[0].style.display = \"none\";\n }\n})();"},"conditionIds":["d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"deb4dd06-4a7b-46e3-b41b-18cb4ffb0e35","tagTypeId":"custom_tag_type","name":"Reduce register form height","description":"Reduce register form height","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["04e4fa56-1eb3-41c4-a10a-9c1c851536c0","d75b35ac-62ba-4fee-85eb-9a943061049b"]},{"tagId":"cd8dc724-858d-4645-a0c8-ee72e58f9e6d","tagTypeId":"custom_js","name":"Registration buildingNumber to streetNumber","description":"Registration buildingNumber to streetNumber","config":{"code":"Playtech.API.auth.addBeforeRegistrationHook(({ dataMap }) => {\n dataMap.streetNumber = dataMap.buildingNumber;\n\n return { dataMap };\n});"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"e861401a-2510-4419-84b9-65982cc5a1ff","tagTypeId":"custom_js","name":"Hide header/footer Sports promos Native","description":"Hide header/footer Sports promos Native","config":{"code":"(() => {\n\tfunction detach(selector) {\n\t\tconst elements = document.body.querySelectorAll(selector);\n\n\t\telements.forEach((element) => element.parentNode.removeChild(element));\n\t}\n\n\tif (localStorage.getItem('isNative')) {\n// https://www.northstarbets.ca/promotions?hideHeader=1&hideFooter=1&isNative=1&deliveryPlatform=Native\n// KambiBC-js-bottom-navigation-container KambiBC-bottom-navigation-container\n// NSHotLinks\n\t\tdetach('.NSHotLinks');\n\t\tdetach('.KambiBC-js-bottom-navigation-container');\n\t\tdetach('.AppRouter__header--3bT');\n\t\tdetach('.Footer__footer--LxN');\n detach('.ns-promo-buttons');\n detach('.ns-promo-games');\n\t}\n})();"},"conditionIds":["385ccc31-847e-40ff-9a3f-fb5a6d7f68c5","d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"0fd2fdc5-d0a4-4a71-a026-eb1a437ab7a4","tagTypeId":"dynamic_client_type","name":"Client Type by Vertical","description":"Client Type by Vertical","config":{"clientTypeQueryStringPages":[{"page":"/register"},{"page":"/cashier/withdraw"},{"page":"/cashier/deposit"}],"clientTypeGroups":[{"clientType":"live","pages":[{"page":"/live-dealer"}]},{"clientType":"sportsbook","pages":[{"page":"/sportsbook"}]},{"clientType":"casino","pages":[{"page":"/casino"}]}]},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"ab568260-cf50-4f00-b3bf-ea57ebbe708a","tagTypeId":"custom_tag_type","name":"Styling Game Grid Icons","description":"Styling Game Grid Icons","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"f133a045-ebe7-47de-8e8a-5a7c5d23d5e9","tagTypeId":"custom_js","name":"Kambi Navigation","description":"Kambi Navigation","config":{"code":"(async () => {\n if (!window.WAPI) {\n await Playtech.API.common.getScript('https://static.kambicdn.com/client/widget-api/kambi-widget-api.js');\n }\n\n const WAPI = window.WAPI ?? await KambiWidget.ready;\n\n window.WAPI = WAPI;\n\n Playtech.on('navigate', ({ cleanPathname }) => {\n if (cleanPathname === '/sportsbook') {\n WAPI.navigateClient('/');\n } else if (cleanPathname === '/sportsbook/news') {\n WAPI.navigateClient('/news');\n }\n });\n\n\n document.body.addEventListener('click', (event) => {\n const target = event.target;\n\n if (!target || !target.matches('.menu__nav-link')) {\n return;\n }\n\n if (target.getAttribute('href') === '/sportsbook') {\n WAPI.navigateClient('/');\n } else if (target.getAttribute('href') === '/sportsbook/news') {\n WAPI.navigateClient('/news');\n }\n });\n})();"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"00efdde0-e7a3-4254-a84b-5d20ac002633","tagTypeId":"custom_tag_type","name":"Sidebar / Mobile Slide Styling","description":"Sidebar / Mobile Slide Styling","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"81638e78-6822-4873-86e0-07243d47c094","tagTypeId":"custom_js","name":"Handle openDeposit param","description":"Handle openDeposit param","config":{"code":"(() => {\n const searchParams = new URLSearchParams(location.search);\n\n if (searchParams.get('openDeposit')) {\n Playtech.API.common.replace(location.pathname, null, { removeParams: ['openDeposit'] });\n\n if (Playtech.API.auth.isLoggedIn) {\n Playtech.API.common.navigate('/deposit', null, { removeParams: ['openDeposit'] });\n return;\n }\n \n setTimeout(() => Playtech.API.auth.showLoginPopup({ onLogin: () => Playtech.API.common.navigate('/deposit') }), 1000);\n }\n})();"},"conditionIds":["d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"850a855d-469b-4347-a67c-0d9ab734a3a5","tagTypeId":"custom_tag_type","name":"Styling Game Grid Icons","description":"Styling Game Grid Icons","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"3d933c29-dc9a-4392-8290-d72382ca7c93","tagTypeId":"custom_js","name":"PLAYTECH API READY","description":"PLAYTECH API READY","config":{"code":"dataLayer.push({'event': 'PLAYTECH_API_READY'});"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"75903103-9867-49be-9c5e-92ec18a6c37e","tagTypeId":"custom_js","name":"XtremePush Prompt","description":"XtremePush Prompt","config":{"code":"(() => {\r\n\tconst DISMISS_KEY = 'webpush_prompt_dismissed';\r\n\r\n\tfunction initializeXtremePushConnection() {\r\n\t\tconst data = Playtech.fetchUserDetails();\r\n\r\n\t\t// set user_id\r\n\t\txtremepush('set', 'user_id', data.userId);\r\n\t\txtremepush('event', 'on_sign_in');\r\n\r\n\t\t// set tags on the user\r\n\t\tconst properties = {\r\n\t\t\t'advertiser': 'advertiser',\r\n\t\t\t'age': 'age',\r\n\t\t\t'ageVerificationStatus': 'age_verification_status',\r\n\t\t\t'birthDate': 'birth_date',\r\n\t\t\t'casinoName': 'casino_name',\r\n\t\t\t'clientType': 'client_type',\r\n\t\t\t'contactPreferences': 'contact_preferences',\r\n\t\t\t'email': 'email',\r\n\t\t\t'firstName': 'first_name',\r\n\t\t\t'frozen': 'frozen',\r\n\t\t\t'lastName': 'last_name',\r\n\t\t\t'loginName': 'login_name',\r\n\t\t\t'noBonus': 'no_bonus',\r\n\t\t\t'previousLoginTime': 'previous_login_time',\r\n\t\t\t'username': 'username',\r\n\t\t\t'vipLevel': 'vip_level',\r\n\t\t\t'wantMail': 'want_mail',\r\n\t\t};\r\n\r\n\t\tfor (const [property, name] of Object.entries(properties)) {\r\n\t\t\txtremepush('tag', name, data[property]);\r\n\t\t}\r\n\t}\r\n\r\n\tif (Playtech.API.auth.isLoggedIn) {\r\n\t\tinitializeXtremePushConnection();\r\n\t}\r\n\r\n\tPlaytech.on('LOGGED_IN', initializeXtremePushConnection);\r\n\tPlaytech.on('LOGGED_IN_FAIL', () => { xtremepush('event', 'failed_login'); });\r\n\tPlaytech.on('LOGGED_OUT', () => { xtremepush('event', 'on_sign_out'); });\r\n\tPlaytech.on('DEPOSIT_COMPLETED', () => { xtremepush('event', 'deposit_completed'); });\r\n\tPlaytech.on('DEPOSIT_FAIL', () => { xtremepush('event', 'deposit_fail'); });\r\n\tPlaytech.on('GAME_LAUNCH', ([{ launchType, gameCode, gameName, gameFeed, container }]) => {\r\n\t\txtremepush('event', 'game_launch', {game: gameCode, name: gameName});\r\n\t});\r\n\r\n\tconst permission = xtremepush('push', 'permission');\r\n\r\n\tif (permission === 'default' && localStorage.getItem(DISMISS_KEY) !== '1') {\r\n\t\tPlaytech.on('LOGGED_IN', async () => {\r\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 3000));\r\n\r\n\t\t\tPlaytech.API.popup.showPopup('confirmation', {\r\n\t\t\t\tcontent: 'Would you like to enable notifications from NorthStar Bets?',\r\n\t\t\t\tacceptBtnText: 'Enable',\r\n\t\t\t\tonAccept: () => {\r\n\t\t\t\t\txtremepush('push', 'prompt', {\r\n\t\t\t\t\t\tallowCallback: function() {\r\n\t\t\t\t\t\t\t// register in IMS\r\n\t\t\t\t\t\t\tconst id = xtremepush('get', 'device_info')?.id;\r\n\r\n\t\t\t\t\t\t\tif (id) {\r\n\t\t\t\t\t\t\t\tPlaytech.API.server.registerPushApplication({\r\n\t\t\t\t\t\t\t\t\tpushId: 'xtremepush',\r\n\t\t\t\t\t\t\t\t\tdeviceId: id,\r\n\t\t\t\t\t\t\t\t\tapplication: 'NorthStar'\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tblockCallback: function() {\r\n\t\t\t\t\t\t\t// user clicked block button\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdismissCallback: function() {\r\n\t\t\t\t\t\t\t// user dismissed permissions dialog\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tonDecline: () => {\r\n\t\t\t\t\tlocalStorage.setItem(DISMISS_KEY, '1');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n})();\r\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"a55161d0-2d61-45cf-aa98-c38ae335869a","tagTypeId":"custom_js","name":"onComponentLoad","description":"Patch for detecting when component is re-rendered","config":{"code":"function onComponentLoadByClass(targetNode, className, callback) {\r\n function mutationCallback(mutationsList) {\r\n let apply = false;\r\n for (let mutation of mutationsList) {\r\n if (mutation.type === 'childList') {\r\n for (let i = 0; i < mutation.addedNodes.length; i++) {\r\n let node = mutation.addedNodes[i];\r\n if (node.classList && node.classList.contains(className)) {\r\n apply = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (apply) {\r\n callback();\r\n }\r\n }\r\n\r\n const observer = new MutationObserver(mutationCallback);\r\n observer.observe(targetNode, { childList: true, subtree: true });\r\n}\r\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"7cdbdac5-1eba-4e0e-b75d-8c8d839a0615","tagTypeId":"custom_js","name":"Handle openLogin param","description":"Handle openLogin param","config":{"code":"(() => {\n const searchParams = new URLSearchParams(location.search);\n\n if (searchParams.get('openLogin')) {\n setTimeout(() => Playtech.API.popup.showPopup('login'), 1000);\n }\n})();"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"ab1b024c-1384-4d1a-be44-ed377e78469c","tagTypeId":"custom_js","name":"Kambi Visibility Change Check for Native","description":"Fix for Native visibility change","config":{"code":"(() => {\n\tlet afkStarted = 0;\n\n\tdocument.addEventListener('visibilitychange', () => {\n\t if (!Playtech.API.auth.isLoggedIn) {\n\t return;\n\t }\n\n\t\tif (!location.pathname.includes('/sportsbook')) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst now = new Date();\n\n\t\tif (document.visibilityState === 'hidden') {\n\t\t\tafkStarted = now;\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (afkStarted && now - afkStarted > 1000 * 60 * 5) {\n\t\t\tafkStarted = 0;\n\t\t\tlocation.reload();\n\t\t}\n\t});\n})();\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"6e5c099a-5ab8-4252-912e-126a0f866c81","tagTypeId":"custom_js","name":"Sticky Category Casino","description":"Sticky Category","config":{"code":"\n (() => {\n let categoryNavigation = document.querySelector(\".CategoriesTabs__container--30a\");\n \n console.log(categoryNavigation);\n})();\n\n\n\n\n\n"},"conditionIds":["605ac965-ddd1-49da-bc07-7838ec1f907c","d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"93e79f37-4150-4aed-8923-3c195a29f78c","tagTypeId":"custom_js","name":"AppsFlyer Web","description":"AppsFlyer Web for Deposit Events","config":{"code":"(function () {\n\t!function (t, e, n, s, a, c, i, o, p) {\n\t\tt.AppsFlyerSdkObject = a, t.AF = t.AF || function () {\n\t\t\t(t.AF.q = t.AF.q || []).push([Date.now()].concat(Array.prototype.slice.call(arguments)));\n\t\t},\n\t\t\tt.AF.id = t.AF.id\n\t\t\t\t|| i, t.AF.plugins = {}, o = e.createElement(n), p = e.getElementsByTagName(n)[0], o.async = 1,\n\t\t\to.src = 'https://websdk.appsflyer.com?' + (c.length > 0 ? 'st=' + c.split(',').sort().join(',') + '&' : '')\n\t\t\t\t+ (i.length > 0 ? 'af_id=' + i : ''),\n\t\t\tp.parentNode.insertBefore(o, p);\n\t}(window, document, 'script', 0, 'AF', 'pba', { pba: { webAppId: '52b0e15e-2306-4d30-84db-7d09c5a6ba45' } });\n\n\tif (Playtech.API.user.isLoggedIn()) {\n\t\tAF('pba', 'setCustomerUserId', Playtech.fetchUserDetails().userId);\n\t}\n\n\tPlaytech.on('LOGGED_IN', function () {\n\t\tAF('pba', 'setCustomerUserId', Playtech.fetchUserDetails().userId);\n\t});\n\n\tPlaytech.on('LOGGED_OUT', function () {\n\t\tAF('pba', 'setCustomerUserId', 'undefined');\n\t});\n\n\tPlaytech.on('REGISTRATION_COMPLETED', function ([{ userId }]) {\n\t\tAF('pba', 'setCustomerUserId', userId);\n\n\t\t// timeout was requested by AF\n\t\tsetTimeout(function () {\n\t\t\tAF('pba', 'event', {\n\t\t\t\teventType: 'EVENT',\n\t\t\t\teventName: 'af_register'\n\t\t\t});\n\t\t}, 2000);\n\t});\n\n\tPlaytech.on(Playtech.Events.SAFECHARGE_ANALYTICS, function ([event]) {\n\t\tconst { action } = event;\n\n\t\tlet eventName = null;\n\n\t\tswitch (action) {\n\t\t\tcase 'failed deposit':\n\t\t\t\teventName = 'af_deposit_fail';\n\t\t\t\tbreak;\n\n\t\t\tcase 'failed first deposit':\n\t\t\t\teventName = 'af_first_deposit_fail';\n\t\t\t\tbreak;\n\n\t\t\tcase 'made first deposit':\n\t\t\t\teventName = 'af_first_deposit';\n\t\t\t\tbreak;\n\n\t\t\tcase 'made deposit':\n\t\t\t\teventName = 'af_deposit';\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\tconst { deposit_amount, currency, label } = event;\n\n\t\tAF('pba', 'event', {\n\t\t\teventType: 'EVENT',\n\t\t\teventName,\n\t\t\teventValue: {\n\t\t\t\tcustomerID: Playtech.fetchUserDetails().userId,\n\t\t\t\tdeposit_amount,\n\t\t\t\tcurrency,\n\t\t\t\tlabel\n\t\t\t}\n\t\t});\n\t});\n\n\tPlaytech.on(Playtech.Events.SAFECHARGE_WITHDRAWAL_SUCCESS, function ([event]) {\n\t\tconst { amount, currency, 'payment_method': label } = event;\n\n\t\tAF('pba', 'event', {\n\t\t\teventType: 'EVENT',\n\t\t\teventName: 'af_withdraw',\n\t\t\teventValue: {\n\t\t\t\tcustomerID: Playtech.fetchUserDetails().userId,\n\t\t\t\tamount,\n\t\t\t\tcurrency,\n\t\t\t\tlabel\n\t\t\t}\n\t\t});\n\t});\n\n\tPlaytech.on(Playtech.Events.SAFECHARGE_WITHDRAWAL_FAIL, function ([event]) {\n\t\tconst { amount, currency, 'payment_method': label } = event;\n\n\t\tAF('pba', 'event', {\n\t\t\teventType: 'EVENT',\n\t\t\teventName: 'af_withdraw_fail',\n\t\t\teventValue: {\n\t\t\t\tcustomerID: Playtech.fetchUserDetails().userId,\n\t\t\t\tamount,\n\t\t\t\tcurrency,\n\t\t\t\tlabel\n\t\t\t}\n\t\t});\n\t});\n})();\n"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"3ddaba2b-817e-4a70-a071-cd2bbf803fa8","tagTypeId":"custom_tag_type","name":"IOS App Download","description":"IOS App Download","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["605ac965-ddd1-49da-bc07-7838ec1f907c","d56bbd7d-efba-4e18-a8be-9467a5db3176"]},{"tagId":"cbde9403-5749-448a-adc2-47a7bd19da0f","tagTypeId":"custom_js","name":"Handle openRegistrationPage param","description":"Handle openRegistrationPage param","config":{"code":"(() => {\n const searchParams = new URLSearchParams(location.search);\n\n if (searchParams.get('openRegistrationPage')) {\n setTimeout(() => Playtech.API.common.navigate('/register'), 1000);\n }\n})();"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"75a62d3f-6981-4777-a200-e83dde50d3cc","tagTypeId":"custom_js","name":"Copy Phone from Visible Field","description":"Copy Phone from Visible Field","config":{"code":"document.body.addEventListener('input', (event) => {\n const target = event.target;\n \n if (!target?.matches('#cellphone0')) {\n return;\n }\n \n const value = target.value;\n const phone = document.querySelector('#text9');\n \n if (phone) {\n phone.value = value.substr(-10);\n }\n});"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"8957d963-b640-464e-bed6-8d3ff005536f","tagTypeId":"custom_tag_type","name":"Popup Button Constraints in Wrapper","description":"Remove popup button constraints in Wrapper mostly for GeoComply popup","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["1ff4bb65-77ad-4c2c-9d6e-d5c3c753a348"]},{"tagId":"9712596d-546e-41c4-a081-ae7c0e2c4aea","tagTypeId":"custom_js","name":"Add VIP Level as class","description":"Add VIP Level as class","config":{"code":"(() => {\n // html tag to attach CSS classes to\n // needs to be #applicaion, because otherwise classes will get overwritten by Portal\n const root = document.querySelector('#application');\n const handler = () => {\n if (!Playtech.API.auth.isLoggedIn) {\n // if player is not logged in, do nothing\n return;\n }\n\n const getPlayersLevel = Playtech.fetchUserDetails();\n const vipLevel = getPlayersLevel.vipLevel; //get vip status\n // add viplevel1\n root.classList.add(`viplevel${vipLevel}`);\n };\n // subscribe to login event\n Playtech.on(Playtech.Events.LOGGED_IN, handler);\n // subscribe to logout event\n Playtech.on(Playtech.Events.LOGGED_OUT, () => {\n Array.from(root.classList)\n .filter((name) => name.startsWith('vipl'))\n .forEach((name) => root.classList.remove(name));\n });\n // check on app init\n handler();\n})();"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"3936e7ce-378e-466e-ba7c-52fc8ad231c6","tagTypeId":"custom_js","name":".fn-logout handler","description":"Handle Logout button","config":{"code":"document.body.addEventListener('click', (event) => {\n if (Playtech.API.device.isDesktop) {\n return;\n }\n\n const target = event.target;\n const a = target.closest('.fn-logout');\n\n if (!a) {\n return;\n }\n\n event.preventDefault();\n\n if (!Playtech.API.auth.isLoggedIn) {\n return;\n }\n\n Playtech.API.popup.showPopup('confirmation', {\n content: 'playtech.mobile.system.logoutconfirm.title',\n acceptBtnText: 'playtech.mobile.system.logout.button.title',\n declineBtnText: 'playtech.mobile.system.cancel.button.title',\n onAccept: () => Playtech.API.auth.logout(),\n isModal: false,\n className: 'logout-confirm-popup'\n });\n});"},"conditionIds":["8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"821cd889-61a9-4a80-9c9d-cd1bf48462a1","tagTypeId":"ucip","name":"UCIP for Wrapper","description":"UCIP for Wrapper","config":{},"conditionIds":["1ff4bb65-77ad-4c2c-9d6e-d5c3c753a348"]},{"tagId":"cea048e6-fc87-47d2-a7aa-50940839852e","tagTypeId":"custom_tag_type","name":"Hide Kambi Menu on Native","description":"Hide Kambi Menu on Native","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["652c59a4-5725-40b3-8d7d-f826e1e8cae0","8251a559-2ca7-44c4-a5c7-76ac77d838d8"]},{"tagId":"e5e3662e-614e-4d08-894b-4b8a024ab154","tagTypeId":"custom_tag_type","name":"Base Styling","description":"Base Styling","config":{"beforeEndHead":"","beforeEndBody":""},"conditionIds":["d75b35ac-62ba-4fee-85eb-9a943061049b"]}],"conditions":[{"conditionId":"a03573de-bf87-4289-a97a-eba42a70086d","conditionTypeId":"page_condition","name":"On ADA TEST","description":"On ADA TEST","config":{"onPageLaunch":"/ada-ai-agent-testing"}},{"conditionId":"3116e3f0-d9b8-4025-a6fa-a8ba5f88713d","conditionTypeId":"url_param_condition","name":"Exclude on deliveryPlatform=Native","description":"Exclude on deliveryPlatform=Native","config":{"launchRule":"0","urlParameters":[{"name":"deliveryPlatform","value":"Native"}]}},{"conditionId":"c01d37c8-50f1-4eac-9725-798a5ae74e4c","conditionTypeId":"page_condition","name":"On Promotion Page","description":"custom parameters applying only to promotion page","config":{"onPageLaunch":"/promotions/casino,/promotions/all"}},{"conditionId":"e6c899de-d55a-4bda-a55d-001b4a203a1d","conditionTypeId":"page_condition","name":"On cashier page","description":"Deposit or withdraw","config":{"onPageLaunch":"/cashier/deposit,/cashier/withdraw"}},{"conditionId":"9a574062-2f42-452b-ad52-3d2ccc1c18c3","conditionTypeId":"page_condition","name":"On iframe Pages","description":"On iframe Pages","config":{"onPageLaunch":"/iframe/sign-up,"}},{"conditionId":"15f2adab-534d-4ac8-9abc-d1acf8884394","conditionTypeId":"page_condition","name":"Login Pop Up","description":"Login Pop Up","config":{"onPageLaunch":"/test-dynamic-values"}},{"conditionId":"04e4fa56-1eb3-41c4-a10a-9c1c851536c0","conditionTypeId":"page_condition","name":"On Register Page","description":"On Register Page","config":{"onPageLaunch":"/register"}},{"conditionId":"385ccc31-847e-40ff-9a3f-fb5a6d7f68c5","conditionTypeId":"page_condition","name":"On Sports Promotions","description":"On Sports Promotions","config":{"onPageLaunch":"/promotions/sports,/promotions/sports/home-run-heroes,/promotions/sports/welcome-offer, /promotions/sports/bet-boosters,/promotions/sports/parlay-payday,/promotions/sports/touchdown-stars,/promotions/sports/download-the-app,/sportsbook/insights,/loyaltypoints,/promotions/sports/super-stars, /sportsbook/news, /sportsbook/news/article/4-4-2-picks"}},{"conditionId":"1a004dda-abd3-4868-96e9-411d279f8cd4","conditionTypeId":"page_condition","name":"On Main Pages","description":"On Main Pages","config":{"onPageLaunch":"/casino,/sportsbook,/live-dealer,/promotions/all,/sportsbook/news"}},{"conditionId":"81c5192e-1901-4962-9176-d9a03fb3d542","conditionTypeId":"page_condition","name":"On Sidebar Test","description":"On Sidebar Test","config":{"onPageLaunch":"/sidebar"}},{"conditionId":"605ac965-ddd1-49da-bc07-7838ec1f907c","conditionTypeId":"page_condition","name":"On test page","description":"On test page","config":{"onPageLaunch":"/sticky-category-test"}},{"conditionId":"652c59a4-5725-40b3-8d7d-f826e1e8cae0","conditionTypeId":"native_app_condition","name":"Only on Native","description":"Only on Native","config":{"nativeAppRule":"1"}},{"conditionId":"20d6f19d-4580-4e94-960b-b2dd39f21599","conditionTypeId":"page_condition","name":"On Sports Page","description":"On Sports Page","config":{"onPageLaunch":"/sportsbook"}},{"conditionId":"90e53cd8-6c8a-45e6-9d93-a0d84c65b6ea","conditionTypeId":"page_condition","name":"Product = Sportsbook","description":"Product = Sportsbook","config":{"onPageLaunch":"/sportsbook,/sportsbook/insights"}},{"conditionId":"f2016297-55d2-4085-a2fa-7ea25accb1a8","conditionTypeId":"page_condition","name":"On Insights page","description":"On Insights page","config":{"onPageLaunch":"/sportsbook/insights"}},{"conditionId":"d75b35ac-62ba-4fee-85eb-9a943061049b","conditionTypeId":"basic_condition","name":"Before Page Rendered","description":"","config":{"launch":"beforePageRendered"}},{"conditionId":"1ff4bb65-77ad-4c2c-9d6e-d5c3c753a348","conditionTypeId":"basic_condition","name":"On Wrapper Init","description":"On Wrapper Init","config":{"launch":"onWrapperInit"}},{"conditionId":"8251a559-2ca7-44c4-a5c7-76ac77d838d8","conditionTypeId":"basic_condition","name":"On App Init","description":"On App Init","config":{"launch":"onAppInit"}},{"conditionId":"d56bbd7d-efba-4e18-a8be-9467a5db3176","conditionTypeId":"basic_condition","name":"After Page Rendered","description":"After Page Rendered","config":{"launch":"afterPageRendered"}},{"conditionId":"b263d9af-4927-4244-b271-adf71613b673","conditionTypeId":"page_condition","name":"Product = Casino","description":"Product = Casino","config":{"onPageLaunch":"/casino,/live-casino"}},{"conditionId":"3ce8bb22-93fc-4109-a439-67a5b66e6826","conditionTypeId":"native_app_condition","name":"Exclude from Native","description":"Exclude from Native App","config":{"nativeAppRule":"0"}}]}