{"tags":[{"tagId":"d27184ff-6728-4e9d-87b4-a225ac31a252","tagTypeId":"custom_tag_type","name":"Sticky footer","description":"Sticky footer","config":{"beforeEndHead":"<style type=\"text/css\">\r\n    .sticky-footer {\r\n        position: sticky;\r\n        bottom: 0;\r\n        z-index: 13;\r\n        padding-top: 0.5rem;\r\n        border-radius: 1rem 1rem 0 0;\r\n        display: flex;\r\n        flex-direction: column;\r\n        background-color: var(--verde-escuro);\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-unlogged-container {\r\n        display: none;\r\n        padding: 0.3rem 1rem 1rem 1rem;\r\n    }\r\n\r\n    html.mobile[data-vip-level=\"unlogged\"] .sticky-footer .sticky-footer-unlogged-container {\r\n        display: flex;\r\n        gap: 1rem;\r\n    }\r\n\r\n    html.mobile[data-vip-level=\"unlogged\"] .sticky-footer .sticky-footer-unlogged-container > * {\r\n        flex: 1 1 0;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-unlogged-container .btn + .btn {\r\n        margin-left: 0;\r\n        margin-right: 0;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-unlogged-container .sticky-footer-login,\r\n    .sticky-footer .sticky-footer-unlogged-container .sticky-footer-register {\r\n        font-size: 1rem;\r\n        width: 100%;\r\n        padding: 0.3rem;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-unlogged-container .sticky-footer-login {\r\n        background-color: var(--amarelo-brand);\r\n        color: var(--verde-escuro-accent);\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-unlogged-container .sticky-footer-register {\r\n        background-color: var(--verde-escuro-accent);\r\n        color: var(--amarelo-brand);\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-bottom-detail {\r\n        height: 1rem;\r\n        background-image: url(\"/library/Header/aplicacao-verde-escuro-accent.svg\");\r\n        background-repeat: repeat-x;\r\n        background-position: center top;\r\n        background-size: contain;\r\n        transform: rotate(180deg);\r\n        margin-top: -6px;\r\n    }\r\n\r\n    .sticker-footer-items-group-container {\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 44px;\r\n    }\r\n\r\n    .sticker-footer-items-group {\r\n        position: absolute;\r\n        width: 100%;\r\n        top: 0;\r\n        left: 0;\r\n        transform: translateY(0);\r\n        opacity: 1;\r\n        transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;\r\n    }\r\n\r\n    html:not(.root-sportsbook) .sticker-footer-items-group.casino {\r\n        position: relative;\r\n    }\r\n\r\n    html:not(.root-sportsbook) .sticker-footer-items-group.esporte {\r\n        transform: translateY(100%);\r\n        opacity: 0;\r\n        pointer-events: none;\r\n    }\r\n\r\n    html.root-sportsbook .sticker-footer-items-group.esporte {\r\n        position: relative;\r\n    }\r\n\r\n    html.root-sportsbook .sticker-footer-items-group.casino {\r\n        transform: translateY(100%);\r\n        opacity: 0;\r\n        pointer-events: none;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-items {\r\n        display: flex;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-item {\r\n        width: 20%;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-icon {\r\n        display: flex;\r\n        justify-content: center;\r\n        height: 50%;\r\n        margin-bottom: 8px;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-icon img {\r\n        height: 30px;\r\n    }\r\n\r\n    .sticky-footer .sticky-footer-title {\r\n        text-align: center;\r\n        font-size: 0.7rem;\r\n        color: var(--amarelo-brand);\r\n        font-weight: 600;\r\n    }\r\n\r\n    .sticky-footer .sticker-footer-items-group.esporte .home-button > div {\r\n        position: absolute;\r\n        width: 100%;\r\n        height: 100%;\r\n        top: 0;\r\n        left: 0;\r\n        transform: translateY(0);\r\n        opacity: 1;\r\n        transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;\r\n        pointer-events: auto;\r\n    }\r\n\r\n    .sticky-footer .sticker-footer-items-group.esporte .home-button {\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 44px;\r\n    }\r\n\r\n    .sticky-footer .sticker-footer-items-group.esporte .home-button > div.home-button-hidden {\r\n        transform: translateY(100%);\r\n        opacity: 0;\r\n        pointer-events: none;\r\n    }\r\n\r\n    .desktop .sticky-footer {\r\n        display: none;\r\n    }\r\n\r\n    /* =============================\r\n       iOS Safari FIXES\r\n       ============================= */\r\n\r\n    /* Reserva espaço pro footer no mobile iOS\r\n       pra não cobrir o conteúdo */\r\n    html.ios.mobile body {\r\n        /* ajusta se achar que está sobrando ou faltando espaço */\r\n        padding-bottom: calc(72px + env(safe-area-inset-bottom));\r\n    }\r\n\r\n    /* No iOS, sticky no bottom é instável; troca pra fixed */\r\n    html.ios.mobile .sticky-footer {\r\n        position: fixed;\r\n        left: 0;\r\n        right: 0;\r\n        bottom: 0;\r\n\r\n        /* mantém o visual original */\r\n        border-radius: 1rem 1rem 0 0;\r\n\r\n        /* garante que fique acima de outras UIs */\r\n        /*z-index: 9999;*/\r\n\r\n        /* compensa a safe area do iPhone */\r\n        padding-bottom: calc(0 + env(safe-area-inset-bottom));\r\n    }\r\n</style>\r\n","beforeEndBody":"<div class=\"sticky-footer\">\n    <div class=\"sticky-footer-unlogged-container\">\n        <div>\n            <a class=\"btn sticky-footer-register\" href=\"javascript:void(0)\" \n                onclick=\"Playtech.API.common.navigate('/register')\">Criar Conta</a>\n        </div>\n        <div>\n            <a class=\"btn sticky-footer-login\" href=\"javascript:void(0)\"\n                onclick=\"Playtech.API.popup.showPopup('login')\">Entrar</a>\n        </div>\n    </div>\n\n    <div class=\"sticker-footer-items-group-container\">\n        <div class=\"sticker-footer-items-group casino\">\n            <div class=\"sticky-footer-items\">\n                <div class=\"sticky-footer-item\" onclick=\"Playtech.API.common.navigate('/casino')\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/slots.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Cassino</div>\n                </div>\n                <div class=\"sticky-footer-item\" onclick=\"Playtech.API.common.navigate('/live-casino')\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/ao_vivo.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Ao Vivo</div>\n                </div>\n                <div class=\"sticky-footer-item\" onclick=\"Playtech.API.common.navigate('/view-more/Lobby/crash/')\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/crash.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Crash</div>\n                </div>\n                <div class=\"sticky-footer-item\"\n                    onclick=\"Playtech.API.common.navigate('/promocoes?promotionsTab=cassino')\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/promo.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Promoções</div>\n                </div>\n                <div class=\"sticky-footer-item\" onclick=\"Playtech.API.common.navigate('/sportsbook/')\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/futebol.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Esportes</div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"sticker-footer-items-group esporte\">\n            <div class=\"sticky-footer-items\">\n                <div id=\"sticky-footer-home-sports\" class=\"sticky-footer-item\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/home.svg\" />\n                    </div>\n                    <div class=\"sticky-footer-title\">Home</div>\n                </div>\n                <div class=\"sticky-footer-item home-button\">\n                    <div class=\"ao-vivo-root home-button-hidden\" onclick=\"Playtech.API.common.navigate('/sportsbook/inplay')\">\n                        <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/cronometro.svg\" />\n                        </div>\n                        <div class=\"sticky-footer-title\">Ao Vivo</div>\n                    </div>\n                    <div class=\"esportes-root home-button-hidden\" onclick=\"Playtech.API.common.navigate('/sportsbook')\">\n                        <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/futebol.svg\" />\n                        </div>\n                        <div class=\"sticky-footer-title\">Esportes</div>\n                    </div>\n                </div>\n                <div class=\"sticky-footer-item\" onclick=\"document.querySelector('.ta-QUICK_LINKSOPEN_BETS')?.click()\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/historico_esportes.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Suas Apostas</div>\n                </div>\n                <div class=\"sticky-footer-item\" onclick=\"document.querySelector('.ta-QUICK_LINKSA_Z')?.click()\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/search.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Busca</div>\n                </div>\n                <div class=\"sticky-footer-item\" onclick=\"Playtech.API.common.navigate('/casino')\">\n                    <div class=\"sticky-footer-icon\"><img src=\"/library/Icons/slots.svg\" /></div>\n                    <div class=\"sticky-footer-title\">Cassino</div>\n                </div>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"sticky-footer-bottom-detail\"></div>\n</div>\n\n<script>\n    (function () {\n        const sticky_footer = document.querySelector('.sticky-footer');\n        if (!sticky_footer) return;\n\n        // Attach click handler to home sports button\n        const homeSportsButton = document.getElementById('sticky-footer-home-sports');\n        if (homeSportsButton) {\n            homeSportsButton.addEventListener('click', function() {\n                const currentPath = window.location.pathname;\n                \n                if (currentPath.includes('inplay')) {\n                    Playtech.API.common.navigate('/sportsbook/inplay');\n                } else {\n                    Playtech.API.common.navigate('/sportsbook');\n                }\n                \n                window.Sportsbook?.navigate();\n            });\n        }\n\n        const home_button = sticky_footer.querySelector('.sticker-footer-items-group.esporte .sticky-footer-item.home-button');\n\n        const aoVivoRoot = home_button.querySelector('.ao-vivo-root');\n        const esportesRoot = home_button.querySelector('.esportes-root');\n\n        function updateEsportesHomeButton(path) {\n            if (path.startsWith('/sportsbook/inplay')) {\n                aoVivoRoot.classList.add('home-button-hidden')\n                esportesRoot.classList.remove('home-button-hidden')\n                return\n            }\n            \n            if (path.startsWith('/sportsbook')) {\n                aoVivoRoot.classList.remove('home-button-hidden')\n                esportesRoot.classList.add('home-button-hidden')\n                return;\n            }\n        }\n\n        // checa no início\n        updateEsportesHomeButton(window.location.pathname)\n\n        Playtech.on('navigate', ({ pathname, cleanPathname }) => {\n            console.log(pathname)\n            updateEsportesHomeButton(cleanPathname)\n        });\n    })();\n</script>"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"fa30a461-6692-4f2c-9fda-374b32a166c6","tagTypeId":"custom_js","name":"Open Sidebar links on Sidebar automatically","description":"This tag intends to open any sidebar link correctly on sidebar if any sidebar link is opened directly","config":{"code":"(() => {\r\n\t// bail out on admin domain\r\n\tif (window.Playtech?.Variables?.isAdminLoggedIn) return;\r\n\r\n\tconst { API, once, on } = Playtech;\r\n\r\n\t// maps route prefix → action to run after login\r\n\tconst routes = [\r\n\t\t{\r\n\t\t\tprefix: '/sidebar',\r\n\t\t\tlabel: 'sidebar',\r\n\t\t\topen: () => API.sidebar.open(),\r\n\t\t},\r\n\t\t{\r\n\t\t\tprefix: '/minha-conta',\r\n\t\t\tlabel: 'minha-conta',\r\n\t\t\topen: (path) => API.sidebar.openPage(path),\r\n\t\t},\r\n\t];\r\n\r\n\t// runs the action immediately if logged in; otherwise, shows login and runs after LOGGED_IN\r\n\tconst withLogin = (action) => {\r\n\t\tif (API.user.isLoggedIn()) {\r\n\t\t\taction();\r\n\t\t} else {\r\n\t\t\tAPI.popup.showPopup('login');\r\n\t\t\tonce('LOGGED_IN', action);\r\n\t\t}\r\n\t};\r\n\r\n\t// navigates to \"/sportsbook/\" and, when the \"navigate\" event fires, runs the action\r\n\tconst redirectThen = (action) => {\r\n\t\tAPI.common.navigate('/sportsbook/');\r\n\t\tonce('navigate', action);\r\n\t};\r\n\r\n\t// decides what to do based on the current pathname\r\n\tconst handlePath = (pathname) => {\r\n\t\tconst route = routes.find(r => pathname.startsWith(r.prefix));\r\n\t\tif (!route) return;\r\n\r\n\t\tconsole.warn(`Detected ${route.label} path, redirecting...`);\r\n\t\tredirectThen(() => withLogin(() => route.open(pathname)));\r\n\t};\r\n\r\n\t// initial check\r\n\thandlePath(window.location.pathname);\r\n\r\n\t// check on every navigation\r\n\ton('navigate', ({ pathname }) => handlePath(pathname));\r\n})();\r\n"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"e96e3546-a441-4bcb-9106-681483a3a019","tagTypeId":"custom_js","name":"Sportsbook Home Workaround","description":"Sportsbook Home Workaround","config":{"code":"document.body.addEventListener('click', (e) => {\nconsole.log(e.target.closest('.br-nav-list a[href^=\"/sportsbook\"]'));\n    if (e.target.closest('.br-nav-list a[href^=\"/sportsbook\"]')) {\n        window.Sportsbook?.navigate();\n    }\n    if (e.target.closest('a.br-header-logo-link')) {\n        window.Sportsbook?.navigate();\n    }\n});"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"08cebbbb-f071-44e0-b208-8d01e1b18798","tagTypeId":"custom_js","name":"Sportsbook Live / Home Switch","description":"Temporary Workaround until 26.3.0.0","config":{"code":"Playtech.on('navigate', () => window.Sportsbook?.navigate());"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"a6deb01d-b2d9-4115-9dcd-0814d941eb88","tagTypeId":"geofencing","name":"Geofencing Support for Wrapper","description":"Geofencing Support","config":{"skipBrowserGeolocation":true,"intervalPings":true,"useProviderAutoselection":false,"xpointNative":{"enabled":false},"gcDesktop":{"clientURL":"https://cdn.geocomply.com/plc/4.2.0.0/geocomply-client.min.js","identifierType":"Casino","installerBaseURL":"https://ums.geocomply.com/installer/url","enabled":false,"installerKey":"","installerVersion":"4.2.0.0","environmentID":"production"},"inactiveDetection":true,"playerTag":"kyc/user_verified","xpoint":{"enabled":false,"sdkUrl":"https://cdn.xpoint.tech/4.9.0/xpoint.min.js"},"xpointLite":{"enabled":true,"sdkUrl":"https://cdn.xpoint.tech/5.5.1/xpoint.min.js","geolocationEnabled":false},"useTransparentPopup":false,"gcSolus":{"enabled":false,"solusClientURL":"https://cdn.geocomply.com/244/gc-html5.js ","identifierType":"Casino"},"caf":{"enabled":false,"sdkUrl":"https://repo.combateafraude.com/identity/1.1.1/index.umd.js"}},"conditionIds":["40cfcc31-e547-4be6-9f5b-89e25ee290ca"]},{"tagId":"1042d18d-c435-4803-a49e-6344fe0ac89c","tagTypeId":"geofencing","name":"Geofencing Support","description":"Geofencing Support","config":{"skipBrowserGeolocation":true,"intervalPings":true,"useProviderAutoselection":false,"xpointNative":{"enabled":false},"gcDesktop":{"clientURL":"https://cdn.geocomply.com/plc/4.2.0.0/geocomply-client.min.js","identifierType":"Casino","installerBaseURL":"https://ums.geocomply.com/installer/url","enabled":false,"installerKey":"","installerVersion":"4.2.0.0","environmentID":"production"},"inactiveDetection":true,"playerTag":"kyc/user_verified","xpoint":{"enabled":false,"sdkUrl":"https://cdn.xpoint.tech/4.9.0/xpoint.min.js"},"xpointLite":{"enabled":true,"sdkUrl":"https://cdn.xpoint.tech/5.5.1/xpoint.min.js","geolocationEnabled":false},"useTransparentPopup":false,"gcSolus":{"enabled":false,"solusClientURL":"https://cdn.geocomply.com/244/gc-html5.js ","identifierType":"Casino"},"caf":{"enabled":false,"sdkUrl":"https://repo.combateafraude.com/identity/1.1.1/index.umd.js"}},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"592ff309-bd50-4b24-b74b-f52723d9355e","tagTypeId":"mfa","name":"MFA Configuration","description":"MFA Configuration","config":{"useMobileFlow":false,"caf":{"enabled":true,"sdkUrl":"https://repo.combateafraude.com/identity/1.1.1/index.umd.js"},"unico":{"enabled":false,"sdkUrl":""}},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"545e4902-6822-4779-ba2e-617d20dc6be3","tagTypeId":"custom_tag_type","name":"New-Login-Style","description":"New-Login-Style","config":{"beforeEndHead":"<style>\n    .cms-login [class*='Login__form--'] {\n        /*padding: 2em;*/\n    }\n\n    .cms-login [class*=\"Control__control--\"] [class*='ErrorMessage__error--'],\n    .cms-login [class*='Login__error--'] {\n        color: #f7cf23;\n    }\n\n    .cms-login [class*='Login__form--'] [class*=\"Control__control--\"] {\n        margin: 0 0 16px !important;\n    }\n\n    .cms-login .cms-login-controls,\n    [class*='LoginPopup__loginWc--'] p {\n        margin: 0;\n    }\n\n    .cms-login [class*='Control__control--'][class*='Checkbox__control--'] [class*='Control__content--'] {\n        background: transparent;\n        border-radius: 0;\n        border: 0;\n        color: #fff;\n    }\n\n    .cms-login [class*='Login__form--'] [class*='Login__recaptcha--'] {\n        padding: 0.5em 0;\n    }\n\n    .cms-login [class*='Login__form--'] [class*='Checkbox__control--'] [class*='CheckboxShallow__checkMark--']:before {\n        background-position: -5rem -87.5rem;\n    }\n\n    .cms-login [class*='Login__form--'] [class*='CheckboxShallow__input--']:active ~ [class*='CheckboxShallow__checkMark--']:before {\n        background-position: -5rem -87.5rem;\n    }\n\n    .cms-login [class*='Login__form--'] [class*='CheckboxShallow__input--']:checked ~ [class*='CheckboxShallow__checkMark--']:before {\n        background-position: 0 -90rem;\n    }\n    .cms-login [class*='Login__form--'] [class*='CheckboxShallow__input--']:checked:active ~ [class*='CheckboxShallow__checkMark--']:before {\n        background-position: -2.5rem -90rem;\n    }\n\n    .cms-login [class*='Login__form--'] .cms-login-controls button {\n        width: 100%;\n        font-size: 1.429rem;\n        font-weight: 300;\n        /*font-family: Asap, Helvetica Neue, Helvetica, Arial, sans-serif;*/\n        font-family: \"Gotham Ultra\", sans-serif;\n        border-radius: 0 10px;\n        text-transform: uppercase !important;\n        /*border-radius: 0.4857rem;*/\n        height: 45px;\n    }\n</style>\n","beforeEndBody":""},"conditionIds":["feea99e9-c324-47d8-b041-7e19f4ef92de"]},{"tagId":"dc517e5c-026a-47bb-baf0-d337b8cb681a","tagTypeId":"custom_tag_type","name":"CSS for SpinWheels","description":"CSS for SpinWheels","config":{"beforeEndHead":"<style>\r\n    .promotion-roulette img {\r\n        image-rendering: -webkit-optimize-contrast;\r\n        image-rendering: -o-crisp-edges;\r\n        image-rendering: -moz-crisp-edges;\r\n        width: 100%;\r\n    }\r\n\r\n    .promotion-roulette .eb {\r\n        font-weight: 600;\r\n        display: inline !important;\r\n    }\r\n\r\n    .promotion-roulette .wrapper {\r\n        position: relative;\r\n        background-size: cover;\r\n        background-repeat: no-repeat;\r\n        background-position: center;\r\n        overflow: hidden;\r\n        text-align: center;\r\n    }\r\n\r\n    .promotion-roulette .digitalbeat-roulette {\r\n        height: 100%;\r\n        overflow: hidden;\r\n        text-align: center;\r\n        position: relative;\r\n    }\r\n\r\n    .promo-no-elegible, .promo-custom-message {\r\n        display: none;\r\n    }\r\n\r\n    .promo-no-elegible.active, .promo-custom-message.active {\r\n        position: absolute;\r\n        top: 0;\r\n        display: flex;\r\n        width: 100%;\r\n        height: 100%;\r\n        justify-content: center;\r\n        align-items: center;\r\n    }\r\n\r\n    .promo-no-elegible span, .promo-custom-message span {\r\n        padding: 30px 30px;\r\n        background-color: #083476;\r\n        border-radius: 20px;\r\n        color: white;\r\n        font-size: 18px;\r\n        display: block;\r\n        text-align: center;\r\n        line-height: 1.3;\r\n        text-transform: uppercase;\r\n        font-weight: 700;\r\n        font-family: \"barlow\";\r\n        box-shadow: 0px 0px 20px 0px rgba(255, 255, 255, 0.8);\r\n    }\r\n\r\n    .digitalbeat-roulette-container {\r\n        padding: 100px 0;\r\n        display: flex;\r\n        justify-content: center;\r\n    }\r\n\r\n    .promotion-roulette .digitalbeat-roulette {\r\n        position: relative;\r\n        display: flex;\r\n        overflow: visible;\r\n        justify-content: center;\r\n        align-items: center;\r\n        width: fit-content;\r\n        height: fit-content;\r\n\r\n    }\r\n    \r\n    .promotion-roulette .blur {\r\n        filter: blur(10px);\r\n    }\r\n\r\n    .digitalbeat-roulette .extra-asset {\r\n        position: absolute;\r\n    }\r\n\r\n    .digitalbeat-roulette [data-asset-id=\"wheel-image\"] {\r\n        position: relative;\r\n    }\r\n\r\n    .digitalbeat-roulette [data-asset-id=\"spin-button\"] {\r\n        display: none;\r\n        cursor: pointer;\r\n        position: absolute;\r\n        width: 96px;\r\n        height: 96px;\r\n        left: 0;\r\n        right: 0;\r\n        top: 0;\r\n        bottom: 0;\r\n        margin: auto;\r\n    }\r\n\r\n    [data-roullete-canplay=\"1\"] [data-asset-id=\"spin-button\"] {\r\n        display: inherit;\r\n    }\r\n\r\n    html.mobile .digitalbeat-roulette [data-asset-id=\"wheel-pin\"] {\r\n        top: -50px;\r\n        left: -1.5px;\r\n        width: 48px;\r\n        height: 48px;\r\n    }\r\n\r\n    .digitalbeat-roulette [data-asset-id=\"wheel-pin\"] {\r\n        position: absolute;\r\n        width: 96px;\r\n        height: 96px;\r\n        left: -3px;\r\n        right: 0;\r\n        top: -87px;\r\n        margin: auto;\r\n    }\r\n\r\n    html.desktop .digitalbeat-roulette [data-asset-id=\"wheel-frame\"],\r\n    html.tablet .digitalbeat-roulette [data-asset-id=\"wheel-frame\"],\r\n    html.mobile .digitalbeat-roulette [data-asset-id=\"wheel-frame\"] {\r\n        display: inherit;\r\n        position: absolute;\r\n        height: auto;\r\n        width: 283%;\r\n        top: -18%;\r\n        left: -92%;\r\n    }\r\n</style>","beforeEndBody":""},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"7255cf9e-4c04-4165-9907-4eed42f3321f","tagTypeId":"custom_js","name":"Before Registration Data Change","description":"Victor's request","config":{"code":"Playtech.API.auth.addBeforeRegistrationHook(({ dataMap }) => {\n    function getCookie(name) {\n        const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));\n        return match ? decodeURIComponent(match[2]) : '';\n    }\n\n    const fbc = getCookie('_fbc');\n    const fbp = getCookie('_fbp');\n    \n    if (dataMap.creferer != '') {\n      dataMap.creferer = dataMap.creferer + `;var8:${fbc};var10:${fbp}`;\n    } else {\n      dataMap.creferer = `var8:${fbc};var10:${fbp}`;\n    }\n    \n    if (dataMap.cellphone != '') {\n      dataMap.phone = dataMap.cellphone;\n    }\n    return { dataMap };\n});"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"ce600b20-a3e2-4295-a562-c71248937082","tagTypeId":"custom_tag_type","name":"Hide reconnect message","description":"Hide reconnect message","config":{"beforeEndHead":"<style type=\"text/css\">\n  .cms-reconnect{\n    display: none;\n  }\n</style>","beforeEndBody":""},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"bd1752b4-0152-469e-95f0-2f2e186711f5","tagTypeId":"custom_tag_type","name":"adaCustomLauncher","description":"ada Chatbot Custom Launcher","config":{"beforeEndHead":"","beforeEndBody":"<style type=\"text/css\">\r\n  #ada-button-frame {\r\n    display: none;\r\n  }\r\n\r\n  #ada-chat-button {\r\n    display: none;\r\n  }\r\n\r\n  [data-vip-level=\"unlogged\"] .chat-icon-ada {\r\n    display: none !important;\r\n  }\r\n\r\n  #helpButtonContainer {\r\n    background: linear-gradient(180deg,\r\n        var(--verde-escuro) 0%,\r\n        var(--azul-deep-navy) 100%)\r\n    }\r\n</style>\r\n\r\n\r\n<article>\r\n  <div id=\"helpButtonContainer\" class=\"help-button collapsed\">\r\n    <!-- Toggle Menu Button (Question Mark) -->\r\n    <span id=\"toggleButton\" class=\"toggle-icon\" onclick=\"toggleHelpButton()\" style=\"\r\n        font-weight: bold;\r\n        font-size: 1.6em;\r\n        border: solid;\r\n        border-width: 2px;\r\n        border-radius: 50%;\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n        width: 2.5rem;\r\n        height: 2.5rem;\r\n        cursor: pointer;\r\n        color: var(--amarelo-brand);\r\n        \r\n      \">\r\n      ?\r\n    </span>\r\n\r\n    <!-- Support Button -->\r\n    <span id=\"supportButton\" class=\"support-icon\"\r\n      onclick=\"window.open('https://support.brasil.bet.br/hc/pt-br', '_blank');\" style=\"\r\n        font-weight: bold;\r\n        font-size: 1.6em;\r\n        border: solid;\r\n        border-width: 2px;\r\n        border-radius: 50%;\r\n        \r\n        justify-content: center;\r\n        align-items: center;\r\n        width: 2.5rem;\r\n        height: 2.5rem;\r\n        cursor: pointer;\r\n        color: var(--amarelo-brand);\r\n      \">\r\n      ?\r\n    </span>\r\n\r\n    <!-- Chat Button -->\r\n    <span class=\"chat-icon-ada\" onclick=\"window.adaEmbed.toggle()\" style=\"\r\n        \r\n        justify-content: center;\r\n        align-items: center;\r\n        width: 2.5rem;\r\n        height: 2.5rem;\r\n        border: solid 2px var(--amarelo-brand);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n      \">\r\n      <img src=\"/library/Icons/chat-amarelo.svg\" alt=\"Chat\" style=\"width: 1.5rem; height: 1.5rem;\" />\r\n    </span>\r\n\r\n    <!-- Collapse Button (Cross) -->\r\n    <span id=\"collapseButton\" class=\"collapse-icon\" onclick=\"toggleHelpButton()\" style=\"\r\n        display: none;\r\n        width: 2.5rem;\r\n        height: 2.5rem;\r\n        border: solid 2px var(--amarelo-brand);\r\n        border-radius: 50%;\r\n        cursor: pointer;\r\n        justify-content: center;\r\n        align-items: center;\r\n      \">\r\n      <img src=\"/library/Icons/cross-amarelo.svg\" alt=\"Close\" style=\"width: 1.5rem;height: 1.5rem;\">\r\n    </span>\r\n  </div>\r\n</article>\r\n\r\n\r\n\r\n\r\n\r\n\r\n<style>\r\n  /* main cointainer */\r\n  .help-button {\r\n    --hot-links-padding-bottom-ios11-3: calc(env(safe-area-inset-bottom)* 2);\r\n    --hot-links-padding-bottom-ios11-2: calc(constant(safe-area-inset-bottom)* 2);\r\n    position: fixed;\r\n    right: 0;\r\n    bottom: 9rem;\r\n    bottom: calc(var(--hot-links-padding-bottom-ios11-2) + 9rem);\r\n    bottom: calc(var(--hot-links-padding-bottom-ios11-3) + 9rem);\r\n\r\n    background: #092c51;\r\n    border-radius: 1.5rem 0 0 1.5rem;\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    width: 3rem;\r\n    height: auto;\r\n    transition: height 0.3s ease, transform 0.3s ease;\r\n    z-index: 14;\r\n    overflow: hidden;\r\n  }\r\n\r\n  /* here is collapsed */\r\n  .help-button.collapsed {\r\n    /*height: 4rem;*/\r\n  }\r\n\r\n  /* here is expanded */\r\n  .help-button.expanded {\r\n    /* height: 12rem;*/\r\n    transition: height 0.3s ease-in-out;\r\n    /* padding: 0.5rem; */\r\n  }\r\n\r\n  /* icons */\r\n  .toggle-icon,\r\n  .support-icon,\r\n  .chat-icon-ada,\r\n  .collapse-icon {\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    cursor: pointer;\r\n    margin: 0.5rem 0;\r\n    width: 2.5rem;\r\n    height: 2.5rem;\r\n    border-radius: 50%;\r\n    transition: transform 0.3s ease;\r\n  }\r\n\r\n  .toggle-icon:hover,\r\n  .support-icon:hover,\r\n  .chat-icon-ada:hover,\r\n  .collapse-icon:hover {\r\n    transform: scale(1.1);\r\n  }\r\n\r\n  /* hide when not used */\r\n  .support-icon,\r\n  .chat-icon-ada {\r\n    display: none;\r\n  }\r\n\r\n  .help-button.expanded .support-icon,\r\n  .help-button.expanded .chat-icon-ada {\r\n    display: flex;\r\n  }\r\n\r\n  :has(.ta-betslipView) #helpButtonContainer {\r\n    z-index: 14 !important;\r\n  }\r\n</style>\r\n<script>\r\n  function toggleHelpButton() {\r\n    const buttonContainer = document.getElementById('helpButtonContainer');\r\n    const toggleButton = document.getElementById('toggleButton');\r\n    const collapseButton = document.getElementById('collapseButton');\r\n\r\n    if (buttonContainer.classList.contains('collapsed')) {\r\n      buttonContainer.classList.remove('collapsed');\r\n      buttonContainer.classList.add('expanded');\r\n      toggleButton.style.display = 'none';\r\n      collapseButton.style.display = 'flex';\r\n    } else {\r\n\r\n      buttonContainer.classList.remove('expanded');\r\n      buttonContainer.classList.add('collapsed');\r\n      toggleButton.style.display = 'flex';\r\n      collapseButton.style.display = 'none';\r\n    }\r\n  }\r\n</script>"},"conditionIds":["da1161bc-63ee-4608-a224-0d2d75f5a355"]},{"tagId":"588f0064-7401-49a8-9208-a2dff4b33dd4","tagTypeId":"google_tag_manager","name":"GTM","description":"P4WCCW9","config":{"gtmId":"GTM-PDZQLPC6"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"94eb6dc2-b2f9-4aec-8434-1f23961993fe","tagTypeId":"custom_js","name":"Fix baseDocumentDomain for cookies","description":"Needed for Cookie Message","config":{"code":"Playtech.Variables.baseDocumentDomain = 'brasil.bet.br';"},"conditionIds":["13d49fc7-2011-4bd2-b108-d66cc0f9ccfc"]},{"tagId":"f191eccf-7f0f-4942-bbd4-90a96e9b3b7b","tagTypeId":"user_flow_builder","name":"Brazilian Onboarding Flow","description":"Brazilian Onboarding Flow","config":{"flows":[{"tagName":"kyc/Force_Cashier","tagValue":"true","pageUrl":"/deposit","redirectionCondition":"present"},{"tagName":"kyc/user_edit","tagValue":"phone","pageUrl":"/onboarding-flow/edit-phone","redirectionCondition":"present"},{"tagName":"kyc/user_edit","tagValue":"email","pageUrl":"/onboarding-flow/edit-email","redirectionCondition":"present"},{"tagName":"kyc/caf_phone_verification","tagValue":"required","pageUrl":"/phone-verification","redirectionCondition":"present"},{"tagName":"kyc/annual_update_details","tagValue":"required","pageUrl":"/onboarding-flow/annual-update-details","redirectionCondition":"present"},{"tagName":"uam/acl/Operations/Migration_message","tagValue":"Declined","pageUrl":"/withdraw","redirectionCondition":"present"},{"tagName":"kyc/selected_verification","tagValue":"select","pageUrl":"/onboarding-flow/select-verification","redirectionCondition":"present"},{"tagName":"kyc/selected_verification","tagValue":"phone","pageUrl":"/onboarding-flow/phone-verification","redirectionCondition":"present"},{"tagName":"kyc/selected_verification","tagValue":"email","pageUrl":"/onboarding-flow/email-verification","redirectionCondition":"present"},{"tagName":"uam/acl/Operations/Migration_message","tagValue":"Declined","pageUrl":"/account/withdraw","redirectionCondition":"present"},{"tagName":"kyc/user_edit","tagValue":"edit","pageUrl":"/onboarding-flow/edit-details","redirectionCondition":"present"},{"tagName":"kyc/email_verification","tagValue":"required","pageUrl":"/onboarding-flow/sms-email-verification","redirectionCondition":"present"},{"tagName":"kyc/sms_verification","tagValue":"required","pageUrl":"/onboarding-flow/sms-email-verification","redirectionCondition":"present"},{"tagName":"kyc/update_details","tagValue":"required","pageUrl":"/onboarding-flow/update-details","redirectionCondition":"present"},{"tagName":"kyc/id_authentication_su","tagValue":"required","pageUrl":"/onboarding-flow/id-authentication","redirectionCondition":"present"},{"tagName":"kyc/only_id_ authentication_su","tagValue":"required","pageUrl":"/onboarding-flow/only-id-authentication-su","redirectionCondition":"present"},{"tagName":"kyc/id_authentication_su","tagValue":"pending","pageUrl":"/onboarding-flow/id-authentication-pending","redirectionCondition":"present"},{"tagName":"kyc/id_reauthentication_wd","tagValue":"required","pageUrl":"/onboarding-flow/id-reauthentication","redirectionCondition":"present"},{"tagName":"kyc/id_annual_revalidation","tagValue":"required","pageUrl":"/onboarding-flow/annual-revalidation","redirectionCondition":"present"},{"tagName":"kyc/sof_upload_requirement","tagValue":"required","pageUrl":"/sof-verification","redirectionCondition":"present"},{"tagName":"kyc/cpf_upload_requirement","tagValue":"required","pageUrl":"/verification-cpf","redirectionCondition":"present"},{"tagName":"kyc/cpf_upload_requirement","tagValue":"pending","pageUrl":"/verification-cpf-pending","redirectionCondition":"present"}]},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"d63b08d4-494d-49ab-90ed-85c62aa77302","tagTypeId":"custom_js","name":"Question 18 Years","description":"Question 18 Years","config":{"code":"if (!localStorage.getItem('is18anos')) {\n    window.Playtech.API.popup.showPopup('confirmation', {\n        id: 'anos-confirmation',\n        content: '<style>.popup-modal__buttons { flex-direction: row-reverse; } .popup-modal__button:first-child, .popup-modal__button:first-child:hover { background: transparent !important; border: 1px solid #fff; }</style><div style=\"display: flex; flex-direction: column; align-items: center;\"><div style=\"text-align:center;\"><img src=\"/library/Logo/logo-amarelo.svg\" style=\"width: 70%;\"></div><div style=\"font-size: 1.5rem; padding: 2rem 0; font-weight: bold;\">VOCE TEM MAIS DE 18 ANOS?</div></div>',\n        onAccept: () => {\n            localStorage.setItem('is18anos', 'true');\n        },\n        onDecline: () => {\n            window.Playtech.API.popup.showPopup('common', {\n              id: 'anos-alert',\n              isModal: true,\n              buttons: [],\n              content: '<style>#anos-alert { max-width: 42em; }</style><div style=\"display: flex; flex-direction: column; align-items: center; padding: 2em;\"><div style=\"text-align:center;\"><img src=\"/library/Logo/brasilbet-logo-white.png\" style=\"width: 70%; margin:auto;\"></div><div style=\"font-size: 1.5rem; padding: 2rem 0; font-weight: bold;\">Desculpa , você é muito jovem para acessar este site</div></div>'\n            });\n        },\n        acceptBtnText: 'SIM',\n        declineBtnText: 'NÃO'\n    });\n}\n"},"conditionIds":["13d49fc7-2011-4bd2-b108-d66cc0f9ccfc"]},{"tagId":"111742bc-fb97-4bd9-97f4-bad5f7acb907","tagTypeId":"custom_tag_type","name":"Ada Chat Bot","description":"Ada Chat Bot","config":{"beforeEndHead":"<script>\r\n    setTimeout(() => {\r\n    let listenerAdded = false;\r\n    let adaTagName = \"adachatbot/proactive_bubbles\";\r\n    let adaMetaVariable = \"next_answer_to_run\";\r\n      var adaTokenValidationId = \"65aaaa90fcfd4f3607f68748\";\r\n      var resetAda = async (settings) => {\r\n        await window.adaEmbed?.stop();\r\n        await window.adaEmbed?.start(settings);\r\n      };\r\n      var toggledOnce = false;\r\n      var handleDrawerToggleCallback = async (isDrawerOpen) => {\r\n        if (Playtech.API.auth.isLoggedIn) {\r\n          await updateAdaSettings();\r\n          toggledOnce = true;\r\n        }\r\n      };\r\n      var defaultAdaSettings = {\r\n        handle: \"brasilbet\",\r\n        cluster: \"maple\",\r\n        language: \"pt\",\r\n        toggleCallback: handleDrawerToggleCallback,\r\n        conversationEndCallback: (e) => {\r\n            toggledOnce = false;\r\n        },\r\n        metaFields: {},\r\n        sensitiveMetaFields: {},\r\n      };\r\n      window.adaSettings = {\r\n        ...defaultAdaSettings,\r\n      };\r\n  \r\n      var getSettings = async () => {\r\n        let metaFields = {};\r\n        let sensitiveMetaFields = { jwt_token: \"\" };\r\n        if (Playtech.API.auth.isLoggedIn) {\r\n          let { 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          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      var 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        if (!toggledOnce) {\r\n          adaEmbed?.triggerAnswer(adaTokenValidationId);\r\n        }\r\n      };\r\n  \r\n      let 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      const proactiveTrigger = async ({ tag, value }) => {\r\n      const settings = await getSettings();\r\n      let metaFields = {\r\n        ...(window.adaSettings.metaFields || {}),\r\n        ... settings.metaFields,\r\n        [adaMetaVariable]: value,\r\n      };\r\n      window.adaSettings = {\r\n        ...window.adaSettings,\r\n        ...settings,\r\n        metaFields,\r\n      };\r\n      await Promise.all([\r\n        window.adaEmbed?.setMetaFields(metaFields),\r\n        window.adaEmbed?.setSensitiveMetaFields(settings.sensitiveMetaFields),\r\n      ]);\r\n\r\n      await window.adaEmbed.triggerCampaign(\"Galera_Proactive\");\r\n    };\r\n    const adaListener = async ({ tag, value, removed }) => {\r\n      if (!removed && tag === adaTagName) {\r\n        await proactiveTrigger({ tag, value });\r\n      }\r\n    };\r\n    const listenToAdaTag = async () => {\r\n      if (Playtech.API.user.isLoggedIn()) {\r\n        const playerTags = await Playtech.API.user.getPlayerTags();\r\n        const adaTag = playerTags?.data.tags.find(\r\n          (tag) => tag.name === adaTagName\r\n        );\r\n        if (adaTag) {\r\n          await proactiveTrigger({ tag: adaTag.name, value: adaTag.value });\r\n        }\r\n        if (!listenerAdded) {\r\n          Playtech.on(\"player-tag-change\", adaListener);\r\n          listenerAdded = true;\r\n        }\r\n      }\r\n    };\r\n    listenToAdaTag();\r\n      Playtech.on(Playtech.Events.LOGGED_IN, async () => {\r\n        toggledOnce = false;\r\n        await resetAda(await getSettings());\r\n        // adaEmbed?.triggerAnswer(adaTokenValidationId);\r\n        await listenToAdaTag();\r\n      });\r\n      Playtech.on(Playtech.Events.LOGGED_OUT, async () => {\r\n        await resetAda(defaultAdaSettings);\r\n        // adaEmbed?.triggerAnswer(adaTokenValidationId);\r\n      });\r\n    }, 6000);\r\n  </script>","beforeEndBody":""},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a","b537d93c-a5fc-4a21-80b6-6bd6e70920c5"]},{"tagId":"bba14815-4e85-4ecf-9fbb-a2943384d0a9","tagTypeId":"custom_js","name":"Filter by Segmentation URL","description":"Show/Hide elements based on segmentation url","config":{"code":"(() => {\r\n  function getPlayerSegmentationURLs() {\r\n    return Playtech.API.server\r\n      .getURLTemplates({ urlTypeList: ['Segmentation'] })\r\n      .then((response) => response.data.urlList.map((urlTemplate) => urlTemplate.url))\r\n      .catch((error) => { console.error(error); return []; }); // Return an empty array if there's an error\r\n  }\r\n\r\n  function updateElementVisibility(element, segmentationURLs) {\r\n    const elementSegmentationURLs = element.getAttribute(\"data-filter-segmentation-url\")\r\n      .split(\",\")\r\n      .map((url) => url.trim());\r\n    \r\n    const showElement = elementSegmentationURLs.some((url) => segmentationURLs.includes(url));\r\n\r\n    // Apply visibility class based on player tags logic\r\n    if (showElement) {\r\n      element.classList.remove('hidden-by-segmentation-urls');\r\n    } else {\r\n      element.classList.add('hidden-by-segmentation-urls');\r\n    }\r\n  }\r\n\r\n  function updatePromoVisibility(segmentationURLs) {\r\n    document.querySelectorAll(\"[data-filter-segmentation-url]\").forEach((element) => {\r\n      updateElementVisibility(element, segmentationURLs);\r\n    });\r\n  }\r\n\r\n  function initializePromoVisibility() {\r\n    getPlayerSegmentationURLs().then((segmentationURLs) => {\r\n      updatePromoVisibility(segmentationURLs);\r\n    }).catch(() => { });\r\n  }\r\n\r\n  function setupEventListeners() {\r\n    Playtech.on('LOGGED_IN', () => {\r\n      initializePromoVisibility();\r\n    });\r\n\r\n    Playtech.on('LOGGED_OUT', () => {\r\n      initializePromoVisibility();\r\n    });\r\n\r\n    Playtech.on('player-tag-change', () => {\r\n      initializePromoVisibility();\r\n    });\r\n\r\n    window.addEventListener('popstate', () => {\r\n      initializePromoVisibility();\r\n    });\r\n\r\n    document.addEventListener('DOMContentLoaded', () => {\r\n      initializePromoVisibility();\r\n    });\r\n  }\r\n\r\n  // Observe DOM changes to handle navigation and dynamic content loading\r\n  const observer = new MutationObserver(() => {\r\n    initializePromoVisibility();\r\n  });\r\n\r\n  // Start observing the document body for changes\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n  // Initialize visibility when the script loads\r\n  initializePromoVisibility();\r\n  setupEventListeners();\r\n\r\n  // Ensure CSS classes are applied correctly\r\n  const styleEl = document.createElement('style');\r\n  document.head.appendChild(styleEl);\r\n  styleEl.textContent = `\r\n  .hidden-by-segmentation-urls {\r\n    display: none !important;\r\n  }\r\n`;\r\n})();\r\n"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"9e17719b-d64b-4223-acfb-078ebf87b9e2","tagTypeId":"custom_js","name":"Filter by datetime interval","description":"Show/hide elements based on datetime interval","config":{"code":"(() => {\r\n    /**\r\n     * Example usage:\r\n     * isCurrentDateTimeInIntervals(\"2023-10-01T10:00~2023-10-01T12:00,2023-10-01T14:00~2023-10-01T16:00\");\r\n     * Returns true if the current date and time in the \"America/Sao_Paulo\" timezone falls within any of the specified intervals.\r\n     *\r\n     * Checks if the current date and time in the \"America/Sao_Paulo\" timezone falls within any of the specified time intervals.\r\n     *\r\n     * @param {string} intervalString - A comma-separated string of time intervals in the format \"start~end\", \r\n     *                                  where each interval is defined by ISO 8601 date-time strings without seconds.\r\n     *                                  Example: \"2023-10-01T10:00~2023-10-01T12:00,2023-10-01T14:00~2023-10-01T16:00\".\r\n     * @returns {boolean} - Returns `true` if the current date and time falls within any of the specified intervals, otherwise `false`.\r\n     */\r\n    function isCurrentDateTimeInIntervals(intervalString) {\r\n        // Get current time in America/Sao_Paulo timezone\r\n        const dt = new Date().toLocaleString(\"en-US\", { timeZone: \"America/Sao_Paulo\" });\r\n        const currentDateTime = new Date(dt);\r\n        currentDateTime.setSeconds(0, 0);\r\n        \r\n        // Parse interval string into an array of start-end pairs\r\n        const intervals = intervalString.split(\",\").map(range => range.split(\"~\"));\r\n        \r\n        // Iterate over intervals to check if current datetime is within any range\r\n        for (const [start, end] of intervals) {\r\n            const startDt = new Date(start);\r\n            startDt.setSeconds(0, 0);\r\n            \r\n            const endDt = new Date(end);\r\n            endDt.setSeconds(0, 0);\r\n            \r\n            if (currentDateTime >= startDt && currentDateTime <= endDt) {\r\n                return true;\r\n            }\r\n        }\r\n        \r\n        return false;\r\n    }\r\n\r\n    function updateElementVisibility(element) {\r\n        const datetimeIntervals = element.getAttribute(\"data-filter-datetime\");\r\n\r\n        let showElement = isCurrentDateTimeInIntervals(datetimeIntervals);\r\n\r\n        // Apply visibility class based on player tags logic\r\n        if (showElement) {\r\n            element.classList.remove('hidden-by-datetime-interval');\r\n        } else {\r\n            element.classList.add('hidden-by-datetime-interval');\r\n        }\r\n    }\r\n\r\n    function updatePromoVisibility() {\r\n        document.querySelectorAll(\"[data-filter-datetime]\").forEach((element) => {\r\n            updateElementVisibility(element);\r\n        });\r\n    }\r\n\r\n    function initializePromoVisibility() {\r\n        updatePromoVisibility();\r\n    }\r\n\r\n    function setupEventListeners() {\r\n        Playtech.on('LOGGED_IN', () => {\r\n            initializePromoVisibility();\r\n        });\r\n\r\n        Playtech.on('LOGGED_OUT', () => {\r\n            initializePromoVisibility();\r\n        });\r\n\r\n        Playtech.on('player-tag-change', () => {\r\n            initializePromoVisibility();\r\n        });\r\n\r\n        window.addEventListener('popstate', () => {\r\n            initializePromoVisibility();\r\n        });\r\n\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            initializePromoVisibility();\r\n        });\r\n    }\r\n\r\n    // Observe DOM changes to handle navigation and dynamic content loading\r\n    const observer = new MutationObserver(() => {\r\n        initializePromoVisibility();\r\n    });\r\n\r\n    // Start observing the document body for changes\r\n    observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n    // Initialize visibility when the script loads\r\n    initializePromoVisibility();\r\n    setupEventListeners();\r\n\r\n    // Ensure CSS classes are applied correctly\r\n    const styleEl = document.createElement('style');\r\n    document.head.appendChild(styleEl);\r\n    styleEl.textContent = `\r\n        .hidden-by-datetime-interval {\r\n            display: none !important;\r\n        }\r\n    `;\r\n})();\r\n"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"1f8055fa-f356-47af-9076-6f10ffb5ca03","tagTypeId":"custom_js","name":"documentElement Player Tags","description":"documentElement Player Tags","config":{"code":"(() => {\r\n  const dashToCamelCase = (str) => \r\n    str.replace(/[-\\s]([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('/', '-'))).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('auth:generic_login:success', render);\r\n  Playtech.on('LOGGED_OUT', render);\r\n  \r\n  setTimeout(() => { render() }, 2000);\r\n})();\r\n"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"9d7cf1d2-2f8b-4e06-bf83-49224f1697a0","tagTypeId":"custom_js","name":"TAG Service/missing_info_wd_check on withdraw","description":"TAG Service/missing_info_wd_check on withdraw","config":{"code":"Playtech.API.user.setPlayerTags([{ name: 'Customer Service/missing_info_wd_check' }] ); "},"conditionIds":["2cca1c97-039e-4b31-a23b-83c91043e561","feea99e9-c324-47d8-b041-7e19f4ef92de"]},{"tagId":"46dcc523-8795-45a8-9eca-d31f7fe34820","tagTypeId":"custom_js","name":"Signup format CEP number","description":"Signup format CEP number","config":{"code":"Playtech.API.auth.addBeforeRegistrationHook(({ dataMap }) => {\n    dataMap.zip = dataMap.zip.replace('-', '');\n    return { dataMap };\n});"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"fe40f5c2-539a-4d49-9722-b659d3982811","tagTypeId":"custom_js","name":"kyc/id_authentication_su verified check","description":"Direct to deposit page on player tag change.","config":{"code":"(() => {\n    Playtech.on('player-tag-change', async ({\n        tag,\n        value,\n        removed\n    }) => {\n        if (removed || (tag !== 'kyc/id_authentication_su' && tag !== 'kyc/update_details') || value !== 'verified') {\n            return;\n        }\n\n        Playtech.API.common.navigate('/deposit');\n    });\n})();\n"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"3d80fe4d-782e-4130-95d9-1157c7993785","tagTypeId":"custom_js","name":"OnLogin assetLoader","description":"Scripts to run on login","config":{"code":"(() => {\r\n    const baseUrl = \"https://gamelauncher-uu-pop-cf.galera.bet/bootstrap/asset-loader.js\";\r\n\r\n  const handle = () => {\r\n    if (window.location.pathname.startsWith(Playtech.Variables.sportsbookRootURL))\r\n      return;\r\n  \r\n      var script = document.createElement('script');\r\n      script.src = baseUrl;\r\n      script.async = true;\r\n      document.head.appendChild(script);\r\n  }\r\n\r\n  if (Playtech.API.user.isLoggedIn())\r\n    handle();\r\n  Playtech.on('LOGGED_IN', handle);\r\n})();"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"0907bf9c-499a-4b83-9dea-d175286ed0b6","tagTypeId":"custom_js","name":"Survey Form","description":"Survey Form","config":{"code":"Playtech.on('dynamic-custom-form-submit', ({ formValues, formIMSValues, formName, resolve, reject }) => {\n    if (formName !== 'Survey Test') {\n        return;\n    }\n\n    if (Playtech.API.auth.isLoggedIn) {\n      const count = Object.values(formValues).filter((answer) => answer === \"playtech.mobile.system.yes.button.title\").length;\n  \n      Playtech.API.user.setPlayerTags([{ name: 'Operations/RG/self_evaluation', type: 'text', value: String(count) }]);\n      resolve();\n    } else {\n      reject('This form is not available for guests.');\n    }\n});"},"conditionIds":["13d49fc7-2011-4bd2-b108-d66cc0f9ccfc"]},{"tagId":"8954201c-62a7-4856-b704-feae14166e05","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":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"f99be39f-ab72-47ad-bacc-6b7cf92d58bc","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":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"c1a0d650-d793-46b9-b7ef-dad627f1b07e","tagTypeId":"custom_js","name":"On deposit page remove fs_signup param","description":"On deposit remove fs_signup param","config":{"code":"const url = new URL(window.location.href);\r\nif (url.searchParams.has('fs_signup')) {\r\n  url.searchParams.delete('fs_signup');\r\n  const newUrl = url.toString();\r\n  window.history.replaceState(window.history.state, '', url.toString());\r\n}"},"conditionIds":["bdd1ee49-ce20-4009-a72a-66eea2c7748f","da1161bc-63ee-4608-a224-0d2d75f5a355"]},{"tagId":"4fbf63d1-8592-4710-8569-23e3d888ece7","tagTypeId":"custom_js","name":"PLAYTECH API READY dataLayer","description":"PLAYTECH API READY dataLayer","config":{"code":"dataLayer.push({'event': 'PLAYTECH_API_READY'});"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"e2318279-b952-4e10-9057-64e32870400b","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":["da1161bc-63ee-4608-a224-0d2d75f5a355"]},{"tagId":"56fdbe6d-10d1-4c87-9b4a-a45defd025b3","tagTypeId":"custom_js","name":"ON_DEPOSITWITHDRAW_REDIRECT","description":"ON_DEPOSITWITHDRAW_REDIRECT","config":{"code":"Playtech.on('DEPOSIT_COMPLETED', () => {\r\n  if (window.location.href.includes('/account/deposit')) {\r\n    Playtech.API.common.navigate(sessionStorage?.getItem(\"dynamicClientType\") == '\"casino\"' ? '/cassino' : '/');\r\n  }\r\n});\r\nPlaytech.on('WITHDRAWAL_COMPLETED', () => {\r\n  if (window.location.href.includes('/account/withdraw')) {\r\n    Playtech.API.common.navigate(sessionStorage?.getItem(\"dynamicClientType\") == '\"casino\"' ? '/cassino' : '/');\r\n  }\r\n});"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"89fae7bc-097b-46d7-9eab-acd43f4aeb1b","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":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"34e93bf7-0e6e-4f0f-8b78-6ca083ec1123","tagTypeId":"custom_js","name":"window.loginAndLoadPageForDeposit","description":"Temporal fix for deposit clientType","config":{"code":"    window.loginAndLoadPageForDeposit = function (path) {\r\n        const redirect = async () => {\r\n            if (window.location.pathname !== path) {\r\n                Playtech.API.common.navigate(path, null);\r\n                await new Promise(resolve => setTimeout(resolve, 1000))\r\n            }\r\n            Playtech.API.common.navigate('/deposit');\r\n        }\r\n        if (Playtech.API.auth.isLoggedIn)\r\n            redirect()\r\n        else\r\n            Playtech.API.auth.showLoginPopup({\r\n                onLogin: redirect\r\n            });\r\n    }"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"bb3264b1-cb68-4cd6-9e32-3b82f3f417ed","tagTypeId":"custom_js","name":"Jumio Verification Check Tags ","description":"Jumio Verification Check Tags ","config":{"code":"(async () => {\n    const ID = 'risk/doc/id_upload_requirement';\n    const POA = 'risk/doc/poa_upload_requirement';\n    const SOW = 'risk/doc/sow_upload_requirement';\n    const BS = 'risk/doc/bs_upload_requirement';\n    const DC = 'risk/doc/dc_upload_requirement';\n    const CPF = 'risk/doc/cpf_upload_requirement';\n\n\n    const order = [\n        ID, \n        POA, \n        BS, \n        DC, \n        SOW,\n        CPF\n    ];\n\n    const docType = {\n        [ID]: 'ID_CARD',\n        [POA]: 'UB',\n        [SOW]: 'SOW',\n        [BS]: 'BS',\n        [DC]: 'DC',\n        [CPF]: 'CPF'\n    };\n\n    async function checkTags() {\n        if (!Playtech.API.auth.isLoggedIn) {\n            // player not logged in\n            return;\n        }\n\n        try {\n            const response = await Playtech.API.user.getPlayerTags(order.join(','));\n            const { tags = [] } = response?.data ?? {};\n\n            if (tags.length === 0) {\n                // no tags, all good\n                return;\n            }\n\n            tags.some((tag) => {\n                if (tag.value === 'required') {\n                    // only navigate once\n                    Playtech.API.common.navigate(`/verificacao?docType=${docType[tag.name]}`);\n\n                    Playtech.API.events.addEventListener('player-tag-change', async ({ detail: { tag, removed }}) => {\n                        if (docType[tag]) {\n                            Playtech.API.popup.closePageAsPopup();\n                            checkTags();\n                        }\n                    }, { once: true });\n                    \n                    return true;\n                }\n                \n                return false;\n            });\n        } catch (error) {\n            console.error(error);\n        }\n    }\n\n    // do not run this on /verificacao page\n    if (window.location.pathname.indexOf('/verificacao') > -1) {\n        return;\n    }\n\n    checkTags();\n})();\n"},"conditionIds":["da1161bc-63ee-4608-a224-0d2d75f5a355"]},{"tagId":"f25589ad-c105-42e4-b4de-75bd14389cb5","tagTypeId":"custom_js","name":"Replace + during registration in cellphone","description":"Replace + during registration in cellphone","config":{"code":"Playtech.API.auth.addBeforeRegistrationHook(({ dataMap }) => {\n    dataMap.cellphone = dataMap.cellphone?.replace('+', '') || '';\n\n    return { dataMap };\n});"},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"d3d68471-7b06-4eeb-9dcc-3f8e5f99bf72","tagTypeId":"custom_js","name":"Remove min height","description":"Remove min height #main-content","config":{"code":"if (!window.mainHeightRemoved) {\n  window.mainHeightRemoved = true;\n  setTimeout(() => { document.querySelector(\"#main-content\").style = 'min-height: initial'; }, 2000);\n}"},"conditionIds":["da1161bc-63ee-4608-a224-0d2d75f5a355"]},{"tagId":"5b35b5eb-2b47-4a96-87e3-72734a6b1a9c","tagTypeId":"custom_js","name":"CSS Display helpers","description":"Display CSS helper","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/Sao_Paulo')\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-applied: none;\r\n    display: none;\r\n  }\r\n\r\n  [data-style-display=\"inline-block\"] {\r\n    --display: inline-block;\r\n  }\r\n\r\n  [data-style-display=\"flex\"] {\r\n    --display: flex;\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-applied: var(--display, block);\r\n    display: var(--display-applied);\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  /* LEVEL 3 */\r\n  html [data-filter-date][data-filter-vip-levels][data-filter-day-of-the-week] {\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-vip-level=\"${vipLevel}\"] [data-filter-date~=\"${todayDate}\"][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  @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":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"5960bdf0-7bb0-4c05-ac28-4c01aa69ac48","tagTypeId":"ucip","name":"UCIP","description":"UCIP","config":{},"conditionIds":["40cfcc31-e547-4be6-9f5b-89e25ee290ca"]},{"tagId":"0f40f12a-3cfd-4939-820e-191efa7c6e65","tagTypeId":"dynamic_client_type","name":"Client Type by Vertical","description":"Client Type by Vertical","config":{"clientTypeQueryStringPages":[{"page":"/withdraw"},{"page":"/deposit"},{"page":"/register"}],"clientTypeGroups":[{"clientType":"live","pages":[{"page":"/cassino-ao-vivo"}]},{"clientType":"casino","pages":[{"page":"/redirect/casino/deposit"},{"page":"/cassino"},{"page":"/promocoes/cassino-primeiro-deposito"}]},{"clientType":"sportsbook","pages":[{"page":"/redirect/sports/deposit"},{"page":"/sportsbook/inplay"},{"page":"/sportsbook"}]}]},"conditionIds":["149f37e4-2a56-445b-9bfa-c1eb991b2a0a"]},{"tagId":"12343787-f2e3-4860-bdaa-c829520a3c3c","tagTypeId":"custom_js","name":"Replace + 55 during registration in cellphone","description":"Replace + during registration in cellphone","config":{"code":"Playtech.API.auth.addBeforeRegistrationHook(({ dataMap }) => {\n    dataMap.cellphone = dataMap.cellphone?.replace('+55', '') || '';\n\n    return { dataMap };\n});"},"conditionIds":["13d49fc7-2011-4bd2-b108-d66cc0f9ccfc"]},{"tagId":"928a2751-711f-42b7-98bd-574d93111cbf","tagTypeId":"custom_js","name":"Survey Form","description":"Survey Form","config":{"code":"Playtech.on('dynamic-custom-form-submit', ({ formValues, formIMSValues, formName, resolve, reject }) => {\n    if (formName !== 'Survey Test') {\n        return;\n    }\n\n    if (Playtech.API.auth.isLoggedIn) {\n      const count = Object.values(formValues).filter((answer) => answer === \"playtech.mobile.system.yes.button.title\").length;\n  \n      Playtech.API.user.setPlayerTags([{ name: 'Operations/RG/self_evaluation', type: 'text', value: String(count) }]);\n      resolve();\n    } else {\n      reject('This form is not available for guests.');\n    }\n});"},"conditionIds":["13d49fc7-2011-4bd2-b108-d66cc0f9ccfc"]},{"tagId":"09ec98a0-15df-47af-8f3a-16e342b519c2","tagTypeId":"dynamic_client_type","name":"Dynamic client type","description":"Dynamic client type","config":{"clientTypeQueryStringPages":[{"page":"/register"}],"clientTypeGroups":[{"clientType":"poker","pages":[{"page":"/poker"}]},{"clientType":"bingo","pages":[{"page":"/header-test"}]}]},"conditionIds":["13d49fc7-2011-4bd2-b108-d66cc0f9ccfc"]}],"conditions":[{"conditionId":"421ff874-9c1b-4cc8-901a-2593ca3b1afd","conditionTypeId":"page_condition","name":"On VIP Especial Pages","description":"Condition to set on page we want to change style","config":{"onPageLaunch":"/galerabet-torne-se-vip"}},{"conditionId":"d3ed7f8d-d187-4c61-b128-ab65fdee579c","conditionTypeId":"page_condition","name":"17+ VIP pages","description":"Redirect user to root when vip level is less than 17","config":{"onPageLaunch":"/promocoes/vip/birthday,/promocoes/vip/cashbacksemanal,/promocoes/vip/upgrade"}},{"conditionId":"2cca1c97-039e-4b31-a23b-83c91043e561","conditionTypeId":"page_condition","name":"On withdraw page","description":"On deposit","config":{"onPageLaunch":"/account/withdraw"}},{"conditionId":"40cfcc31-e547-4be6-9f5b-89e25ee290ca","conditionTypeId":"basic_condition","name":"On wrapper init","description":"On wrapper init","config":{"launch":"onWrapperInit"}},{"conditionId":"b537d93c-a5fc-4a21-80b6-6bd6e70920c5","conditionTypeId":"native_app_condition","name":"Exclude from Native","description":"Exclude from Native","config":{"nativeAppRule":"0"}},{"conditionId":"149f37e4-2a56-445b-9bfa-c1eb991b2a0a","conditionTypeId":"basic_condition","name":"On App Init","description":"On App Init","config":{"launch":"onAppInit"}},{"conditionId":"af9af471-cf39-4c28-acb3-36322492f14b","conditionTypeId":"page_condition","name":"Pages","description":"Pages","config":{"onPageLaunch":"/promotions,/deposit"}},{"conditionId":"9a27b0d3-e2f9-47f5-b63c-70a3d6e0e59c","conditionTypeId":"page_condition","name":"FAQ","description":"FAQ","config":{"onPageLaunch":"/faq, /contact-us"}},{"conditionId":"da1161bc-63ee-4608-a224-0d2d75f5a355","conditionTypeId":"basic_condition","name":"After page rendered","description":"After page rendered","config":{"launch":"afterPageRendered"}},{"conditionId":"bdd1ee49-ce20-4009-a72a-66eea2c7748f","conditionTypeId":"page_condition","name":"On deposit page","description":"On deposit","config":{"onPageLaunch":"/deposit"}},{"conditionId":"5a96988b-8d04-41ea-ad80-849442f64cf4","conditionTypeId":"page_condition","name":"On VIP Pages","description":"On VIP Pages","config":{"onPageLaunch":"/VIP-Lounge-Test-Page, /VIP-Lounge-Test-Page-2"}},{"conditionId":"05ab7b4f-2b43-4aa6-9d2c-230c818087f4","conditionTypeId":"page_condition","name":"On test layout page","description":"On test layout page","config":{"onPageLaunch":"/test-layout,/cassino-test, /game-tag-test"}},{"conditionId":"3a69ba6d-4f9b-46fb-badc-f3ca13a33424","conditionTypeId":"page_condition","name":"On Cassino page","description":"On Cassino page","config":{"onPageLaunch":"/cassino"}},{"conditionId":"2a837ba0-6dd9-4908-bbc7-255823a27688","conditionTypeId":"page_condition","name":"Ao Vivo Page","description":"Ao Vivo Page","config":{"onPageLaunch":"/ao-vivo"}},{"conditionId":"140786a3-0754-4a51-a420-18d1102f657f","conditionTypeId":"page_condition","name":"Virtuals Page","description":"Virtuals Page","config":{"onPageLaunch":"/virtuais"}},{"conditionId":"c24c176c-6fd4-450d-9d84-b6df813911cd","conditionTypeId":"page_condition","name":"Signup page","description":"Signup page","config":{"onPageLaunch":"/register"}},{"conditionId":"160eb1fe-b2f7-4ae4-ab7f-8db19526bc06","conditionTypeId":"page_condition","name":"Add sash category","description":"Adds a custom category attribute to all game sashes on all pages matching these url's","config":{"onPageLaunch":"/cassino"}},{"conditionId":"28a8df8e-2b60-4599-b5e5-7ae5e9f4c748","conditionTypeId":"page_condition","name":"Scroll to top","description":"Scroll to top when user changes game category","config":{"onPageLaunch":"/cassino"}},{"conditionId":"64c5e07d-9c47-4ddc-96b3-0d23552a992e","conditionTypeId":"page_condition","name":"Protect these pages from VIP level 1","description":"Protect these pages from VIP level 1","config":{"onPageLaunch":"/galera-bet-goals, /hide-my-page"}},{"conditionId":"e34d9298-baf1-43b3-b631-18cdfc563de2","conditionTypeId":"page_condition","name":"VIP Level Protected","description":"VIP Level Protected Pages","config":{"onPageLaunch":"/galerabet-vip-lounge, /promocoes/vip"}},{"conditionId":"13d49fc7-2011-4bd2-b108-d66cc0f9ccfc","conditionTypeId":"basic_condition","name":"On application init","description":"On application initialization","config":{"launch":"onAppInit"}},{"conditionId":"036bdbb4-1bc3-47fe-a0ec-b04d34fc2801","conditionTypeId":"basic_condition","name":"After page rendered","description":"After page rendered","config":{"launch":"afterPageRendered"}},{"conditionId":"feea99e9-c324-47d8-b041-7e19f4ef92de","conditionTypeId":"basic_condition","name":"Before page rendered","description":"Before page rendered","config":{"launch":"beforePageRendered"}}]}