PageSourceSearch

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

js todamateria.com.br collected 2026-10-02 03:06:43 UTC 31,829 bytes, 2 lines download raw bytes

1var R=Object.freeze,de=Object.defineProperty;var n=(e,t)=>R(de(e,"raw",{value:R(t||e.slice())}));import{i as d,E as c,x as l,n as b,r as u,J as ue}from"./funnel-tracker.CkzWyQni.js";import{t as h}from"./google-cookies._NJ-L9_Q.js";import{o as C}from"./main.Bg0ews67.js";import{a as w}from"./class-map.BaNb8brA.js";import{E as f,u as he}from"./progress-bar.BTpgzRwF.js";import{Modal as ne}from"./bootstrap.esm.D-nSkdPC.js";import{e as ae}from"./query.6GE6ClqT.js";import{U as pe}from"./auth-cookies.Cq4KilpJ.js";import{t as me}from"./clicks-tracker.qzx36gi7.js";import"./_commonjsHelpers.CqkleIqs.js";import"./analytics.Yss8y0c9.js";import"./preload-helper.CXnpAtHY.js";import"./v4.CtRu48qb.js";import"./persisted-redux-controller.CClxSLXV.js";import"./auth-controller.PeK-ejBR.js";import"./analytics.Bbc7X71t.js";import"./subscription-controller.DXXnk62P.js";import"./analytics.CJrgfIra.js";import"./showJotForm.lpeHpsQu.js";var be=Object.getOwnPropertyDescriptor,fe=(e,t,s,r)=>{for(var i=r>1?void 0:r?be(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=a(i)||i);return i},q,L;let _=class extends d{constructor(){super(...arguments),this.controller=new f(this),this.initialized=!1}createRenderRoot(){return this}updated(e){super.updated(e),this.controller.dataLoaded&&!this.initialized&&(this.initialized=!0,this.classList.remove("skeleton"))}getButtonTitle(){return this.controller.introductionViewed?this.controller.isLimitReached&&this.controller.isShowingCompletedScreen?"Próxima Questão":this.controller.isAnswerValidated?this.controller.isLastQuestion||this.controller.isReviewingQuestion?"Concluir":"Próxima Questão":"Verificar":"Iniciar Exercício"}handleClick(){if(this.controller.isLimitReached&&this.controller.isShowingCompletedScreen){window.dispatchEvent(new CustomEvent("tm-exercises-paywall-modal-open"));return}return this.controller.introductionViewed?this.controller.isAnswerValidated?(this.controller.isReviewingQuestion||window.scrollTo({top:0,behavior:"smooth"}),this.controller.next()):this.controller.validate():this.controller.setIntroductionViewed()}shouldDisable(){return this.controller.isLimitReached||!this.controller.introductionViewed?!1:!this.controller.selectedOption}render(){return this.controller.isShowingCompletedScreen&&this.controller.completed&&!this.controller.nextExercise?c:this.controller.isShowingCompletedScreen&&this.controller.completed&&this.controller.nextExercise?l(q||(q=n(['\n        <a href="','" class="navigation-button">\n          <span class="content-title">','</span>\n          <span class="icon"></span>\n        </a>\n      '])),this.controller.nextExercise.url,this.controller.nextExercise.title):l(L||(L=n(['\n      <button\n        class="navigation-button"\n        ?disabled=',"\n        @click=",'\n      >\n        <span class="content-title">','</span>\n        <span class="icon"></span>\n      </button>\n    '])),this.shouldDisable(),this.handleClick.bind(this),this.getButtonTitle())}};_=fe([h("tm-exercises-continue-button")],_);var ve=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,k=(e,t,s,r)=>{for(var i=r>1?void 0:r?ge(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(t,s,i):a(i))||i);return r&&i&&ve(t,s,i),i},P;let y=class extends d{constructor(){super(...arguments),this.controller=new f(this),this.initialized=!1,this.label="Recomeçar",this.alwaysVisible=!1}createRenderRoot(){return this}updated(t){super.updated(t),this.controller.dataLoaded&&!this.initialized&&(this.initialized=!0,this.classList.remove("skeleton")),this.toggleAttribute("hidden",this.shouldHide())}shouldHide(){return this.alwaysVisible?!1:!!(!this.controller.introductionViewed||this.controller.isFirstQuestion&&!this.controller.isAnswerValidated||this.controller.isShowingStreakMessage)}showRestartModal(){const t=document.getElementById("exercises-restart-modal");t&&ne.getOrCreateInstance(t).show()}render(){return this.shouldHide()?c:l(P||(P=n(['\n      <button \n        class="reset-button"\n        @click=','\n      >\n        <span class="icon"></span>\n        <span class="label">',"</span>\n      </button>\n    "])),()=>this.showRestartModal(),this.label)}};k([b({type:String})],y.prototype,"label",2);k([b({type:Boolean})],y.prototype,"alwaysVisible",2);y=k([h("tm-exercises-reset-button")],y);var xe=Object.defineProperty,we=Object.getOwnPropertyDescriptor,v=(e,t,s,r)=>{for(var i=r>1?void 0:r?we(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(t,s,i):a(i))||i);return r&&i&&xe(t,s,i),i},D,A,M,T,V,Q,B,z,H,j,I;let p=class extends d{constructor(){super(...arguments),this.controller=new f(this),this.feedbackSelector="#exercises-feedback",this.maxSuggestions=15,this.excellentHitsRatio=.6,this.relatedContents=[],this.suggestedContents=[]}get hitsRatioPercentage(){return"".concat(Math.round(this.controller.hitsRatio*100),"%")}get isExcellentHitsRatio(){return this.controller.hitsRatio>=this.excellentHitsRatio}get title(){return this.controller.isLimitReached?"Você está indo muito bem!":this.isExcellentHitsRatio?"Parabéns, você completou a lição!":"Você completou a lição!"}createRenderRoot(){return this}disconnectedCallback(){var e;super.disconnectedCallback(),(e=document.querySelector(this.feedbackSelector))==null||e.setAttribute("hidden","")}firstUpdated(e){var t;super.firstUpdated(e),(t=document.querySelector(this.feedbackSelector))==null||t.removeAttribute("hidden")}handleReviewQuestionClick(e){this.controller.reviewQuestion(e)}render(){return l(T||(T=n(['\n      <h2 class="completed-title">','</h2>\n      <div class="info-wrapper">\n        <div class="info-hits">\n          <div class="hits-wrapper">
1\n            <span class="hits">Acertos</span>\n            <span class="hits-value"\n              >',"/","</span\n            >\n          </div>\n          ","\n        </div>\n        ",'\n        <div class="divider"></div>\n        <div class="info-questions">\n          <p class="questions-title">\n            Clique para voltar à questão e checar o gabarito:\n          </p>\n          <ul class="questions-list">\n            ',"\n          </ul>\n        </div>\n        ","\n      </div>\n    "])),this.title,this.controller.hits,this.controller.totalQuestions,this.isExcellentHitsRatio&&!this.controller.isLimitReached?l(D||(D=n(['\n                <span class="illustration">\n                  <img\n                    class="mobile"\n                    src="/img/special/exercises/conclusion-mobile.png"\n                    alt="Lição concluída"\n                  />\n                  <img\n                    class="desktop"\n                    src="/img/special/exercises/conclusion-desktop.png"\n                    alt="Lição concluída"\n                  />\n                </span>\n              ']))):c,this.controller.isPremium?l(A||(A=n(['\n              <div class="info-hits-details">\n                <strong class="hits-details"\n                  >Taxa de Acertos: ','</strong\n                >\n                <span class="hits-details"\n                  >(<strong>',"</strong> respostas corretas\n                  em um total de\n                  <strong>","</strong>)</span\n                >\n              </div>\n            "])),this.hitsRatioPercentage,this.controller.hits,this.controller.totalQuestions):c,this.controller.allQuestionsHistory.map((e,t)=>l(M||(M=n(['\n                <li>\n                  <button\n                    class="question-item ','"\n                    @click=','\n                    title="','"\n                    ?disabled=','\n                  >\n                    <span class="question-number">',"</span>\n                  </button>\n                </li>\n              "])),e.locked?"locked":e.correct?"correct":"wrong",()=>this.handleQuestionClick(e.questionId,t),this.getQuestionTitle(t,e.correct),e.locked,t+1)),this.renderContinueSection())}getQuestionTitle(e,t){return this.controller.canAccessQuestion(e)?"Questão ".concat(e+1," - ").concat(t?"Correta":"Errada"):"Exclusivo para assinantes do Toda Matéria+"}handleQuestionClick(e,t){this.controller.canAccessQuestion(t)&&this.controller.reviewQuestion(e)}get continueSectionTitle(){return this.controller.isLimitReached?"Desbloqueie acesso ilimitado aos exercícios":this.isExcellentHitsRatio?"Continue sua jornada de aprendizado":"Ou, siga em frente na sua jornada de Aprendizado"}renderContinueSection(){return this.controller.isLimitReached?this.renderPaywall():!this.controller.nextExercise&&this.isExcellentHitsRatio?c:l(B||(B=n(['\n        <div class="continue-section">\n            ',"\n            ","\n        </div>\n    "])),this.isExcellentHitsRatio?c:this.renderTryAgainSection(),this.controller.nextExercise?l(Q||(Q=n(['<div class="continue-section-content">\n                      <h2 class="continue-section-title">',"</h2>\n                      ","\n                      ","\n                  </div>"])),this.continueSectionTitle,this.isExcellentHitsRatio&&this.controller.nextExercise?l(V||(V=n(['\n                                <p class="continue-section-description">\n                                    Agora que dominou a lição de\n                                    <strong\n                                        >',"</strong\n                                    >, que tal seguir em frente e praticar ainda mais?\n                                </p>\n                            "])),this.controller.currentExerciseState.exercise.title):c,this.renderNextExerciseSection()):c)}renderTryAgainSection(){return l(z||(z=n(['\n      <div class="try-again-section">\n        <h2 class="try-again-section-title">\n          Não se preocupe! Aprender é um processo.\n        </h2>\n        <p class="try-again-section-description">\n          Que tal tentar novamente e reforçar o que você aprendeu?\n        </p>\n        <tm-exercises-reset-button\n          label="Recomeçar a Lição"\n        ></tm-exercises-reset-button>\n      </div>\n    '])))}renderNextExerciseSection(){return this.controller.nextExercise?l(j||(j=n(['\n      <div class="next-exercise-section">\n        <p class="next-exercise-section-title">\n          Avance para a próxima lição em <strong>','</strong>:\n        </p>\n        <div class="next-exercise-card">\n          <div class="next-exercise-card-content">
1\n            <span class="next-exercise-card-content-title"\n              >',"</span\n            >\n            ",'\n          </div>\n          <div class="next-exercise-card-footer">\n            <a\n              class="next-exercise-card-footer-button"\n              href="','"\n              >Começar <span class="icon"></span\n            ></a>\n          </div>\n        </div>\n      </div>\n    '])),this.controller.nextExercise.chapter.name,this.controller.nextExercise.title,this.controller.nextExercise.description?l(H||(H=n(['\n                  <span class="next-exercise-card-content-description">\n                    ',"\n                  </span>\n                "])),this.controller.nextExercise.description):c,this.controller.nextExercise.url):c}renderPaywall(){return l(I||(I=n(['\n      <div class="paywall-section">\n        <h2 class="paywall-section-title">\n          Você alcançou o limite de questões gratuitas!\n        </h2>\n        <p class="paywall-section-description">\n          <strong>Desbloqueie todos os exercícios</strong> com o\n          <strong>Toda Matéria+</strong> e pratique sem limites em qualquer\n          matéria!\n        </p>\n        <a href="/tmplus/" data-google-interstitial="false"  class="paywall-unlock-button" data-funnel-click-location="exercises" data-funnel-click-element="exercises_completed" data-funnel-click-type="limit">Desbloquear exercícios</a>\n      </div>\n      <tm-exercises-paywall-modal></tm-exercises-paywall-modal>\n    '])))}};v([b({type:String})],p.prototype,"feedbackSelector",2);v([b({type:Number})],p.prototype,"maxSuggestions",2);v([b({type:Number})],p.prototype,"excellentHitsRatio",2);v([u()],p.prototype,"relatedContents",2);v([u()],p.prototype,"suggestedContents",2);p=v([h("tm-exercises-completed-screen")],p);var ye=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,le=(e,t,s,r)=>{for(var i=r>1?void 0:r?$e(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(t,s,i):a(i))||i);return r&&i&&ye(t,s,i),i},N;let E=class extends d{constructor(){super(...arguments),this.isDialogOpen=!1}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),window.addEventListener("tm-exercises-paywall-modal-open",this.handleOpen.bind(this))}disconnectedCallback(){var e;window.removeEventListener("tm-exercises-paywall-modal-open",this.handleOpen.bind(this)),(e=this.dialog)==null||e.removeEventListener("click",this.handleDialogClick.bind(this)),super.disconnectedCallback()}firstUpdated(e){var t;super.firstUpdated(e),(t=this.dialog)==null||t.addEventListener("click",this.handleDialogClick.bind(this))}updated(e){super.updated(e),document.body.classList.toggle("modal-open",this.isDialogOpen)}handleOpen(){var e;this.isDialogOpen=!0,(e=this.dialog)==null||e.showModal()}handleClose(){var e;this.isDialogOpen=!1,(e=this.dialog)==null||e.close()}handleDialogClick(e){var s;const t=(s=this.dialog)==null?void 0:s.getBoundingClientRect();t&&(e.clientX<t.left||e.clientX>t.right||e.clientY<t.top||e.clientY>t.bottom)&&this.handleClose()}render(){return l(N||(N=n(['\n      <dialog class="paywall-dialog-wrapper" @close=','>\n        <div class="dialog-header">\n          <h2 class="dialog-title">Não pare aqui! Avance sem restrições!</h2>\n          <button class="close-icon" @click=','></button>\n        </div>\n        <div class="dialog-content">\n          <p class="dialog-description">\n            Com o <strong>Toda Matéria+</strong>, você <strong>desbloqueia todos os exercícios</strong> e acelera seus estudos.\n            Domine cada matéria com prática ilimitada e <strong>benefícios exclusivos</strong>:\n          </p>\n          <ul class="benefits-list">\n            <li class="benefit-item">\n              <span class="benefit-icon benefit-icon--doc-write"></span>\n              Corrija sem limites suas redações para o ENEM\n            </li>\n            <li class="benefit-item">\n              <span class="benefit-icon benefit-icon--book"></span>\n              Conteúdos Exclusivos\n            </li>\n            <li class="benefit-item">
1\n              <span class="benefit-icon benefit-icon--megaphone"></span>\n              Estude sem publicidade\n            </li>\n          </ul>\n          <a href="/tmplus/" data-google-interstitial="false" class="paywall-unlock-button" data-funnel-click-location="exercises" data-funnel-click-element="exercises_limit_modal" data-funnel-click-type="limit">\n            Desbloquear exercícios\n          </a>\n        </div>\n      </dialog>\n    '])),this.handleClose,this.handleClose)}};le([ae("dialog.paywall-dialog-wrapper")],E.prototype,"dialog",2);E=le([h("tm-exercises-paywall-modal")],E);var U;const Se=ue(U||(U=n(["\n  dialog#exercises-sidebar-container {\n    border: none;\n    padding: 0;\n    margin: 0;\n    width: 100%;\n    max-width: 100vw;\n    max-height: calc(100vh - 150px);\n    height: auto;\n    top: unset;\n    bottom: 0;\n    border-top-left-radius: 12px;\n    border-top-right-radius: 12px;\n    animation: slide-out 0.3s ease-in;\n  }\n\n  dialog#exercises-sidebar-container[open] {\n    animation: slide-in 0.3s ease-out;\n  }\n\n  dialog#exercises-sidebar-container::backdrop {\n    background-color: rgba(0, 0, 0, 0.5);\n  }\n\n  @keyframes slide-in {\n    from {\n      transform: translateY(100%);\n      display: none;\n    }\n    to {\n      transform: translateY(0);\n      display: block;\n    }\n  }\n\n  @keyframes slide-out {\n    from {\n      transform: translateY(0);\n      display: block;\n    }\n    to {\n      transform: translateY(100%);\n      display: none;\n    }\n  }\n"])));var Ce=Object.defineProperty,Ee=Object.getOwnPropertyDescriptor,ce=(e,t,s,r)=>{for(var i=r>1?void 0:r?Ee(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(t,s,i):a(i))||i);return r&&i&&Ce(t,s,i),i},Y,G;let $=class extends d{constructor(){super(...arguments),this.controller=new f(this),this.initialized=!1,this.isSidebarVisible=!1,this.handleResize=()=>{this.isUpdatePending||this.requestUpdate()}}get isDesktop(){return he().isDesktop}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.handleResize.bind(this)),window.addEventListener("tm-exercises-sidebar-open",this.showSidebar.bind(this)),window.addEventListener("tm-exercises-sidebar-close",this.hideSidebar.bind(this))}disconnectedCallback(){window.removeEventListener("resize",this.handleResize.bind(this)),window.removeEventListener("tm-exercises-sidebar-open",this.showSidebar.bind(this)),window.removeEventListener("tm-exercises-sidebar-close",this.hideSidebar.bind(this)),this.removeButtons(),super.disconnectedCallback()}firstUpdated(e){super.firstUpdated(e),this.setupButtons()}updated(e){var t;super.updated(e),!(!this.controller.initialized||!this.controller.dataLoaded)&&(this.controller.isShowingCompletedScreen&&!this.isSidebarVisible&&this.isDesktop&&(console.log("show sidebar"),this.showSidebar()),!this.controller.isShowingCompletedScreen&&this.isSidebarVisible&&(console.log("hide sidebar"),this.hideSidebar()),(t=document.querySelector(".exercises-wrapper"))==null||t.classList.toggle("showing-completed-screen",this.controller.isShowingCompletedScreen))}render(){return this.isDesktop?l(Y||(Y=n(['\n      <aside id="exercises-sidebar-container">\n        <slot></slot>\n      </aside>\n    ']))):l(G||(G=n(['\n      <dialog id="exercises-sidebar-container">\n        <slot></slot>\n      </dialog>\n    '])))}showSidebar(){var e,t;this.isSidebarVisible=!0,this.isDesktop?this.sidebarContainer.toggleAttribute("open"):(t=(e=this.sidebarContainer).showModal)==null||t.call(e)}hideSidebar(){var e,t;this.isDesktop?this.sidebarContainer.removeAttribute("open"):(t=(e=this.sidebarContainer).close)==null||t.call(e),this.isSidebarVisible=!1}setupButtons(){document.querySelectorAll("[data-exercises-sidebar-open-button]").forEach(s=>s.addEventListener("click",this.showSidebar.bind(this))),document.querySelectorAll("[data-exercises-sidebar-close-button]").forEach(s=>s.addEventListener("click",this.hideSidebar.bind(this)))}removeButtons(){document.querySelectorAll("[data-exercises-sidebar-open-button]").forEach(s=>s.removeEventListener("click",this.showSidebar.bind(this))),document.querySelectorAll("[data-exercises-sidebar-close-button]").forEach(s=>s.removeEventListener("click",this.hideSidebar.bind(this)))}};$.styles=[Se];ce([ae("#exercises-sidebar-container")],$.prototype,"sidebarContainer",2);$=ce([h("tm-exercises-sidebar")],$);var ke=Object.getOwnPropertyDescriptor,Re=(e,t,s,r)=>{for(var i=r>1?void 0:r?ke(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=a(i)||i);return i},W;let O=class extends d{constructor(){super(...arguments),this.controller=new f(this)}createRenderRoot(){return this}dismissModal(){const e=document.getElementById("exercises-restart-modal");e&&ne.getOrCreateInstance(e).hide()}render(){return l(W||(W=n(['\n            <div\n                class="exercises-modal modal fade"\n                id="exercises-restart-modal"\n                tabindex="-1"\n                aria-hidden="true"\n            >\n                <div class="modal-dialog">\n                    <div class="modal-content">\n                        <div class="modal-header">\n                            <div class="modal-title">Tem certeza que deseja recomeçar?</div>\n                            <button\n                                type="button"\n                                class="close"\n                                data-bs-dismiss="modal"\n                                aria-label="Close"\n                            >
1\n                                <span aria-hidden="true">&times;</span>\n                            </button>\n                        </div>\n                        <div class="modal-body">\n                            <div class="modal-body-text">\n                                Se recomeçar o exercício o seu progresso atual será perdido.\n                            </div>\n                            <div class="modal-body-actions">\n                                <button\n                                    type="button"\n                                    class="modal-body-action modal-body-action__continue"\n                                    data-bs-dismiss="modal"\n                                >\n                                    Não, continuar\n                                </button>\n                                <button\n                                    @click=','\n                                    type="button"\n                                    class="modal-body-action modal-body-action__abandon"\n                                >\n                                    Sim, recomeçar\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        '])),()=>{this.controller.reset(),this.dismissModal()})}};O=Re([h("tm-exercises-reset-modal")],O);var _e=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,g=(e,t,s,r)=>{for(var i=r>1?void 0:r?Oe(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(t,s,i):a(i))||i);return r&&i&&_e(t,s,i),i},X,F;let m=class extends d{constructor(){super(...arguments),this.controller=new f(this),this.questionId="",this.reportMessage="",this.loading=!1,this.reportSent=!1,this.showTextarea=!1}createRenderRoot(){return this}updated(e){super.updated(e),e.has("questionId")&&this.reset()}async sendErrorReport(){this.loading=!0;try{await this.controller.sendQuestionErrorReport(this.reportMessage),this.loading=!1,this.reportSent=!0}catch(e){this.reportSent=!0,this.loading=!1}}reset(){this.reportMessage="",this.reportSent=!1,this.loading=!1,this.showTextarea=!1}render(){return this.reportSent?l(X||(X=n(['<div class="question-report">\n                <div class="question-report-thanks">Obrigado pelo seu feedback</div>\n            </div>']))):l(F||(F=n(['\n            <div\n                class="','"\n            >\n                <input\n                    type="checkbox"\n                    id="question-report"\n                    class="question-report-checkbox"\n                    .checked=',"\n                    @change=",'\n                />\n                <label for="question-report" class="question-report-label"> Reportar Erro </label>\n                <div class="question-report-content">\n                    <div class="question-report-content-title">Descrição do problema:</div>\n                    <textarea\n                        .disabled=','\n                        class="question-report-content-textarea"\n                        placeholder="Escreva aqui para que possamos melhorar"\n                        @input=','\n                        maxlength="500"\n                    ></textarea>\n                    <button\n                        class="question-report-content-submit"\n                        @click=',"\n                        .disabled=","\n                    >\n                        Enviar\n                    </button>\n                </div>\n            </div>\n        "])),w({"question-report":!0,"question-report--active":this.showTextarea}),this.showTextarea,e=>this.showTextarea=e.target.checked,this.loading,e=>this.reportMessage=e.target.value.substring(0,500),()=>this.sendErrorReport(),this.loading||this.reportMessage.length<5)}};g([b({type:String})],m.prototype,"questionId",2);g([u()],m.prototype,"reportMessage",2);g([u()],m.prototype,"loading",2);g([u()],m.prototype,"reportSent",2);g([u()],m.prototype,"showTextarea",2);m=g([h("tm-exercises-question-report-error")],m);var qe=Object.defineProperty,Le=Object.getOwnPropertyDescriptor,S=(e,t,s,r)=>{for(var i=r>1?void 0:r?Le(t,s):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(t,s,i):a(i))||i);return r&&i&&qe(t,s,i),i},J,K,Z,ee,te,se,ie,re,oe;let x=class extends d{constructor(){super(...arguments),this.controller=new f(this),this.lastRendered
1QuestionId="",this.setupOnComplete=!1,this.loaded=!1,this.initialized=!1}createRenderRoot(){return this}connectedCallback(){if(super.connectedCallback(),window.addEventListener("scroll",this.scrollHandler.bind(this)),window.addEventListener(pe.LOGOUT,e=>window.location.reload()),!this.data)throw new Error("Exercise data is required on tm-exercises component")}disconnectedCallback(){window.removeEventListener("scroll",this.scrollHandler.bind(this)),super.disconnectedCallback()}firstUpdated(e){super.firstUpdated(e),this.initialSetup()}updated(e){if(super.updated(e),this.controller.isShowingError){this.classList.toggle("skeleton",!1),this.toggleBottomNavigationVisibility(!1);return}!this.controller.isShowingError&&!this.loaded&&this.classList.toggle("skeleton",!0),this.controller.initialized&&(this.controller.dataLoaded&&!this.loaded&&(this.loaded=!0,document.querySelectorAll("[data-tm-exercises-enable-loaded]").forEach(t=>{t.removeAttribute("data-tm-exercises-enable-loaded")}),this.classList.remove("skeleton")),this.loaded&&(this.controller.introductionViewed&&!this.initialized&&(this.initialized=!0,document.querySelectorAll("[data-tm-exercises-enable-initialized]").forEach(t=>{t.removeAttribute("data-tm-exercises-enable-initialized")})),this.setupTables(),this.controller.isShowingCompletedScreen&&!this.setupOnComplete&&(this.setupOnComplete=!0,this.onComplete())))}initialSetup(){this.controller.setup({exerciseData:this.data})}renderStreakMessage(){const{streak:e}=this.controller,{type:t,message:s}=e;return l(K||(K=n(['\n      <div class="streak-message-wrapper streak-message-wrapper--','">\n        <span class="streak-message-title">',"</span>\n        ","\n      </div>\n    "])),t,s==null?void 0:s.title,s!=null&&s.subtitle?l(J||(J=n(['<span class="streak-message-subtitle">',"</span>"])),s.subtitle):c)}renderQuestion(e){const t=e.answers.find(s=>s.isCorrect);return l(se||(se=n(['\n        <div class="exercise-wrapper">\n            <div class="multiple-choice-wrapper">\n                ','\n                <div\n                    id="sim-question-','"\n                    class="multiple-choice"\n                    data-mc-answered="','"\n                >\n                    ',"\n                </div>\n                ","\n            </div>\n            <tm-exercises-question-report-error\n                .questionId=","\n            ></tm-exercises-question-report-error>\n        </div>\n    "])),C(e.content),e.id,this.controller.isAnswerValidated?"true":"false",e.answers.map(s=>l(Z||(Z=n(['\n                            <div\n                                data-mc-option="radio-item-',"-",'"\n                                ?selected=',"\n                                @click=","\n                                class=","\n                            >\n                                ","\n                            </div>\n                        "])),e.id,s.id,this.controller.selectedOption===s.id,()=>!this.controller.isAnswerValidated&&this.controller.selectOption(s.id),w({"radio-label--correct":this.controller.isAnswerValidated&&s.id===(t==null?void 0:t.id),"radio-label--wrong":this.controller.isAnswerValidated&&s.id!==(t==null?void 0:t.id)&&this.controller.selectedOption===s.id}),C(s.content))),this.controller.isAnswerValidated&&e.explanation?l(te||(te=n(['\n                          <div\n                              class="','"\n                          >\n                              <div\n                                  class="','"\n                              >\n                                  <div class="mb-1"><b>Gabarito explicado</b></div>\n                                  ',"\n                              </div>\n                              ","\n                          </div>\n                      "])),w({"answer-info":1,"answer-info--locked":e.explanation_limit_reached}),w({"answer-info--locked-blur":e.explanation_limit_reached}),C(e.explanation),e.explanation_limit_reached?l(ee||(ee=n([' <div class="answer-info--locked-banner">\n                                        <div class="answer-info--locked-banner-title">\n                                            Os gabaritos completos são exclusivos para assinantes 🔒\n                                        </div>\n                                        <div class="answer-info--locked-banner-description">\n                                            Turbine seu estudo. Assine o <b>Toda Matéria+</b> e tenha acesso às <b>explicações detalhadas</b> dos exercícios.\n                                        </div>\n                                        <a @click=',' href="/tmplus/" data-google-interstitial="false" class="paywall-unlock-button" data-funnel-click-location="exercises" data-funnel-click-element="exercises_gabarito_lock" data-funnel-click-type="limit">
1Assinar Toda Matéria+</a>\n                                    </div>'])),this.trackGabaritoClick):null):c,e.id)}trackGabaritoClick(e){me("cta-tmplus--gabarito")}renderIntroduction(){return l(ie||(ie=n(['\n      <div class="introduction-wrapper">\n        <h2>Vamos começar sua lição!</h2>\n        <p><strong>Resolva questões</strong> sobre ',". <!--e <strong>consulte o gabarito</strong> com explicações para entender melhor os conceitos.</p>-->\n        <tm-exercises-continue-button></tm-exercises-continue-button>\n      </div>\n    "])),this.data.title)}renderError(){return l(re||(re=n(['\n      <div class="error-wrapper">\n        <h2>Não foi possível carregar a lição!</h2>\n        <p>No momento não foi possível carregar a lição de ','. Por favor, tente novamente mais tarde. Se o problema persistir, entre em contato com nosso suporte.</p>\n        <button class="try-again-button" @click=',">Tentar novamente</button>\n      </div>\n    "])),this.data.title,()=>this.initialSetup())}render(){if(this.controller.isShowingError)return this.renderError();if(!this.loaded)return c;if(this.controller.isShowingCompletedScreen)return this.onComplete(),this.lastRenderedQuestionId="",l(oe||(oe=n(["\n        <tm-exercises-completed-screen></tm-exercises-completed-screen>\n      "])));if(!this.controller.introductionViewed)return this.renderIntroduction();if(this.controller.isShowingStreakMessage)return this.renderStreakMessage();const e=this.controller.currentQuestion;return e?this.renderQuestion(e):c}setupTables(){const e=this.getElementsByTagName("table");for(let s=0;s<e.length;s++){const r=e[s];if(r.offsetWidth>this.offsetWidth&&r.parentElement&&!r.parentElement.classList.contains("table-wrapper")){var t='<div class="table-responsive"><div class="table-shadow"></div><div class="table-wrapper">'.concat(r.outerHTML,"</div></div>");r.insertAdjacentHTML("afterend",t),r.parentElement.removeChild(r)}else r.classList.add("table-normal")}}scrollHandler(){const t=window.scrollY+window.innerHeight>=document.body.scrollHeight-10;this.toggleBottomNavigationVisibility(!t)}toggleBottomNavigationVisibility(e){const t=document.querySelector(".bottom-navigation");t&&t.classList.toggle("hide",!e)}onComplete(){const e=document.querySelector('.exercises-sidebar .exercise-item[data-active="true"]');if(!e)return;const t=e.querySelector(".exercise-item-progress");if(!t)return;const s=Math.round(this.controller.hitsRatio*100);t.textContent="".concat(s,"%")}};S([b({type:Object})],x.prototype,"data",2);S([u()],x.prototype,"loaded",2);S([u()],x.prototype,"initialized",2);x=S([h("tm-exercises")],x);export{x as TMExercises};
2//# sourceMappingURL=index.B0kInhWe.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.