PageSourceSearch

https://www.todamateria.com.br/layout/assets/dist/js/index.DWrx4rn5.js

js todamateria.com.br collected 2026-09-24 17:42:06 UTC 31,589 bytes, 3 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["js/simuladao-register-modal.BcOqeD4t.js","js/funnel-tracker.2rTqlksa.js","js/_commonjsHelpers.CqkleIqs.js","js/auth-cookies.Cq4KilpJ.js","js/analytics.Yss8y0c9.js","js/google-cookies.BF4V9H18.js","js/auth-controller.CCjMzYwl.js","js/persisted-redux-controller.CClxSLXV.js","js/analytics.B2KLpAnX.js","js/validateCpf.BmTVNUSN.js","js/pixel.CEpjyp9z.js","js/preload-helper.CXnpAtHY.js","js/bootstrap.esm.D-nSkdPC.js","js/class-map.OMzoAZ_H.js","js/notifications-controller.CJ17IX8Z.js","js/analytics.Beh5vyqa.js","js/v4.CtRu48qb.js","js/main.dTTzjtX5.js","js/clicks-tracker.BNwCWQuc.js","js/listeners.CutqHB3h.js","js/profile-button.NaQIzEg_.js","js/query.6GE6ClqT.js","js/subscription-controller.DKDt2EYj.js","js/support-chat.Do0LxE4u.js","js/favorite-button.BClELXq1.js","js/favorites-controller.CyQRE3Wl.js","js/unfavorite-button.BhuifbUB.js","js/register-form-controller.Bd-YR5Zh.js","js/form-controller.sygpLa0w.js","js/edit-profile-form-controller.FtBzgXux.js","js/delete-account-button.DoUNuNxk.js","js/login-error-message.DNNuhsT_.js","js/auth-context.DG_7HPgp.js","js/notification-count-badge.ikuOh5cU.js"])))=>i.map(i=>d[i]);
2var R=Object.freeze,K=Object.defineProperty;var h=(i,t)=>R(K(i,"raw",{value:R(t||i.slice())}));import{r as O,i as J,b as d,x as g,E as A,c,d as p,u as f,N as Z,h as j,f as W,a as G,j as k,k as Q,p as U}from"./funnel-tracker.2rTqlksa.js";import{_ as m}from"./preload-helper.CXnpAtHY.js";import{Modal as L}from"./bootstrap.esm.D-nSkdPC.js";import{t as X,g as tt,h as et}from"./google-cookies.BF4V9H18.js";import{a as T}from"./class-map.OMzoAZ_H.js";import{A as it}from"./auth-controller.CCjMzYwl.js";import{N as st}from"./notifications-controller.CJ17IX8Z.js";import{s as at,a as q,b as nt,c as ot}from"./analytics.Beh5vyqa.js";import{A as rt,b as N,c as lt}from"./auth-cookies.Cq4KilpJ.js";import{v as dt}from"./v4.CtRu48qb.js";import{g as P,E as M}from"./main.dTTzjtX5.js";import{c as pt,d as ut,a as mt,b as ct}from"./listeners.CutqHB3h.js";function ht(i){if(!i)return"";let t=i.replace(/\D/g,"");return t=t.replace(/(\d{2})(\d)/,"($1) $2"),t=t.replace(/(\d{4})(\d)/,"$1-$2"),t=t.replace(/(\d{4})-(\d)(\d{4})/,"$1$2-$3"),t=t.replace(/(-\d{4})\d+?$/,"$1"),t}var St=Object.defineProperty,gt=Object.getOwnPropertyDescriptor,b=(i,t,e,n)=>{for(var s=n>1?void 0:n?gt(t,e):t,o=i.length-1,r;o>=0;o--)(r=i[o])&&(s=(n?r(t,e,s):r(s))||s);return n&&s&&St(t,e,s),s},V,C,D,$,H,B,F,x;let v=class extends J{constructor(){super(...arguments),this.authController=new it(this),this.notificationController=new st(this,this.authController),this.dispatch=d.dispatch,this.isLoading=!1,this.errorMessage="",this.whatsappErrorMessage=!1,this.profileType="",this.profileTypeOptions=[{label:"Aluno",value:"student"},{label:"Pai/Mãe",value:"parent"},{label:"Professor",value:"professor"},{label:"Instituição",value:"institution"}],this.schoolYearOptions=[{label:"Educação Infantil",value:"educacao-infantil"},{label:"1° Ano - Ensino Fundamental",value:"1-ano-ensino-fundamental"},{label:"2° Ano - Ensino Fundamental",value:"2-ano-ensino-fundamental"},{label:"3° Ano - Ensino Fundamental",value:"3-ano-ensino-fundamental"},{label:"4° Ano - Ensino Fundamental",value:"4-ano-ensino-fundamental"},{label:"5° Ano - Ensino Fundamental",value:"5-ano-ensino-fundamental"},{label:"6° Ano - Ensino Fundamental",value:"6-ano-ensino-fundamental"},{label:"7° Ano - Ensino Fundamental",value:"7-ano-ensino-fundamental"},{label:"8° Ano - Ensino Fundamental",value:"8-ano-ensino-fundamental"},{label:"9° Ano - Ensino Fundamental",value:"9-ano-ensino-fundamental"},{label:"1° Ano - Ensino Médio",value:"1-ano-ensino-medio"},{label:"2° Ano - Ensino Médio",value:"2-ano-ensino-medio"},{label:"3° Ano - Ensino Médio",value:"3-ano-ensino-medio"},{label:"Ensino Superior",value:"ensino-superior"},{label:"Pós-Graduação",value:"pos-graduacao"},{label:"Mestrado",value:"mestrado"},{label:"Doutorado",value:"doutorado"}],this.entranceExamOptions=[{label:"ENEM",value:"enem"},{label:"FUVEST",value:"fuvest"},{label:"UNICAMP",value:"unicamp"},{label:"UNESP",value:"unesp"},{label:"UFPA",value:"ufpa"},{label:"UFRJ",value:"ufrj"},{label:"Outra prova",value:"other"},{label:"Não",value:"none"}]}createRenderRoot(){return this}
2get store(){return this.authController.state}emitClose(){window.$crisp.push(["config","container:index",[1e6]]);const i=document.querySelector("#tm-register-modal-style");i&&i.remove(),this.dispatchEvent(new CustomEvent("close")),this.notificationController.getPendingNotifications()}dismissModal(){const i=document.querySelector("#tm-register-modal");i&&L.getInstance(i).hide()}showModal(){const i=document.querySelector("#tm-register-modal");i&&(L.getOrCreateInstance(i).show(),i.addEventListener("hidden.bs.modal",()=>{this.emitClose()},{once:!0})),window.$crisp.push(["config","container:index",[1]]);const t=document.createElement("style");t.id="tm-register-modal-style",t.innerHTML="\n            .jfFeedbackButton {\n                z-index: 1;\n            }\n        ",document.body.appendChild(t)}handleNumberInput(i){this.errorMessage="",this.whatsappErrorMessage=!1;const t=i.target;let e=t.value;this.requestUpdate(),t.value=ht(e),this.requestUpdate()}handleProfileTypeChange(i){this.errorMessage="",this.whatsappErrorMessage=!1;const t=i.target;this.profileType=t.value}firstUpdated(){window.$crisp=window.$crisp||[],this.showModal()}get whatsappIsValid(){const i=document.querySelector("#whatsapp");return i?i.value.length>=14:!1}parseFormData(i){var n,s,o,r,l,w,u,E;if(!i)return null;const t=new FormData(i),e=Object.fromEntries(t.entries());return{profile_type:(s=(n=e["profile-type"])==null?void 0:n.toString())!=null?s:void 0,school_year:(r=(o=e["school-year"])==null?void 0:o.toString())!=null?r:void 0,phone_number:(w=(l=e.whatsapp)==null?void 0:l.toString())!=null?w:void 0,entrance_exam:(E=(u=e["entrance-exam"])==null?void 0:u.toString())!=null?E:void 0}}async handleSubmit(i){var n,s;if(i.preventDefault(),this.isLoading)return;if(!this.whatsappIsValid){this.whatsappErrorMessage=!0;return}const t=this.parseFormData(i.target);if(!t)return;this.isLoading=!0,this.errorMessage="",this.isLoading=!0;const e=await this.authController.updateUser(t);"error"in e?(this.errorMessage=((s=(n=e.error)==null?void 0:n.data)==null?void 0:s.data)||"Erro ao atualizar perfil",console.error(e)):this.dismissModal(),this.isLoading=!1}renderBrFlag(){return g(V||(V=h(['\n            <svg\n                width="20"\n                height="21"\n                viewB
2ox="0 0 20 21"\n                fill="none"\n                xmlns="http://www.w3.org/2000/svg"\n            >\n                <g clip-path="url(#clip0_11766_44857)">\n                    <path\n                        d="M20 15.4996C20 16.0889 19.7659 16.6542 19.3491 17.0709C18.9324 17.4877 18.3671 17.7218 17.7778 17.7218H2.22222C1.63285 17.7218 1.06762 17.4877 0.650874 17.0709C0.234126 16.6542 0 16.0889 0 15.4996V5.49957C0 4.9102 0.234126 4.34496 0.650874 3.92822C1.06762 3.51147 1.63285 3.27734 2.22222 3.27734H17.7778C18.3671 3.27734 18.9324 3.51147 19.3491 3.92822C19.7659 4.34496 20 4.9102 20 5.49957V15.4996Z"\n                        fill="#009B3A"\n                    />\n                    <path\n                        d="M18.1823 10.4999L10.0001 16.6799L1.81787 10.4999L10.0001 4.31934L18.1823 10.4999Z"\n                        fill="#FEDF01"\n                    />\n                    <path\n                        d="M9.9867 14.0457C11.9682 14.0457 13.5745 12.4394 13.5745 10.4579C13.5745 8.47642 11.9682 6.87012 9.9867 6.87012C8.00523 6.87012 6.39893 8.47642 6.39893 10.4579C6.39893 12.4394 8.00523 14.0457 9.9867 14.0457Z"\n                        fill="#002776"\n                    />\n                    <path\n                        d="M6.8206 8.77057C6.63426 9.12172 6.50807 9.5016 6.44727 9.89445C8.66671 9.73334 11.6789 10.945 12.9717 12.4472C13.195 12.1117 13.3606 11.7361 13.4623 11.3339C11.8667 9.7739 9.06393 8.76168 6.8206 8.77057Z"\n                        fill="#CBE9D4"\n                    />\n                    <path\n                        d="M6.6665 10.6299H7.22206V11.1854H6.6665V10.6299ZM7.22206 11.741H7.77762V12.2965H7.22206V11.741Z"\n                        fill="#88C9F9"\n                    />\n                    <path\n                        d="M8.3335 10.6297H8.88905V11.1852H8.3335V10.6297ZM9.44461 11.1852H10.0002V11.7408H9.44461V11.1852ZM11.6668 12.2963H12.2224V12.8519H11.6668V12.2963ZM10.0002 12.8519H10.5557V13.4074H10.0002V12.8519ZM11.6668 9.51855H12.2224V10.0741H11.6668V9.51855Z"\n                        fill="#55ACEE"\n                    />\n                    <path d="M10.5557 11.7402H11.1112V12.2958H10.5557V11.7402Z" fill="#3B88C3" />\n                </g>\n                <defs>\n                    <clipPath id="clip0_11766_44857">\n                        <rect width="20" height="20" fill="white" transform="translate(0 0.5)" />\n                    </clipPath>\n                </defs>\n            </svg>\n        '])))}render(){return g(x||(x=h(['\n            <div\n                class="modal fade tm-register-modal"\n                id="tm-register-modal"\n                tabindex="-1"\n                aria-hidden="true"\n            >\n                <div class="modal-dialog">\n                    <div class="modal-content">\n                        <div class="tm-register-modal-content">\n                            <button class="tm-register-modal-close" @click=','>\n                                <span class="icon icon-012-close"> </span>\n                            </button>\n                            <div class="tm-register-modal-title">Quase pronto!</div>\n                            <div class="tm-register-modal-subtitle">\n                                Personalize sua experiência 🚀\n                            </div>\n                            <form\n                                class="tm-register-modal-form"\n                                @submit=','\n                                id="tm-register-modal-form"\n                            >\n                                <div class="tm-register-modal-form-group">\n                                    <label\n                                        class="tm-register-modal-form-group-label"\n                                        for="whatsapp"\n                                    >\n                                        Adicione seu WhatsApp e fique por dentro!\n                                    </label>\n                                    <div\n                                        class="','"\n                                        type="text"\n                                    >\n                                        <div class="tm-register-modal-form-group-input-wh-prefix">\n                                            ',' +55\n                                        </div>\n                                        <input\n                                            id="whatsapp"\n                                            name="whatsapp"\n                                            type="tel"\n                                            placeholder="(00) 00000-0000"\n                                            @input
2=',"\n                                        />\n                                    </div>\n                                    ",'\n                                </div>\n                                <div class="tm-register-modal-form-group">\n                                    <label\n                                        class="tm-register-modal-form-group-label"\n                                        for="profile-type"\n                                    >\n                                        Inscreva-se como:\n                                    </label>\n                                    <select\n                                        class="tm-register-modal-form-group-input tm-register-modal-form-group-input--select"\n                                        name="profile-type"\n                                        id="profile-type"\n                                        @change=','\n                                    >\n                                        <option value="" selected disabled>\n                                            Selecione uma opção\n                                        </option>\n                                        ',"\n                                    </select>\n                                </div>\n                                ","\n                                ",'\n                                <div class="tm-register-modal-form-submit-container">\n                                    <button\n                                        type="submit"\n                                        .disabled=','\n                                        class="tm-register-modal-form-button ds-button ds-button--primary"\n                                    >\n                                        Finalizar\n                                        <span class="icon icon-034-dash-arrow"> </span>\n                                    </button>\n                                </div>\n                            </form>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        '])),this.dismissModal,this.handleSubmit,T({"tm-register-modal-form-group-input":!0,"tm-register-modal-form-group-input--error":this.whatsappErrorMessage}),this.renderBrFlag(),this.handleNumberInput,this.whatsappErrorMessage?g(C||(C=h(['<div class="tm-register-modal-form-group-error">\n                                              Campo WhatsApp é obrigatório\n                                          </div>']))):A,this.handleProfileTypeChange,this.profileTypeOptions.map(i=>g(D||(D=h(['<option value="','">\n                                                    ',"\n                                                </option>"])),i.value,i.label)),this.profileType==="student"||this.profileType===""?g(B||(B=h([' <div class="tm-register-modal-form-group">\n                                              <label\n                                                  class="','"\n                                                  for="school-year"\n                                              >\n                                                  Qual o seu grau escolar?\n                                              </label>\n                                              <select\n                                                  class="','"\n                                                  .disabled=','\n                                                  name="school-year"\n                                                  id="school-year"\n                                              >\n                                                  <option value="" selected disabled>\n                                                      Selecione uma opção\n                                                  </option>\n                                                  ','\n                                              </select>\n                                          </div>\n                                          <div class="tm-register-modal-form-group">\n                                              <label\n                                                  class="','"\n                                                  for="entrance-exam"\n                                              >\n                                                  Estudando para alguma prova?\n                                              </label>\n                                              <select\n                                                  class="','"\n                                                  .disabled=','\n                                                  name="entrance-exam"\n                                                  id="entrance-exam"\n                                              >\n                                                  <option value="" selected disabled>\n                                                      Selecione uma opção\n                                                  </option>\n                                                  ',"\n                                              </select>\n                                          </div>"])),T({"tm-register-modal-form-group-label":!0,"tm-register-modal-form-group-label--disabled":this.profileType!=="student"}),T({"tm-register-modal-form-group-input":!0,"tm-register-modal-form-group-input--select":!0,"tm-register-modal-form-group-input--disabled":this.profileType!=="student"}),this.profileType!=="student",this.schoolYearOptions.map(i=>g($||($=h(['<option value="','">\n                                                              ',"\n                                                          </option>"])),i.value,i.label)),T({"tm-register-modal-form-group-label":!0,"tm-register-modal-form-group-label--select":!0,"tm-register-modal-form-group-label--disabled":this.profileType!=="student"}),T({"tm-register-modal-form-group-input":!0,"tm-register-modal-form-group-input--select":!0,"tm-register-modal-form-group-input--disabled":this.profileType!=="student"}),this.profileType!=="student",this.entranceExamOptions.map(i=>g(H||(H=h(['<option value="','">\n                                                              ',"\n                                                          </option>"])),i.value,i.label))):A,this.errorMessage?g(F||(F=h(['<div class="form-message form-message--error">\n                                          ',"\n                                      </div>"])),this.errorMessage):A,this.isLoading)}};b([O()],v.prototype,"isLoading",2);b([O()],v.prototype,"errorMessage",2);b([O()],v.prototype,"whatsappErrorMessage",2);b([O()],v.prototype,"profileType",2);v=b([X("tm-register-modal")],v);document.querySelector(".sm-page")&&m(()=>import("./simuladao-register-modal.BcOqeD4t.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]));document.querySelector("profile-button")&&m(()=>
2import("./profile-button.NaQIzEg_.js"),__vite__mapDeps([20,1,2,3,4,5,21,6,7,8,15,14,13,22,23]));document.querySelector("favorite-button")&&m(()=>import("./favorite-button.BClELXq1.js"),__vite__mapDeps([24,1,2,3,4,5,25,7,6,8,15,14]));document.querySelector("unfavorite-button")&&m(()=>import("./unfavorite-button.BhuifbUB.js"),__vite__mapDeps([26,1,2,3,4,5,25,7,6,8,15]));document.querySelector("register-form-controller")&&m(()=>import("./register-form-controller.Bd-YR5Zh.js"),__vite__mapDeps([27,1,2,3,4,5,28,6,7,8,15,14]));document.querySelector("edit-profile-form-controller")&&m(()=>import("./edit-profile-form-controller.FtBzgXux.js"),__vite__mapDeps([29,1,2,3,4,5,28,6,7,8,14,11,12,13,15,16,17,18,19]));document.querySelector("delete-account-button")&&m(()=>import("./delete-account-button.DoUNuNxk.js"),__vite__mapDeps([30,1,2,3,4,5,21,6,7,8,15]));document.querySelector("login-error-message")&&m(()=>import("./login-error-message.DNNuhsT_.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8]));document.querySelector("form.potential-login-email-form")&&m(()=>import("./potential-login-email-form.BkUsOAT7.js"),[]).then(i=>i.default());document.querySelector("sg-a-context")&&m(()=>import("./auth-context.DG_7HPgp.js"),__vite__mapDeps([32,1,2,3,4,6,7,8,5]));document.querySelector("notification-count-badge")&&m(()=>import("./notification-count-badge.ikuOh5cU.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,14,22]));var _=(i=>(i.START="session-start",i.STOP="session-stop",i.CREATE="session-create",i.UPDATE="session-update",i))(_||{});class y{constructor(t,e){this._snapshots=[],this._id=t,this._userId=e,this._initialTimeStamp=Date.now(),this._currentInitialTimeStamp=this._initialTimeStamp,this._lastUpdatedTimeStamp=this._initialTimeStamp,this._lastUpdatedById=t,this._timeSpent=0,this._totalTimeSpent=0}get id(){return this._id}get userId(){return this._userId}get initialTimeStamp(){return this._initialTimeStamp}get lastUpdatedTimeStamp(){return this._lastUpdatedTimeStamp}get lastUpdatedById(){return this._lastUpdatedById}get timeSpent(){return this._timeSpent}get totalTimeSpent(){return this._totalTimeSpent}get snapshot(){return{id:this._id,userId:this._userId,initialTimeStamp:this._currentInitialTimeStamp,currentInitialTimeStamp:this._currentInitialTimeStamp,lastUpdatedTimeStamp:this._lastUpdatedTimeStamp,lastUpdatedById:this._lastUpdatedById,timeSpent:this._timeSpent,totalTimeSpent:this._totalTimeSpent}}reconnect(t,e){this._snapshots.push(this.snapshot),this._currentInitialTimeStamp=t,this._lastUpdatedTimeStamp=this._currentInitialTimeStamp,this._lastUpdatedById=e,this._timeSpent=0}update(t,e){this._totalTimeSpent+=t-this._lastUpdatedTimeStamp,this._lastUpdatedTimeStamp=t,this._lastUpdatedById=e,this._timeSpent=this._lastUpdatedTimeStamp-this._currentInitialTimeStamp}fromSnapshot(t){return this._initialTimeStamp=t.initialTimeStamp,this._currentInitialTimeStamp=t.currentInitialTimeStamp,this._lastUpdatedTimeStamp=t.lastUpdatedTimeStamp,this._lastUpdatedById=t.lastUpdatedById,this._timeSpent=t.timeSpent,this._totalTimeSpent=t.totalTimeSpent,this._snapshots=t.snapshots||[],this}static fromJson(t){const e=JSON.parse(t);return new y(e.id,e.userId).fromSnapshot(e)}toJson(){return JSON.stringify({id:this._id,userId:this._userId,initialTimeStamp:this._initialTimeStamp,currentInitialTimeStamp:this._currentInitialTimeStamp,lastUpdatedTimeStamp:this._lastUpdatedTimeStamp,lastUpdatedById:this._lastUpdatedById,timeSpent:this._timeSpent,totalTimeSpent:this._totalTimeSpent,snapshots:this._snapshots})}print(){console.table({ID:this._id,"User ID":this._userId,"Initial timestamp":this._initialTimeStamp,"Current initial timestamp":this._currentInitialTimeStamp,"Last updated timestamp":this._lastUpdatedTimeStamp,"Last updated by":this._lastUpdatedById,"Time spent":this.timeSpent,"Total time spent":this._totalTimeSpent})}}const a=class a extends EventTarget{constructor(){if(super(),this._sessionInterval=null,a._instance)throw new Error("SessionController is a singleton");this._sessionId=dt()}static get instance(){return a._instance||(a._instance=new a),a._instance}static get initialized(){return this._initialized}get sessionId(){return this._sessionId}get storageSession(){const t=localStorage.getItem(a.STORAGE_SESSION_KEY);return t?y.fromJson(t):null}static create(t){this._log("Starting SessionController..."),this.initialized&&this.configuration.userId!==t.userId&&this.delete(),this._initialized=!0,this.configuration=t,window.addEventListener("visibilitychange",this._handleVisibilityChange),this._val
2idateStorageSession();const e=this.instance;e._sendEventSessionStart(),document.visibilityState==="visible"&&e._tryReconnectStorageSession(),e._setupSessionInterval(),this._log("SessionController started.")}static delete(){if(this._log("Deleting Session..."),!a.initialized)return;window.removeEventListener("visibilitychange",this._handleVisibilityChange);const t=this.instance;t._sendEventSessionStop(),t._stopSessionInterval(),this._clearStorage(),this._initialized=!1,this._log("Session deleted.")}static _handleVisibilityChange(){switch(document.visibilityState){case"visible":a.instance._handleTabVisible();break;case"hidden":a.instance._handleTabHidden();break}}_handleTabVisible(){a._log("This tab is now visible, updating session..."),this._tryReconnectStorageSession(),this._setupSessionInterval()}_handleTabHidden(){a._log("This tab is hidden, clearing session interval..."),this._stopSessionInterval()}_createStorageSession(){a._log("Creating new session...");const t=new y(this._sessionId,a.configuration.userId);localStorage.setItem(a.STORAGE_SESSION_KEY,t.toJson()),a._log("Session created:"),a._logSession(t),this._sendEventSessionCreate()}_updateStorageSession(t=Date.now()){const e=this.storageSession;if(!e||e&&!a.validateSession(e))return this._createStorageSession();a._log("Updating session..."),e.update(t,this._sessionId),localStorage.setItem(a.STORAGE_SESSION_KEY,e.toJson()),a._log("Session updated:"),a._logSession(e),this._sendEventSessionUpdate()}_tryReconnectStorageSession(t=Date.now()){const e=this.storageSession;if(!e||e&&!a.validateSession(e))return this._createStorageSession();a._log("Trying to reconnect session..."),e.reconnect(t,this._sessionId),localStorage.setItem(a.STORAGE_SESSION_KEY,e.toJson()),a._log("Session reconnected:"),a._logSession(e),this._sendEventSessionUpdate()}_setupSessionInterval(){if(document.visibilityState==="hidden"){a._log("This tab is hidden. We will setup the interval when it becomes visible.");return}a._log("Initializing session interval..."),this._sessionInterval=window.setInterval(()=>{this._updateStorageSession()},a.configuration.timeBetweenUpdates)}_stopSessionInterval(){this._sessionInterval&&window.clearInterval(this._sessionInterval)}static validateSession(t){return!(!t.id||!t.initialTimeStamp||!t.lastUpdatedTimeStamp||!t.lastUpdatedById||a.configuration.userId&&t.userId&&!a.configuration.userId.startsWith(t.userId)||Date.now()-t.lastUpdatedTimeStamp>a.configuration.idleTimeBetweenSessions)}_sendEventSessionStart(){const t=this.storageSession;this._sendSnapshotEvent(_.START,t==null?void 0:t.snapshot)}_sendEventSessionStop(){const t=this.storageSession;this._sendSnapshotEvent(_.STOP,t==null?void 0:t.snapshot)}_sendEventSessionCreate(){const t=this.storageSession;this._sendSnapshotEvent(_.CREATE,t==null?void 0:t.snapshot)}_sendEventSessionUpdate(){const t=this.storageSession;this._sendSnapshotEvent(_.UPDATE,t==null?void 0:t.snapshot)}_sendSnapshotEvent(t,e){a._log("Sending event ".concat(t,"."));const n=new CustomEvent(t,{detail:e});this.dispatchEvent(n)}static _log(t){a.configuration.debug}static _logSession(t){a.configuration.debug}static _validateStorageSession(){if(this._log("Validating storage session..."),localStorage.getItem(this.STORAGE_SESSION_VERSION_KEY)===this.STORAGE_SESSION_VERSION)return this._log("Storage session is valid.");this._log("Storage session is invalid."),localStorage.setItem(this.STORAGE_SESSION_VERSION_KEY,this.STORAGE_SESSION_VERSION),this._clearStorage()}static _clearStorage(){this._log("Clearing storage..."),localStorage.removeItem(this.STORAGE_SESSION_KEY);const t=localStorage.length;for(let e=0;e<t;e++){const n=localStorage.key(e);n!=null&&n.startsWith(this.STORAGE_SAVED_SNAPSHOT_KEY)&&localStorage.removeItem(n)}this._log("Storage cleared.")}static saveSnapshot(t,e){localStorage.setItem("".concat(this.STORAGE_SAVED_SNAPSHOT_KEY,"_").concat(t),JSON.stringify(e))}static getSavedSnapshot(t){const e=localStorage.getItem("".concat(this.STORAGE_SAVED_SNAPSHOT_KEY,"_").concat(t));return e?JSON.parse(e):null}static deleteSavedSnapshot(t){localStorage.removeItem("".concat(this.STORAGE_SAVED_SNAPSHOT_KEY,"_").concat(t))}};a._initialized=!1,a.configuration={idleTimeBetweenSessions:3e5,timeBetweenUpdates:3e4,debug:!1},a.STORAGE_SESSION_VERSION="1.0.0",a.STORAGE_SESSION_VERSION_KEY="tm_session_version",a.STORAGE_SESSION_KEY="tm_session",a.STORAGE_SAVED_SNAPSHOT_KEY="tm_saved_snapshot";let S=a;
2const ft=["/user/","/corretor/","/tmplus/","/ajudante-ia-dever-casa/"],_t=i=>ft.some(t=>i.includes(t)),vt=["corretor-de-redacao/","ajudante-ia-dever-casa"],Et=i=>vt.some(t=>i.includes(t)),I=36e4,Tt={idleTimeBetweenSessions:9e5,timeBetweenUpdates:15e3,debug:P()===M.DEVELOPMENT||P()===M.STAGING},bt=3e5;pt(i=>{window.tm_auth_bootstrapped=!0,ut(t=>{var l;const n=d.getState()[c.auth.name],s=p.auth.isLogged(n),o=p.auth.isPremium(n),r=(l=p.auth.getUser(n))==null?void 0:l.uuid;window.dispatchEvent(new lt({uuid:r,isLogged:s,isPremium:o}))})});mt(i=>{const{uuid:t}=i.detail,e=s=>{const r=d.getState()[c.auth.name],l=p.auth.credentials(r);d.dispatch(f.endpoints.pingSession.initiate({...l,data:{initialTimeStamp:s.initialTimeStamp,lastUpdatedTimeStamp:s.lastUpdatedTimeStamp,timeSpent:s.totalTimeSpent,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,currentPage:window.location.pathname}})).then(()=>{S.saveSnapshot("pinged",s),d.dispatch(f.endpoints.getPendingNotifications.initiate(l))})};let n=null;S.instance.addEventListener(_.START,()=>{const s=d.getState(),o=s[c.auth.name],r=s[c.notification.name],l=p.auth.credentials(o);r.pendingNotificationsUpdateTimestamp&&(r.pendingNotifications.forEach(u=>{if(u.delivered&&u.deliveredAt)return;if(u.delivered&&!u.deliveredAt)return d.dispatch(f.endpoints.deliverNotification.initiate({...l,data:{notification:u.id}}));const E=Z.create({id:u.id,type:u.type,priority:u.priority,title:u.title,message:u.message,data:u.data});E&&j.instance.enqueueNotification(E)}),Date.now()-r.pendingNotificationsUpdateTimestamp<bt)||d.dispatch(f.endpoints.getPendingNotifications.initiate(l))}),S.instance.addEventListener(_.UPDATE,s=>{const o=s.detail;if(!n){const r=S.getSavedSnapshot("pinged");if(o.id===(r==null?void 0:r.id)){const l=o.totalTimeSpent-r.totalTimeSpent;l<I&&(n=r),l>=I&&(e(o),n=o);return}o.totalTimeSpent>=I&&e(o),n=o;return}o.totalTimeSpent-n.totalTimeSpent>=I&&(e(o),n=o)}),S.create({...Tt,userId:t})});ct(i=>{const{isPremium:t}=i.detail;if(S.delete(),S.deleteSavedSnapshot("pinged"),d.dispatch(W.notification.deleteAllNotifications()),t||_t(window.location.pathname))return window.location.reload()});window.googleLoginHandler=async function(i){G()&&k(),It();let t=null;try{t=await tt()}catch(e){t=null}d.dispatch(f.endpoints.googleLogin.initiate({...i,ga_client_id:t!=null?t:void 0}))};function wt(i=""){const t=new URLSearchParams(window.location.search),e=i||t.get("next"),n=document.referrer&&document.referrer.startsWith(window.location.origin)?document.referrer.replace(window.location.origin,""):"";let s=e||n;return s&&!s.startsWith("/")&&(s=""),s&&!s.endsWith("/")&&(s+="/"),s&&(s.includes("?")?s+="&cb=".concat(Date.now()):s+="?cb=".concat(Date.now())),s}function It(){const i=d.subscribe(async()=>{const t=d.getState();if(p.auth.isLogged(t[c.auth.name])){i();const e=t[c.auth.name],n=p.auth.getUser(e).uuid,s=p.auth.isNewUser(e),o=p.auth.isPremium(e);(!s||!Q())&&et(),at(),q({uuid:n,isPremium:o}),s&&nt();const r=new URLSearchParams(window.location.search);if(r.get("f")){const l=r.get("f");"data"in await d.dispatch(f.endpoints.updateFavorite.initiate({...p.auth.credentials(t[c.auth.name]),content_id:l}))&&ot(l)}if(G())return;if(window.location.pathname.includes("login")){const l=wt();return l?window.location.replace(l):window.location.replace("".concat(window.location.origin,"/user/minhas-conquistas/"))}if(window.location.pathname.includes("checkout")||!Et(window.location.pathname)&&p.auth.isPremium(e)||window.location.pathname.includes("exercicios"))return window.location.reload()}})}async function Y(){const t=d.getState()[c.auth.name],e=p.auth.isLogged(t),n=rt.validate(e);if(n||d.dispatch(c.auth.actions.logout()),e&&n){const s=await d.dispatch(f.endpoints.val
2idateToken.initiate(p.auth.credentials(t)));if("error"in s&&s.error.status!=="FETCH_ERROR")return window.dispatchEvent(new N),d.dispatch(c.auth.actions.logout());const{uuid:o}=p.auth.credentials(t),r=p.auth.isPremium(t);q({uuid:o,isPremium:r})}window.dispatchEvent(new N)}const{bootstrapped:z}=U.getState();if(!z){const i=U.subscribe(()=>{const{bootstrapped:t}=U.getState();t&&(i==null||i.call(void 0),Y())})}z&&Y();const Ht=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));export{ht as f,Ht as i};
3//# sourceMappingURL=index.DWrx4rn5.js.map

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.