1import{c as e}from"./log.DgciURrG.js";function t(e){return null==e?"":String(e).trim()}function n(e,n,i){const a=t(n),r=Array.isArray(i)?i:[i];a&&r.forEach(n=>{const i=t(n);i&&e.push({tagName:a,tagValue:i})})}const i=function(){const i=new Map;function a(e){return e instanceof Element?[e]:"string"==typeof e?Array.from(document.querySelectorAll(e)):e?[]:Array.from(i.keys())}function r(t){var n;const i=null==(n=null==t?void 0:t.config)?void 0:n.instanceLabel;return e(i?`PromotionRoulette:${i}`:"PromotionRoulette")}function o(e,...t){r(e).debug(...t)}function l(){const e=new Intl.DateTimeFormat("en-US",{timeZone:"America/Sao_Paulo",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}).formatToParts(new Date),t=t=>e.find(e=>e.type===t).value;return t("year")+t("month")+t("day")+t("hour")+t("minute")+t("second")}function s(){return l().slice(0,8)}function u(e){return String(e??"").trim().replace(/\.00$/,"")}function c(e){return String(e??"").trim()}function g(e,i){if(e.filterTagMatchNotified)return null;const a=function(e,i){const a=Array.isArray(e)?e:[],r=function(e){const t=[];return Array.isArray(e)?(e.forEach(e=>{e&&"object"==typeof e&&n(t,e.tagName||e.name,e.tagValue??e.value)}),t):(e&&"object"==typeof e&&Object.keys(e).forEach(i=>{n(t,i,e[i])}),t)}(i);return a.find(e=>{if(!e||"object"!=typeof e)return!1;const n=t(e.tagName),i=t(e.tagValue),a=t(e.messageHtml);return!!(n&&i&&a)&&r.some(e=>e.tagName===n&&e.tagValue===i)})||null}(e.config.filterTagRules,i);if(!a)return null;if(e.filterTagMatchNotified=!0,"function"!=typeof e.config.onFilterTagMatch)return r(e).warn("FilterTag combinou, mas onFilterTagMatch não foi configurado."),a;try{e.config.onFilterTagMatch(a)}catch(o){r(e).error("Erro ao exibir mensagem de FilterTag:",o)}return a}function p(e){return/^\d{14}$/.test(e)}function m(e){return u(e).slice(0,8)}function d(e){return!!e.currentSpinDate&&(p(e.currentSpinDate)?m(e.currentSpinDate)>=s():(r(e).warn("SpinDate inválida:",e.currentSpinDate),!0))}function f(e){return!e.currentSpinDate||!!p(e.currentSpinDate)&&m(e.currentSpinDate)<s()}function y(e){e.customMessageEl&&e.customMessageEl.classList.remove("active"),e.noEligibleEl&&e.noEligibleEl.classList.remove("active"),e.wheelEl&&e.wheelEl.classList.remove("blur")}function h(e,t){e.messageSpan&&(e.messageSpan.innerHTML=t),e.customMessageEl&&e.customMessageEl.classList.add("active"),e.wheelEl&&e.wheelEl.classList.add("blur")}function S(e){e.canSpin=!1,e.showSpin=!1,e.el.setAttribute("data-roullete-canplay","0"),e.noEligibleEl&&e.noEligibleEl.classList.add("active"),e.wheelEl&&e.wheelEl.classList.add("blur")}function w(e){y(e),e.alreadyPlayed=!1,e.canSpin=!0,e.showSpin=!0,e.el.setAttribute("data-roullete-canplay","1")}function v(e){e.alreadyPlayed=!0,e.canSpin=!1,e.showSpin=!1,e.el.setAttribute("data-roullete-canplay","0"),h(e,"Você já participou da Promoção hoje.")}function R(e,t){return e.config.stops.find(e=>c(e.value)===c(t))}function T(e,t){if(!t)return!1;const n=Number(t.rot);return Number.isFinite(n)?(e.prizeName=t.name,e.targetFinalAngle=n,!0):(r(e).error("Ãngulo inválido configurado:",t),!1)}function E(e){return(e%360+360)%360}function A(e){e.wheelImageEl&&(y(e),e.wheelImageEl.style.transition="none",e.wheelImageEl.classList.remove("ims-waiting-spin"),e.wheelImageEl.offsetWidth,e.wheelImageEl.classList.add("ims-waiting-spin"))}function P(e){if(!e.wheelImageEl)return 0;const t=function(e){if(!e.wheelImageEl)return 0;try{const t=window.getComputedStyle(e.wheelImageEl).transform;if(!t||"none"===t)return 0;if(0===t.indexOf("matrix3d(")){const e=t.slice(9,-1).split(",").map(Number);return E(180*Math.atan2(e[1],e[0])/Math.PI)}if(0===t.indexOf("matrix(")){const e=t.slice(7,-1).split(",").map(Number);return E(180*Math.atan2(e[1],e[0])/Math.PI)}}catch(t){r(e).warn("Não foi possÃvel ler o ângulo atual:",t)}return 0}(e);return e.wheelImageEl.classList.remove("ims-waiting-spin"),e.wheelImageEl.style.transition="none",e.wheelImageEl.style.transform=`rotate(${t}deg)`,e.visualAngle=t,t}function F(e){if(null===e.targetFinalAngle||void 0===e.targetFinalAngle)return r(e).error("Nenhum ângulo final foi definido."),P(e),e.waitingForSpinResult=!1,e.isResolvingSpinResult=!1,e.isRotating=!1,void h(e,"Algo deu errado!<br />Contate o suporte.");if(!e.wheelImageEl)return void r(e).error("Imagem da roleta não encontrada.");const t=P(e),n=E(t),i=E(-e.targetFinalAngle),a=t+1800+E(i-n);e.waitingForSpinResult=!1,e.isResolvingSpinResult=!1,e.isRotating=!0,e.canSpin=!1,e.showSpin=!1,e.el.setAttribute("data-roullete-canplay","0"),e.wheelImageEl.style.transition="none",e.wheelImageEl.style.transform=`rotate(${t}deg)`,requestAnimationFrame(()=>{e.wheelImageEl.style.transition="transform 4s ease-out",e.wheelImageEl.style.transform=`rotate(${a}deg)`}),e.visualAngle=a,o(e,"Resultado confirmado. Desacelerando para:",{prizeValue:e.currentPrizeValue,prizeName:e.prizeName,targetFinalAngle:e.targetFinalAngle,finalAngle:a}),setTimeout(()=>{e.destroyed||(e.isRotating=!1,e.alreadyPlayed=!0,e.canSpin=!1,e.showSpin=!1,e.el.setAttribute("data-roullete-canplay","0"),h(e,`${e.prizeName}!`))},4e3)}async function b(){var e;const t=await Playtech.API.user.getPlayerTags();return(null==(e=null==t?void 0:t.data)?void 0:e.tags)||[]}function z(e){e.resultTimeout&&(clearTimeout(e.resultTimeout),e.resultTimeout=null),e.pollTimer&&(clearTimeout(e.pollTimer),e.pollTimer=null),e.pollAttempts=0}async function N(e){if(e.waitingForSpinResult&&!e.isResolvingSpinResult){e.isResolvingSpinResult=!0,z(e);try{if(await new Promise(e=>setTimeout(e,100)),e.destroyed)return;const t=await b();if(e.destroyed)return;const n=t.find(t=>t.name===e.config.spinDateTagName),i=t.find(t=>t.name===e.config.prizeResultTagName);if(e.currentSpinDate=u(null==n?void 0:n.value),e.currentPrizeValue=c(null==i?void 0:i.value),!p(e.currentSpinDate)||m(e.currentSpinDate)!==s())throw new Error("IMS ainda não confirmou SpinDate de hoje.");if(!e.currentPrizeValue)throw new Error("Tag de resultado/prêmio sem valor.");const a=R(e,e.currentPrizeValue);if(!a)throw new Error(`Stop não encontrado para o resultado "${e.currentPrizeValue}".`);if(!T(e,a))throw new Error("Falha ao configurar o stop do prêmio.");F(e)}catch(t){r(e).error("Erro ao resolver resultado:",t),e.waitingForSpinResult=!1,e.isResolvingSpinResult=!1,e.isRotating=!1,e.canSpin=!1,e.showSpin=!1,e.el.setAttribute("data-roullete-canplay","0"),h(e,"Algo deu errado ao confirmar seu prêmio.<br />Atualize a página ou contate o suporte.")}}}async function D(e){if(e.waitingForSpinResult&&!e.isResolvingSpinResult){e.pollAttempts+=1;try{const t=await b();if(e.destroyed)return;const n=t.find(t=>t.name===e.config.spinDateTagName),i=t.find(t=>t.name===e.config.prizeResultTagName),a=u(null==n?void 0:n.value),r=c(null==i?void 0:i.value);if(r&&(e.currentPrizeValue=r),p(a)&&m(a)===s())return e.currentSpinDate=a,void N(e)}catch(t){r(e).warn("Falha no polling de confirmação:",t)}e.pollAttempts<12&&e.waitingForSpinResult&&!e.destroyed&&(e.pollTimer=setTimeout(()=>D(e),1500))}}function I(e){z(e),e.resultTimeout=setTimeout(()=>{e.destroyed||e.waitingForSpinResult&&!e.isResolvingSpinResult&&(P(e),e.waitingForSpinResult=!1,e.isResolvingSpinResult=!1,e.isRotating=!1,e.canSpin=!1,e.showSpin=!1,e.el.setAttribute("data-roullete-canplay","0"),h(e,"Sua participação está demorando mais que o esperado.<br />Atualize a página em alguns instantes."))},3e4),e.pollTimer=setTimeout(()=>D(e),2500)}function M(e){e.midnightTimer&&clearTimeout(e.midnightTimer);const t=function(){const e=Date.now()+-108e5,t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()+1,0,0,0,0)-e}();e.midnightTimer=setTimeout(()=>{e.destroyed||(o(e,"Novo dia:",s()),e.waitingForSpinResult||e.isRotating||!f(e)||(e.targetFinalAngle=null,e.prizeName=null,w(e)),M(e))},t+500)}async function V(e){if(e.demoMode){const t=R(e,e.demoMode);T(e,t)?w(e):(r(e).error("Stop não encontrado para demo:",e.demoMode),S(e))}else if(Playtech.API.user.isLoggedIn())try{const t=await b();if(e.destroyed)return;g(e,t);const n=t.find(t=>t.name===e.config.spinDateTagName);e.currentSpinDate=u(null==n?void 0:n.value);const i=t.find(t=>t.name===e.config.prizeResultTagName);if(e.currentPrizeValue=c(null==i?void 0:i.value),o(e,"Estado inicial:",{today:s(),spinDate:e.currentSpinDate||null,prizeValue:e.currentPrizeValue||null,canPlayByDate:f(e)}
1),d(e)){if(e.alreadyPlayed=!0,e.currentPrizeValue){const t=R(e,e.currentPrizeValue);T(e,t)&&function(e){if(null===e.targetFinalAngle||void 0===e.targetFinalAngle||!e.wheelImageEl)return;const t=E(-e.targetFinalAngle);e.visualAngle=t,e.wheelImageEl.classList.remove("ims-waiting-spin"),e.wheelImageEl.style.transition="none",e.wheelImageEl.style.transform=`rotate(${t}deg)`}(e)}v(e)}else f(e)?(e.targetFinalAngle=null,e.prizeName=null,w(e)):S(e)}catch(t){r(e).error("Erro ao consultar tags:",t),S(e)}else w(e);e.destroyed||(e.el.setAttribute("data-roullete-canplay",e.showSpin?"1":"0"),e.spinButtonEl?e.spinButtonEl.addEventListener("click",e.onSpinButtonClick):r(e).error("Botão de girar não encontrado."),M(e))}function L(e,t){if(!Boolean("undefined"!=typeof Playtech&&"function"==typeof Playtech.on&&(null==(n=Playtech.API)?void 0:n.user)&&"function"==typeof Playtech.API.user.isLoggedIn))return r({config:t}).error("Playtech SDK indisponÃvel - não é possÃvel inicializar esta instância ainda.",e),null;var n;const a=new URLSearchParams(location.search).get("demo");a&&r().warn("Demo mode ativo:",a);const y={el:e,wheelEl:e.querySelector(".arpdr-roulette"),wheelImageEl:e.querySelector(".wheel-image"),spinButtonEl:e.querySelector('[data-asset-id="spin-button"]'),noEligibleEl:e.querySelector(".promo-no-elegible"),customMessageEl:e.querySelector(".promo-custom-message"),messageSpan:e.querySelector(".promo-custom-message .message"),config:t,demoMode:a,destroyed:!1,canSpin:!1,showSpin:Boolean(a),isRotating:!1,waitingForSpinResult:!1,isResolvingSpinResult:!1,alreadyPlayed:!1,filterTagMatchNotified:!1,currentSpinDate:"",currentPrizeValue:"",targetFinalAngle:null,prizeName:null,visualAngle:0,resultTimeout:null,pollTimer:null,pollAttempts:0,midnightTimer:null,onSpinButtonClick:()=>function(e){e.isRotating||e.waitingForSpinResult||e.isResolvingSpinResult||(e.demoMode?function(e){null!==e.targetFinalAngle&&void 0!==e.targetFinalAngle?(e.waitingForSpinResult=!0,e.isResolvingSpinResult=!1,e.isRotating=!0,A(e),setTimeout(()=>{e.destroyed||(e.isResolvingSpinResult=!0,F(e))},600)):r(e).error("Stop de demo não configurado.")}(e):Playtech.API.user.isLoggedIn()?(e.alreadyPlayed&&f(e)&&w(e),f(e)?e.canSpin?async function(e){if(!e.config.playStatusTagName)return r(e).error("Tag de trigger/Opt-in não configurada."),void h(e,"Algo deu errado!<br />Contate o suporte.");e.waitingForSpinResult=!0,e.isResolvingSpinResult=!1,e.isRotating=!0,e.canSpin=!1,e.showSpin=!1,e.targetFinalAngle=null,e.prizeName=null,e.el.setAttribute("data-roullete-canplay","0"),A(e);const t=l();o(e,"Solicitando giro:",t);try{await Playtech.API.user.setPlayerTags([{name:e.config.playStatusTagName,value:Number(t),type:"number"}],!0),I(e)}catch(n){r(e).error("Erro ao disparar Journey:",n),P(e),z(e),e.waitingForSpinResult=!1,e.isResolvingSpinResult=!1,e.isRotating=!1,f(e)?w(e):S(e),h(e,"Algo deu errado!<br />Contate o suporte.")}}(e):Playtech.API.popup.showPopup({title:"",content:`${e.config.noElegibleHtml||""}`}):v(e)):Playtech.API.auth.showLoginPopup())}(y),onPlayerTagChange:e=>function(e,{tag:t,value:n,removed:i}){if(!e.destroyed){if(i||g(e,[{name:t,value:n}]),t===e.config.prizeResultTagName)return i?void(e.currentPrizeValue=""):(e.currentPrizeValue=c(n),void o(e,"Tag de prêmio atualizada:",e.currentPrizeValue));if(t===e.config.spinDateTagName){if(i)return e.currentSpinDate="",void(e.waitingForSpinResult||e.isRotating||!f(e)||w(e));if(e.currentSpinDate=u(n),o(e,"SpinDate atualizada pelo IMS:",e.currentSpinDate),e.waitingForSpinResult&&p(e.currentSpinDate)&&m(e.currentSpinDate)===s())N(e);else if(!e.waitingForSpinResult&&!e.isRotating){if(d(e))return void v(e);f(e)&&w(e)}}}}(y,e)};return Playtech.on("player-tag-change",y.onPlayerTagChange),i.set(e,y),V(y).catch(e=>{r(y).error("Erro inesperado ao inicializar:",e)}),y}function B(e){e&&(e.destroyed=!0,z(e),e.midnightTimer&&clearTimeout(e.midnightTimer),e.spinButtonEl&&e.spinButtonEl.removeEventListener("click",e.onSpinButtonClick),i.delete(e.el))}return{init:function(e,t){if(!t||"object"!=typeof t)return r().error("init() requires a config object (playStatusTagName, prizeResultTagName, spinDateTagName, stops)."),[];const n=["playStatusTagName","prizeResultTagName","spinDateTagName"].filter(e=>!t[e]);if(n.length)return r().error(`init() config is missing required field(s): ${n.join(", ")}`),[];if(!Array.isArray(t.stops)||!t.stops.length)return r().error("init() requires config.stops to be a non-empty array of { name, rot, value }."),[];const o=a(e||".promotion-roulette");return o.length?o.map(e=>i.has(e)?(r({config:t}).warn("Container já inicializado - reaproveitando instância existente em vez de reinicializar.",e),i.get(e)):L(e,t)).filter(
1Boolean):(r().warn("No container found to initialize",e),[])},destroy:function(e){(e?a(e).map(e=>i.get(e)).filter(Boolean):Array.from(i.values())).forEach(B)},getInstance:function(e){return a(e).map(e=>i.get(e)).filter(Boolean)}}}();export{i as PromotionRouletteApi};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.