crmbonus-component-wake 2.1.39-ngrok → 2.1.40-homolog
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/dist/cjs/app-modal.cjs.entry.js +1 -1
- package/dist/cjs/app-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/{cart.helper-31ba8997.js → cart.helper-96d1b9db.js} +3 -3
- package/dist/cjs/{cart.helper-31ba8997.js.map → cart.helper-96d1b9db.js.map} +1 -1
- package/dist/cjs/container-empty.cjs.entry.js +1 -1
- package/dist/cjs/container-empty.cjs.entry.js.map +1 -1
- package/dist/cjs/countdown-timer-v2.cjs.entry.js +1 -1
- package/dist/cjs/countdown-timer-v2.cjs.entry.js.map +1 -1
- package/dist/cjs/countdown-timer_11.cjs.entry.js +27 -33
- package/dist/cjs/countdown-timer_11.cjs.entry.js.map +1 -1
- package/dist/cjs/crm-bonus-note.cjs.entry.js +5 -5
- package/dist/cjs/crm-bonus-note.cjs.entry.js.map +1 -1
- package/dist/cjs/info.config.helper-d4b1291b.js.map +1 -1
- package/dist/cjs/pedido-finalizado.cjs.entry.js +2 -2
- package/dist/cjs/pedido-finalizado.cjs.entry.js.map +1 -1
- package/dist/cjs/utils-5d59acb1.js.map +1 -1
- package/dist/collection/assets/svg/money-dollars-svgrepo-com.svg +5 -5
- package/dist/collection/components/button/crm-button.css +21 -21
- package/dist/collection/components/button/index.js +1 -1
- package/dist/collection/components/button/index.js.map +1 -1
- package/dist/collection/components/countdown-timer/countdown-timer.js +1 -1
- package/dist/collection/components/countdown-timer/countdown-timer.js.map +1 -1
- package/dist/collection/components/countdown-timer/countdown-timer.v2.js +2 -2
- package/dist/collection/components/countdown-timer/countdown-timer.v2.js.map +1 -1
- package/dist/collection/components/crm-bonus/assets/logo.svg +17 -17
- package/dist/collection/components/crm-bonus/assets/svg/logo.svg +17 -17
- package/dist/collection/components/crm-bonus/crm-bonus.css +82 -82
- package/dist/collection/components/crm-bonus/crm-bonus.js +0 -1
- package/dist/collection/components/crm-bonus/crm-bonus.js.map +1 -1
- package/dist/collection/components/giftback-form/giftback-form.css +74 -74
- package/dist/collection/components/giftback-form/giftback-form.js +5 -5
- package/dist/collection/components/giftback-form/giftback-form.js.map +1 -1
- package/dist/collection/components/giftback-form/subcomponents/giftback-info/giftback-info.css +181 -181
- package/dist/collection/components/giftback-form/subcomponents/giftback-info/giftback-info.js +6 -6
- package/dist/collection/components/giftback-form/subcomponents/giftback-info/giftback-info.js.map +1 -1
- package/dist/collection/components/giftback-form/subcomponents/giftback-message/giftback-massage.js.map +1 -1
- package/dist/collection/components/giftback-form/subcomponents/phone-form/phone-form.js +1 -1
- package/dist/collection/components/giftback-form/subcomponents/phone-form/phone-form.js.map +1 -1
- package/dist/collection/components/giftback-form/subcomponents/pin-form/pin-form.css +83 -83
- package/dist/collection/components/giftback-form/subcomponents/pin-form/pin-form.js +1 -1
- package/dist/collection/components/giftback-form/subcomponents/pin-form/pin-form.js.map +1 -1
- package/dist/collection/components/loading-container/container-empty.js +1 -1
- package/dist/collection/components/loading-container/container-empty.js.map +1 -1
- package/dist/collection/components/loading-container/loading-container.css +53 -53
- package/dist/collection/components/loading-container/loading-container.js +1 -1
- package/dist/collection/components/loading-container/loading-container.js.map +1 -1
- package/dist/collection/components/loading-spinner/loading-spinner.css +16 -16
- package/dist/collection/components/loading-spinner/loading-spinner.js +1 -1
- package/dist/collection/components/loading-spinner/loading-spinner.js.map +1 -1
- package/dist/collection/components/modal/app-modal.css +44 -44
- package/dist/collection/components/modal/app-modal.js +1 -1
- package/dist/collection/components/modal/app-modal.js.map +1 -1
- package/dist/collection/components/note/crm-bonus-note.css +68 -68
- package/dist/collection/components/note/crm-bonus-note.js +2 -2
- package/dist/collection/components/note/crm-bonus-note.js.map +1 -1
- package/dist/collection/components/pedido/pedido.js +1 -1
- package/dist/collection/components/pedido/pedido.js.map +1 -1
- package/dist/collection/components/phone/phone-input-mask.css +40 -40
- package/dist/collection/components/phone/phone-input-mask.js +1 -1
- package/dist/collection/components/phone/phone-input-mask.js.map +1 -1
- package/dist/collection/components/tooltip/crm-tooltip.css +48 -48
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/contants/index.js.map +1 -1
- package/dist/collection/contants/mocks.js.map +1 -1
- package/dist/collection/dto/pin.sent.js.map +1 -1
- package/dist/collection/dto/reserved-info.dto.js.map +1 -1
- package/dist/collection/dto/update.order.dto.js.map +1 -1
- package/dist/collection/dto/validate.pin.bonus.js.map +1 -1
- package/dist/collection/helpers/build.payload.helper.js +7 -12
- package/dist/collection/helpers/build.payload.helper.js.map +1 -1
- package/dist/collection/helpers/cart.helper.js.map +1 -1
- package/dist/collection/helpers/info.config.helper.js.map +1 -1
- package/dist/collection/helpers/payload.interface.js.map +1 -1
- package/dist/collection/helpers/time.helper.js.map +1 -1
- package/dist/collection/i18n/i18n.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/objectvalues/cart.wake.js.map +1 -1
- package/dist/collection/services/crmbonus.service.js.map +1 -1
- package/dist/collection/utils/keys.storage.js.map +1 -1
- package/dist/collection/utils/retry.utils.js.map +1 -1
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/app-modal.js +1 -1
- package/dist/components/app-modal.js.map +1 -1
- package/dist/components/container-empty.js +1 -1
- package/dist/components/container-empty.js.map +1 -1
- package/dist/components/countdown-timer-v2.js +1 -1
- package/dist/components/countdown-timer-v2.js.map +1 -1
- package/dist/components/countdown-timer.js +1 -1
- package/dist/components/crm-bonus-note.js +6 -6
- package/dist/components/crm-bonus-note.js.map +1 -1
- package/dist/components/crm-bonus.js +18 -24
- package/dist/components/crm-bonus.js.map +1 -1
- package/dist/components/crm-button.js +1 -1
- package/dist/components/crm-giftback-form.js +1 -1
- package/dist/components/crm-tooltip.js +1 -1
- package/dist/components/giftback-info.js +1 -1
- package/dist/components/loading-container.js +1 -1
- package/dist/components/loading-spinner.js +1 -1
- package/dist/components/p-1b441909.js.map +1 -1
- package/dist/components/{p-8274e2c4.js → p-208e1c91.js} +2 -2
- package/dist/components/p-208e1c91.js.map +1 -0
- package/dist/components/{p-11520f0f.js → p-52f945ff.js} +2 -2
- package/dist/components/p-52f945ff.js.map +1 -0
- package/dist/components/{p-c250687d.js → p-5c3df678.js} +3 -3
- package/dist/components/p-5c3df678.js.map +1 -0
- package/dist/components/{p-0a7ccd8c.js → p-ad1226cf.js} +5 -5
- package/dist/components/p-ad1226cf.js.map +1 -0
- package/dist/components/p-af3ba015.js.map +1 -1
- package/dist/components/p-c53241bf.js.map +1 -1
- package/dist/components/{p-3c8ae82e.js → p-cdf8a023.js} +9 -9
- package/dist/components/p-cdf8a023.js.map +1 -0
- package/dist/components/{p-2cece106.js → p-d1c68cfc.js} +2 -2
- package/dist/components/p-d1c68cfc.js.map +1 -0
- package/dist/components/{p-786485b2.js → p-de1ecb89.js} +2 -2
- package/dist/components/p-de1ecb89.js.map +1 -0
- package/dist/components/{p-0d09c221.js → p-e632b13e.js} +3 -3
- package/dist/components/{p-0d09c221.js.map → p-e632b13e.js.map} +1 -1
- package/dist/components/{p-9b5c07d8.js → p-e8494ec8.js} +3 -3
- package/dist/components/p-e8494ec8.js.map +1 -0
- package/dist/components/{p-e6863cf5.js → p-ea9ebc32.js} +5 -5
- package/dist/components/p-ea9ebc32.js.map +1 -0
- package/dist/components/p-ecc51430.js.map +1 -1
- package/dist/components/{p-144c34f6.js → p-f03f4355.js} +15 -15
- package/dist/components/p-f03f4355.js.map +1 -0
- package/dist/components/pedido-finalizado.js +2 -2
- package/dist/components/pedido-finalizado.js.map +1 -1
- package/dist/components/phone-form.js +1 -1
- package/dist/components/phone-input-mask.js +1 -1
- package/dist/components/pin-form.js +1 -1
- package/dist/crmbonus-component-wake/assets/logo.svg +17 -17
- package/dist/crmbonus-component-wake/crmbonus-component-wake.esm.js +1 -1
- package/dist/crmbonus-component-wake/p-0022358e.entry.js +2 -0
- package/dist/crmbonus-component-wake/p-0022358e.entry.js.map +1 -0
- package/dist/crmbonus-component-wake/p-7200b5b6.entry.js +2 -0
- package/dist/crmbonus-component-wake/p-7200b5b6.entry.js.map +1 -0
- package/dist/crmbonus-component-wake/{p-ac027576.entry.js → p-8ea219da.entry.js} +2 -2
- package/dist/crmbonus-component-wake/p-8ea219da.entry.js.map +1 -0
- package/dist/crmbonus-component-wake/p-951beb29.entry.js +2 -0
- package/dist/crmbonus-component-wake/p-951beb29.entry.js.map +1 -0
- package/dist/crmbonus-component-wake/p-af3ba015.js.map +1 -1
- package/dist/crmbonus-component-wake/p-b4f52f79.js.map +1 -1
- package/dist/crmbonus-component-wake/p-bbe4fb1e.entry.js +2 -0
- package/dist/crmbonus-component-wake/p-bbe4fb1e.entry.js.map +1 -0
- package/dist/crmbonus-component-wake/{p-0d09c221.js → p-e632b13e.js} +2 -2
- package/dist/crmbonus-component-wake/{p-0d09c221.js.map → p-e632b13e.js.map} +1 -1
- package/dist/crmbonus-component-wake/p-f845f93c.entry.js +2 -0
- package/dist/crmbonus-component-wake/p-f845f93c.entry.js.map +1 -0
- package/dist/env.js +2 -2
- package/dist/env.js.map +1 -1
- package/dist/esm/app-modal.entry.js +1 -1
- package/dist/esm/app-modal.entry.js.map +1 -1
- package/dist/esm/{cart.helper-8c8d4a0a.js → cart.helper-4bf51ec4.js} +3 -3
- package/dist/esm/{cart.helper-8c8d4a0a.js.map → cart.helper-4bf51ec4.js.map} +1 -1
- package/dist/esm/container-empty.entry.js +1 -1
- package/dist/esm/container-empty.entry.js.map +1 -1
- package/dist/esm/countdown-timer-v2.entry.js +1 -1
- package/dist/esm/countdown-timer-v2.entry.js.map +1 -1
- package/dist/esm/countdown-timer_11.entry.js +27 -33
- package/dist/esm/countdown-timer_11.entry.js.map +1 -1
- package/dist/esm/crm-bonus-note.entry.js +5 -5
- package/dist/esm/crm-bonus-note.entry.js.map +1 -1
- package/dist/esm/info.config.helper-e4b8c478.js.map +1 -1
- package/dist/esm/pedido-finalizado.entry.js +2 -2
- package/dist/esm/pedido-finalizado.entry.js.map +1 -1
- package/dist/esm/utils-dec6df66.js.map +1 -1
- package/dist/types/home/darlison/Projects/Bycoders/crmbonus/crmbonus-component/.stencil/env.d.ts +2 -0
- package/package.json +58 -58
- package/readme.md +114 -114
- package/dist/components/p-0a7ccd8c.js.map +0 -1
- package/dist/components/p-11520f0f.js.map +0 -1
- package/dist/components/p-144c34f6.js.map +0 -1
- package/dist/components/p-2cece106.js.map +0 -1
- package/dist/components/p-3c8ae82e.js.map +0 -1
- package/dist/components/p-786485b2.js.map +0 -1
- package/dist/components/p-8274e2c4.js.map +0 -1
- package/dist/components/p-9b5c07d8.js.map +0 -1
- package/dist/components/p-c250687d.js.map +0 -1
- package/dist/components/p-e6863cf5.js.map +0 -1
- package/dist/crmbonus-component-wake/p-0b369ee2.entry.js +0 -2
- package/dist/crmbonus-component-wake/p-0b369ee2.entry.js.map +0 -1
- package/dist/crmbonus-component-wake/p-1644deef.entry.js +0 -2
- package/dist/crmbonus-component-wake/p-1644deef.entry.js.map +0 -1
- package/dist/crmbonus-component-wake/p-7e52727e.entry.js +0 -2
- package/dist/crmbonus-component-wake/p-7e52727e.entry.js.map +0 -1
- package/dist/crmbonus-component-wake/p-ac027576.entry.js.map +0 -1
- package/dist/crmbonus-component-wake/p-ac1e7c32.entry.js +0 -2
- package/dist/crmbonus-component-wake/p-ac1e7c32.entry.js.map +0 -1
- package/dist/crmbonus-component-wake/p-df80d1b0.entry.js +0 -2
- package/dist/crmbonus-component-wake/p-df80d1b0.entry.js.map +0 -1
- package/dist/types/Users/Darlison/Projects/Bycoders/crmbonus/crmbonus-component/.stencil/env.d.ts +0 -2
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as t,h as i,H as e}from"./p-8c362346.js";import{C as o,U as s,g as n,a,b as r,c,p as d}from"./p-e632b13e.js";import{d as l,S as h,i as p,g as u,M as f}from"./p-b4f52f79.js";import{d as b,a as g}from"./p-af3ba015.js";const m=class{constructor(i){t(this,i);this.downtime=undefined;this.dataCriacao=undefined;this.minutos=6;this.segundos=60;this.tempoRestante=undefined}componentWillLoad(){const t=this.minutos*this.segundos*1e3;const i=new Date(this.dataCriacao);const e=new Date;const o=e.getTime()-i.getTime();if(o>=t){this.tempoRestante=0;this.onTempoEsgotado()}else{this.tempoRestante=t-o;this.startCountdown()}}disconnectedCallback(){clearInterval(this.intervalId)}startCountdown(){this.intervalId=setInterval((()=>{this.tempoRestante-=1e3;if(this.tempoRestante<=0){this.tempoRestante=0;clearInterval(this.intervalId);this.onTempoEsgotado()}}),1e3)}onTempoEsgotado(){console.log("Tempo esgotado! Executando ação...");this.downtime()}render(){const t=Math.floor(this.tempoRestante/6e4);const e=Math.floor(this.tempoRestante%6e4/1e3);const o=`${String(t).padStart(2,"0")}:${String(e).padStart(2,"0")}`;return i("label",{key:"18d5e1487a5c1986858f319f6169d9ea6f8db925"}," ",o)}};var x;(function(t){t["P"]="Promocao";t["CC"]="ContaCorrente";t["PP"]="PromocaoProduto";t["F"]="Formula"})(x||(x={}));function y(t=[]){const i=[];for(const n of t){const t=n.PrecoDe<n.PrecoPor;const a=n.PrecoPor<n.PrecoDe;const r=n.Ajustes.filter((t=>[x.PP].includes(t.Tipo)));const c=r.length>0;let d=v(n.Ajustes,t);let l=t?n.PrecoPor:n.PrecoDe;const h=t?n.PrecoPor:n.PrecoDe;if(!c&&a){l=n.PrecoPor}var e=l*n.Quantidade;var o=h*n.Quantidade;var s=d*-1;i.push({sku:n.SKU,value:e,originalValue:o,productVariantId:n.ProdutoVarianteId.toString(),quantity:n.Quantidade,discount:e<s?e:s,promotion_product:c})}return i}function v(t=[],i){let e=0;const o=[x.P,x.CC];if(!i){o.push(x.PP)}for(const i of t){if(o.includes(i.Tipo)){e+=i.Valor}}return e}const w=".container-button{cursor:pointer;padding:5px 5px 5px 14px;}.section-crm{border:1px solid #dbd4d4;text-align:-webkit-center;margin-bottom:20px}.section-cart-crm{margin-top:10px}.section-cart-crm p{padding:0;margin:0px 0px 0px 15px}.button{top:50%;background-color:#6c6c7e;color:#fff;border:none;padding:15px;min-height:30px;min-width:120px;cursor:pointer;margin-left:10px;height:70px}.form-container{width:97%;display:flex;justify-content:space-around}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:0px}.form-container .btnCrm{background:#00162e;border-color:#00162e;width:30%;color:#fff}.message-alert{color:#df4d4d;margin-top:5px}";const k=w;const I=class{constructor(i){t(this,i);this.crmBonusService=o.getInstance();this.cart=undefined;this.canhidden=false;this.showModal=false;this.cartWake=undefined;this.customer={birthDate:"",document:"",name:"",phone:""};this.loading=false;this.message=undefined;this.phone=undefined;this.canCancel=false;this.amountCancel=undefined;this.sent=undefined;this.session=undefined;this.loading_reprocess=false;this.styles=l;this.reservedInfo=undefined}async resetBonus(){console.log("[CRMBONUS] - reset bonus");try{await this.crmBonusRef.processBonus(this.buildProducts(),true);console.log("[BONUS RESETADO]!!!!!")}catch(t){this.loading=false;console.log("[error ao reprocessar bonous]");await this.crmBonusRef.setStep(h.STEP_PHONE)}finally{this.loading=false}}async setloading(){this.loading_reprocess=!this.loading_reprocess}async reprocess(){console.log("[CRMBONUS] - reprocess");this.loading_reprocess=true;try{const t=localStorage.getItem(s);if(!t)return;this.cartWake=await n();await this.resetBonus()}catch(t){console.debug("[watchProducts]",t.message)}finally{this.loading_reprocess=false}}async componentWillLoad(){this.loading_reprocess=true;window.addEventListener("productRemovedFromCart",(async()=>{console.log("[CRMBONUS] - productRemovedFromCart");await this.reprocess()}));window.addEventListener("productAddedToCart",(async()=>{console.log("[CRMBONUS] - productAddedToCart");await this.reprocess()}));document.querySelectorAll("form").forEach((t=>{t.addEventListener("submit",(async()=>{console.log("[CRMBONUS] - Formulário está sendo submetido!");await this.reprocess()}))}));await this.observerHandle();p.changeLanguage(p.language)}async componentDidLoad(){try{await this.loadSession();this.handleLoad();await this.loadConfigStore()}catch(t){console.log("bc:err....")}finally{this.loading_reprocess=false}}async observerHandle(){const t=document.getElementsByTagName("a");for(let i of t){console.log("[el.href]",i.href);if(i.href.includes("Produto/Delete")){i.addEventListener("click",(async()=>{console.log("[CRMBONUS] - Produto removido do carrinho");setTimeout((async()=>{await this.reprocess();this.observerHandle()}),2e3)}))}if(i.href.includes("Produto/Add")){i.addEventListener("click",(async()=>{console.log("[CRMBONUS] - Produto adicionado ao carrinho");setTimeout((async()=>{await this.reprocess();this.observerHandle()}),2e3)}))}}}async loadConfigStore(){const[t,i]=await Promise.all([this.crmBonusService.getCustomization(this.cartWake.store.name),a(this.cartWake.id,this.cartWake.store.name)]);this.reservedInfo=i;if(t.keepStoreFrontStyle){this.styles=null}}async fetchCustomer(t,i){try{return await this.crmBonusService.getCustomer(t,i)}catch(t){console.error("[fetchCustomer] Error fetching customer:",t);return null}}async handleLoad(){try{if(this.cartWake.user.id){this.fetchCustomer(this.cartWake.user.id,this.cartWake.store.name).then((t=>{if(t){this.customer=t}}))}const t=localStorage.getItem(this.cartWake.id);if(t){this.canCancel=true;this.amountCancel=t}await this.buildAndGetProducts(this.cartWake.products)}catch(t){console.log("info customer")}}async loadSession(){this.cartWake=this.cart?new r(JSON.parse(this.cart)):await n();console.log("[bc:carregou carrinho]");this.session=await this.crmBonusService.getToken(this.cartWake.store.name);console.log("[bc:carregou session]");setTimeout((()=>{this.loadSession()}),15e5)}async buildAndGetProducts(t){const i=`bc-products:${this.cartWake.id}`;const e=JSON.stringify(t);localStorage.setItem(i,e);const o=JSON.parse(localStorage.getItem(i));const s=[];for(const i of t){const[t]=o.filter((t=>t.ProdutoVarianteId==i.ProdutoVarianteId));if(t){s.push(Object.assign(Object.assign({},i),{PrecoPor:t.PrecoPor,PrecoDe:t.PrecoDe,Quantidade:t.Quantidade,Ajustes:t.Ajustes}))}else{s.push(i)}}this.cartWake.products=s}async sendPin(t){var i,e;this.loading=true;this.message="";try{const i=t.replace(/\D/g,"");this.phone=Number(i);this.sent=await this.crmBonusService.sendPin(this.phone,this.customer.name,this.cartWake.store.name);await this.crmBonusRef.setStep(h.STEP_PIN);this.showModal=true}catch(t){this.message=(e=(i=t===null||t===void 0?void 0:t.response)===null||i===void 0?void 0:i.data)===null||e===void 0?void 0:e.message}finally{this.loading=false}}async sendPinName(t){var i,e;this.loading=true;this.message="";try{this.customer.name=t;this.sent=await this.crmBonusService.sendPin(this.phone,this.customer.name,this.cartWake.store.name);await this.crmBonusRef.setStep(h.STEP_PIN);this.showModal=true}catch(t){this.message=(e=(i=t===null||t===void 0?void 0:t.response)===null||i===void 0?void 0:i.data)===null||e===void 0?void 0:e.message}finally{this.loading=false}}buildProducts(){return y(this.cartWake.products)}handleCloseModal(){this.showModal=false}save(t){localStorage.setItem(this.cartWake.id,t.toString());this.canCancel=true;this.amountCancel=t.toString()}async cancel(){this.message="";this.loading=true;try{await this.crmBonusService.cancel(this.cartWake.id);this.canCancel=false;localStorage.removeItem(this.cartWake.id)}catch(t){this.message="Não consegui cancelar o bônus, tente novamente!"}finally{this.loading=false}}async handleSendPin(t){this.message="";if(!t){this.message="Informe seu telefone";return}this.customer.phone=t;const i=t.replace(/\D/g,"");this.phone=Number(i);if(this.customer.name){return this.sendPin(t)}await this.crmBonusRef.setStep(h.STEP_NAME);this.showModal=true}render(){if(this.canhidden){return null}return i("loading-container",{loading:this.loading_reprocess,text:"carregando..."},!this.loading_reprocess&&i("crm-giftback-form",{customStyles:this.styles,style:{position:"relative"},ref:t=>this.crmBonusRef=t,storeName:this.cartWake.store.name,products:this.buildProducts(),cartId:this.cartWake.id,customer:this.customer,loadProducts:()=>this.buildProducts(),loadAll:()=>this.handleLoad(),reservedInfo:this.reservedInfo}))}static get assetsDirs(){return["assets"]}};I.style=k;const M="input,button{margin:0;padding:10px;}.crm-contaner-button{height:auto;width:auto}.crm-button{height:48px;width:100%;border:1px solid #000;padding:14px 20px;background-color:#000;color:#fff;line-height:20px;font-weight:500;cursor:pointer}";const N=M;const D=class{constructor(i){t(this,i);this.txtBtn=undefined;this.loading=undefined;this.handleClick=undefined}render(){return i("div",{key:"848df9f754a114343163eae85d34a2acb6b04863",class:"crm-contaner-button"},i("button",{key:"517b761b39ced2615dd04fc42d5aaa98a7d749f6",class:"crm-button",onClick:()=>this.handleClick()},!this.loading?this.txtBtn:i("loading-spinner",{size:"15px",color:"#fff"})))}};D.style=N;const S="*{margin:0;padding:0;box-sizing:border-box}:host{--crmfont-sizebodymd:14px;--crmline-heightbodymd:20px;--crmletter-spacingtitle-md:0px}.container-message{font-weight:400;line-height:var(--crmline-heightbodymd);letter-spacing:var(--crmletter-spacingtitle-md);text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}.crm-container-form{display:flex;flex-direction:column;justify-content:space-around;height:auto;padding:20px 24px 20px 24px;border:1px solid #CCCC;writing-mode:horizontal-tb;gap:16px;border-top:1px solid #ccc !important;border-bottom:1px solid #ccc !important}.crm-phone-form{display:flex;flex-direction:column;height:100%;gap:16px}.crm-subtitle{font-size:.875rem;line-height:1.25rem}.crm-title{font-weight:700;line-height:20px;color:#262626;}.crm-message-info{color:#619013;font-weight:500;}.crm-message-error{color:#E11D48;font-weight:500;}";const C=S;const j=class{constructor(i){t(this,i);this.crmBonusService=o.getInstance();this.storeName=undefined;this.cartId=undefined;this.products=undefined;this.customer=undefined;this.loadProducts=undefined;this.loadAll=undefined;this.customStyles=undefined;this.reservedInfo=undefined;this.value=undefined;this.loading=false;this.message=undefined;this.phone=undefined;this.pinInfo=undefined;this.step=h.STEP_RESERVE;this.bonus=undefined;this.sucess="";this.error="";this.config=undefined;this.hasApplyBonus=false;this.loadingAllComponent=false}async setStep(t){this.step=t}async processBonus(t=[],i=false){await this.loadProducts();this.sucess="";if(i){this.products=t}const e=localStorage.getItem(c(this.cartId));console.log("[_bonus]",e);if(e){const t=JSON.parse(e);if(!t.storeId||!t.userId){return}this.bonus=t;this.phone=t.phone;this.pinInfo={storeId:t.storeId,userId:t.userId};await this.validateBonus("2018")}}async handleSendPin(t){await this.loadAll();this.message="";if(!t){this.message="Informe seu telefone";return}this.phone=t;this.sendPin()}async componentWillLoad(){this.sucess="";this.error="";this.config=u(this.storeName);const t=this.getPhoneNumberAgain();if(t){this.step=h.STEP_PHONE;return}await this.processBonus()}getPhoneNumberAgain(){const t=localStorage.getItem(c(this.cartId));if(!t)return true;const i=JSON.parse(t);return!i.hasBonus}convertStringToNumber(){var t;const i=(t=this.phone)===null||t===void 0?void 0:t.replace(/\D/g,"");return Number(i)}async sendPin(){var t,i,e;this.loading=true;this.message="";this.sucess="";this.error="";try{const i=this.convertStringToNumber();const e=localStorage.getItem(`bc:${this.phone}`);if(!e){this.pinInfo=await this.crmBonusService.sendPin(i,(t=this.customer)===null||t===void 0?void 0:t.name,this.storeName)}if(e){const t=JSON.parse(e);this.pinInfo={storeId:t.storeId,userId:t.userId};await this.validateBonus("2018")}else{this.step=h.STEP_PIN}}catch(t){this.message=(e=(i=t===null||t===void 0?void 0:t.response)===null||i===void 0?void 0:i.data)===null||e===void 0?void 0:e.message}finally{this.loading=false}}changePhone(){this.sucess="";this.error="";this.step=h.STEP_PHONE}async validateBonus(t){var i,e,o,n,a,r,d,l,p,u,f,b;this.loadingAllComponent=true;await this.loadProducts();const g=localStorage.getItem(s);if(g=="dontUse"){this.step=h.STEP_RESERVE;return}this.loading=true;this.sucess="";this.error="";const m=((i=this.pinInfo)===null||i===void 0?void 0:i.storeId)||((o=(e=this.reservedInfo)===null||e===void 0?void 0:e.metadata)===null||o===void 0?void 0:o.storeId);const x=((n=this.pinInfo)===null||n===void 0?void 0:n.userId)||((r=(a=this.reservedInfo)===null||a===void 0?void 0:a.metadata)===null||r===void 0?void 0:r.userId);const y=(l=(d=this.reservedInfo)===null||d===void 0?void 0:d.metadata)===null||l===void 0?void 0:l.cellphone;const v={pin:t,cellphone:y||this.convertStringToNumber(),storeId:m===null||m===void 0?void 0:m.toString(),userId:x===null||x===void 0?void 0:x.toString(),checkoutId:this.cartId,checkoutProducts:this.products,name:(p=this.customer)===null||p===void 0?void 0:p.name,storeName:this.storeName};try{this.bonus=await this.crmBonusService.validatePinBonus(v);if(!this.bonus.hasBonus){localStorage.setItem(c(this.cartId),JSON.stringify(Object.assign(Object.assign({},this.bonus),{phone:this.phone})));this.loading=false;this.step=h.STEP_NO_BONUS;return}this.sucess="Código validado com sucesso!";localStorage.setItem(c(this.cartId),JSON.stringify(Object.assign(Object.assign({},this.bonus),{phone:this.phone})));localStorage.setItem(`bc:${this.phone}`,JSON.stringify(this.bonus));localStorage.setItem(s,"use");localStorage.setItem(this.cartId,this.bonus.bonusBalance.toString());this.updateMetadata({storeId:Number(m),userId:Number(x)},v.cellphone);console.log("RESERVE",this.bonus);this.step=h.STEP_RESERVE}catch(t){const i=(f=(u=t===null||t===void 0?void 0:t.response)===null||u===void 0?void 0:u.data)===null||f===void 0?void 0:f.response;const e=(b=t===null||t===void 0?void 0:t.response)===null||b===void 0?void 0:b.data;if(i&&i.includes("Pin")){this.error="Código inválido!"}else if([403,500].includes(e.statusCode)){this.error="ocorreu um error, atualize a pagina e tente novamente!"}else{this.error=i;this.step=h.STEP_NO_BONUS}}finally{this.loading=false;this.loadingAllComponent=false}}async updateMetadata(t,i){try{if(this.reservedInfo.isExpired()){console.log("[CRM:updateMetadata]");await d(this.storeName,this.cartId,{createdAt:Date.now(),url:window.location.href,storeId:t.storeId,userId:t.userId,cellphone:i});localStorage.removeItem("bc:time")}else{await d(this.storeName,this.cartId,{url:window.location.href,storeId:t.storeId,userId:t.userId,cellphone:i})}}catch(t){console.error("[CRMBONUS:updateMetadata]: ",t)}}handleCancel(){this.cancel()}async cancel(){this.message="";this.loading=true;try{await this.crmBonusService.cancel(this.cartId);localStorage.setItem(s,"dontUse");await this.updateMetadata({storeId:null,userId:null},null)}catch(t){this.message="Não consegui cancelar o bônus, tente novamente!"}finally{this.loading=false}}async reserveApply(t){this.loading=true;this.message="";try{await this.reserve(t)}catch(t){this.message="ocorreu um error ao solicitar a aplicação do bonus! tente novamente";this.step=h.STEP_NO_BONUS;localStorage.removeItem(this.cartId)}finally{this.loading=false}}async reserve(t){await this.crmBonusService.reserve({redeemedBonus:t,cartId:this.cartId,ticket:this.cartId,grossValue:Number(this.bonus.totalValue),storeName:this.storeName,storeId:this.bonus.storeId.toString(),userId:this.bonus.userId})}render(){return i("div",{key:"7c2072d49e7f8c16c5f5e202d13c50e074fa3b12",class:"crm-container-form fbits-responsive-carrinho-desconto",style:this.customStyles},i("label",{key:"1d5fa80478a1cca207c5530cd2d0cccff0afdf4a",class:"crm-title"},this.config.giftbackTitle),this.error&&i("label",{key:"ec124cdacfe66bdbd3ea0a7a00e7bc3681365909",class:"crm-message-error"},this.error),this.step===h.STEP_PHONE&&i("phone-form",{key:"922c8fd1cb546f780be1d5693740621e491935f1",value:this.customer.phone,config:this.config,loading:this.loading,handlerSubmit:t=>this.handleSendPin(t)}),this.step===h.STEP_PIN&&i("pin-form",{key:"989f5530956ed5aad72e3c2f4936ed1ff3b5004e",config:this.config,phone:this.phone,cancel:()=>this.changePhone(),resend:()=>this.sendPin(),validate:t=>this.validateBonus(t),loading:this.loading},this.sucess&&i("p",{key:"76d3ad797f690b29dcdcc388bb82c013d733044e",class:"crm-message-info"},this.sucess),this.error&&i("p",{key:"e994b0a38a699b68ba022f1b15e6dbb96fa0260f",class:"crm-message-error"},this.error)),this.step===h.STEP_RESERVE&&i("giftback-info",{key:"16e9d1053db89f0c2d51aa5ee2edc4682e51c216",storeName:this.storeName,infoBonus:this.reservedInfo,config:this.config,loading:this.loading,cancel:()=>this.handleCancel(),bonus:this.bonus,reserve:()=>this.processBonus(),cartId:this.cartId}),this.step===h.STEP_NO_BONUS&&i("div",{key:"6fcc79ccf75b3746dda9248db45ecc92d9e87d7c",class:"container-message"},p.t("noGiftback",{storename:this.config.giftbackTitle})))}};j.style=C;const A="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xMiAxNy43NUMxMi40MTQyIDE3Ljc1IDEyLjc1IDE3LjQxNDIgMTIuNzUgMTdWMTFDMTIuNzUgMTAuNTg1OCAxMi40MTQyIDEwLjI1IDEyIDEwLjI1QzExLjU4NTggMTAuMjUgMTEuMjUgMTAuNTg1OCAxMS4yNSAxMVYxN0MxMS4yNSAxNy40MTQyIDExLjU4NTggMTcuNzUgMTIgMTcuNzVaIiBmaWxsPSIjMUMyNzRDIi8+DQo8cGF0aCBkPSJNMTIgN0MxMi41NTIzIDcgMTMgNy40NDc3MiAxMyA4QzEzIDguNTUyMjggMTIuNTUyMyA5IDEyIDlDMTEuNDQ3NyA5IDExIDguNTUyMjggMTEgOEMxMSA3LjQ0NzcyIDExLjQ0NzcgNyAxMiA3WiIgZmlsbD0iIzFDMjc0QyIvPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjI1IDEyQzEuMjUgNi4wNjI5NCA2LjA2Mjk0IDEuMjUgMTIgMS4yNUMxNy45MzcxIDEuMjUgMjIuNzUgNi4wNjI5NCAyMi43NSAxMkMyMi43NSAxNy45MzcxIDE3LjkzNzEgMjIuNzUgMTIgMjIuNzVDNi4wNjI5NCAyMi43NSAxLjI1IDE3LjkzNzEgMS4yNSAxMlpNMTIgMi43NUM2Ljg5MTM3IDIuNzUgMi43NSA2Ljg5MTM3IDIuNzUgMTJDMi43NSAxNy4xMDg2IDYuODkxMzcgMjEuMjUgMTIgMjEuMjVDMTcuMTA4NiAyMS4yNSAyMS4yNSAxNy4xMDg2IDIxLjI1IDEyQzIxLjI1IDYuODkxMzcgMTcuMTA4NiAyLjc1IDEyIDIuNzVaIiBmaWxsPSIjMUMyNzRDIi8+DQo8L3N2Zz4=";const T=".crm-tooltip-container {\n display: flex;\n\n & img {\n width: 16px;\n margin-left: 3px;\n position: relative;\n }\n}\n\n.crm-tooltip {\n position: relative;\n display: inline-block;\n}\n\n.crm-tooltip .tooltiptext {\n visibility: hidden;\n background-color: black;\n color: #fff;\n text-align: center;\n padding: 8px 12px;\n border-radius: 0px;\n position: absolute;\n z-index: 1;\n min-width: 271px;\n top: 100%;\n left: 50%;\n margin-left: -238px;\n}\n\n@container (max-width: 410px) {\n .crm-tooltip .tooltiptext {\n margin-left: -14px;\n }\n\n .crm-tooltip #crm-role-description {\n margin-left: -151px;\n }\n}\n\n@container (max-width: 250px) {\n .crm-tooltip .tooltiptext {\n margin-left: -201px;\n }\n}\n\n.crm-tooltip:hover .tooltiptext {\n visibility: visible;\n}";const z=T;const P=class{constructor(i){t(this,i);this.text=undefined;this.identity=undefined}render(){return i("div",{key:"71409ae629da069a909837eaf202fe691b2338b9",class:"crm-tooltip-container crm-tooltip"},i("img",{key:"988ee2ce69927558726b0246e67a223645a5a982",src:A}),i("span",{key:"c169feaf3e3aa8ba058532e18f9f7df5a22f70aa",id:this.identity,class:"tooltiptext"},this.text))}};P.style=z;const U=":host{--text-color:#6D6D5F}.giftback-container{display:flex;flex-direction:column;gap:14px}h3{margin-bottom:8px;color:#333}.container-description{display:flex;align-items:center;gap:5px;margin:0 0 10px 0}.container-description p{font-weight:400;margin:0px}p{color:#000}.value-display h2{color:#6D6D5F;margin:16px 0}input[type='range']{width:100%;margin:12px 0;-webkit-appearance:none;background:#ddd;height:4px;border-radius:4px;outline:none;padding:3px 0px 3px 3px}input[type=\"range\"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:rgb(109, 109, 95);border-radius:50%;cursor:pointer}.options{margin:0px 0;display:flex;gap:10px;flex-direction:column}.options label{display:flex;margin:0px 0;color:#333;align-items:center}.options input[type='radio']{margin-right:8px;height:16px;width:16px}.options input[type='radio']{appearance:none;-webkit-appearance:none;margin-right:8px;width:16px;height:16px;border:2px solid #ddd;border-radius:50%;background-color:#fff;cursor:pointer;transition:all 0.3s;padding:0px}.options input[type='radio']:checked{border-color:#000;background-color:#FAFAFA;border:4px solid #000}.info-box{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;padding:8px;color:#262626;line-height:20px}.info-icon{cursor:pointer;color:#888}h3{margin-bottom:8px;color:#333}.slider-wrapper{position:relative;margin:21px 0px 0px 0px}.slider{width:100%;-webkit-appearance:none;background:#ddd;height:4px;border-radius:2px;outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--text-color);border-radius:50%;cursor:pointer}.slider-value{position:absolute;top:-30px;font-weight:700;color:var(--text-color);transform:translateX(-50%);white-space:nowrap;}.options-option{display:flex}";const E=U;const O=class{constructor(i){t(this,i);this.usedValue=0;this.selectedOption="none";this.cartId=undefined;this.loading=false;this.bonus={totalBonus:0,cartId:"",minimumPurchase:0,bonusBalance:0,calculatedValue:0,firstValidityDate:"",totalValue:0};this.reserve=undefined;this.cancel=undefined;this.config=undefined;this.infoBonus=undefined;this.storeName=undefined;this.sliderPosition=0;this.sliderValuePosition=0;this.loadingTime=false}changedBonus(){this.updateBonus()}updateBonus(){this.usedValue=this.bonus.bonusBalance;this.buildPositionSlider(0,this.bonus.totalBonus)}componentWillLoad(){this.updateBonus();this.selectedOption=localStorage.getItem(s)}handleSliderChange(t){const i=t.target;this.usedValue=parseFloat(i.value);this.buildPositionSlider(parseFloat(i.min),parseFloat(i.max))}componentDidLoad(){var t;if(this.bonus){this._refIinputRange.value=(t=this.bonus)===null||t===void 0?void 0:t.bonusBalance.toString()}}buildPositionSlider(t,i){const e=i*.1;const o=(this.usedValue-t)/(i-t)*100;this.sliderPosition=o;this.sliderValuePosition=o+(this.usedValue<=e?10:0)}async handleOptionChange(t){this.selectedOption=t;localStorage.setItem(s,t);await d(this.storeName,this.cartId,Object.assign(Object.assign({},this.infoBonus.metadata),{createdAt:null}));switch(this.selectedOption){case"use":await this.reserve(this.usedValue);break;case"dontUse":await this.cancel();break}}showTime(){if(!this.infoBonus)return false;return!this.infoBonus.isExpired()}getTime(){var t,i;const e=new Date((i=(t=this.infoBonus)===null||t===void 0?void 0:t.metadata)===null||i===void 0?void 0:i.createdAt);const o=new Date(e);o.setMinutes(o.getMinutes()+6);return{createdAt:e,expiration:o}}async downtime(){await d(this.storeName,this.bonus.cartId,{createdAt:null})}render(){var t,e,o,s,n,a,r;console.log("this.bonus",this.bonus);const c=this.bonus.minimumPurchase-this.bonus.totalValue;const d=p.t("giftDescription",{amount:`${(e=(t=this.bonus)===null||t===void 0?void 0:t.totalBonus)===null||e===void 0?void 0:e.toFixed(2).replace(".",",")}`,custom_name:"Giftback"});const l=b(c);return i("div",{key:"b0bad3ffe129067775bc8e003bce792b5df73a35",class:"giftback-container"},i("div",{key:"50a523afc91d4832d8f63f3b42bc143a906da8b4",class:"container-description"},i("p",{key:"d65a1031581f4edd6c7f3e7771439086bdb8ec63",innerHTML:d}),i("crm-tooltip",{key:"d7a84e830631c983c6b143fa983213db39e72809",identity:"crm-role-description",text:p.t("labelUseGiftback",{minimumPurchase:this.bonus.minimumPurchase,expírationDate:g(this.bonus.firstValidityDate)})})),i("div",{key:"b23127fe5b2fd1d007ec2eb64e901df32dec2f6d",class:"slider-wrapper"},i("div",{key:"cf98c2a9dfcf8ce324cebff2c296989d80eb96c3",class:"slider-value",style:{left:`calc(${this.sliderValuePosition}% - 20px)`}},"R$ ",this.usedValue.toFixed(2).replace(".",",")),i("input",{key:"f3a555f9641d0362319d79aa66ac4229495482b3",ref:t=>this._refIinputRange=t,id:"position_value_id",disabled:true,type:"range",min:"0",max:this.bonus.totalBonus,value:this.usedValue,class:"slider",step:"0.01",onInput:t=>this.handleSliderChange(t),style:{background:`linear-gradient(to right, #6D6D5F ${this.sliderPosition}%, #ddd ${this.sliderPosition}%)`}})),l.isComplete&&i("p",{key:"29121ab93d4cb435b9c2d599dff16a8cbac6ccbc"},p.t("maxAmount")),!l.isComplete&&i("div",{key:"7821e699c9b8b6ca6d62bea4ea7793d0beaff5ba",class:"container-description"},i("p",{key:"e384b3cec08d9ae160f03a3623029e7c4dd410a0"},"Adicione ",i("strong",{key:"8c0876f3c1c3881d96cee5328c98143e5ead154f"},"R$ ",c<0?"0,00":c.toFixed(2).replace(".",","))," ao carrinho para atingir o valor máximo!"),i("crm-tooltip",{key:"269c710ccb49afe750190ba2f63b6528b384c095",identity:"crm-max-description",text:p.t("labelamountPartial")})),i("div",{key:"28243802a10069d56219c7613bb9c4d14e97248b",class:"options"},i("div",{key:"861c3f4f7aa9b85650c6a7129350759356d6951b",class:"options-option"},i("input",{key:"78775b169a6e108256c0fe71b153e8118f928bdd",disabled:this.showTime(),type:"radio",name:"giftbackOption",value:"use",checked:this.selectedOption==="use",onChange:()=>this.handleOptionChange("use")}),i("p",{key:"d6945b714fd21676feecceaaacca5b60f8827e4f"},"Usar o meu ",(o=this.config)===null||o===void 0?void 0:o.giftbackTitle)),i("div",{key:"a9e146b79685a77b834214f22dca02636b5c6f62",class:"options-option"},i("input",{key:"51a3d206cb3bc204585ecc8cecfd6eed7c474d5f",disabled:this.showTime(),type:"radio",name:"giftbackOption",value:"dontUse",checked:this.selectedOption==="dontUse",onChange:()=>this.handleOptionChange("dontUse")}),i("p",{key:"5a2e0f8cd8e4e1ebd3d83be101e979eaedd85615"},"Não usar o meu ",(s=this.config)===null||s===void 0?void 0:s.giftbackTitle))),this.showTime()&&i("div",{key:"edd0d02becfc9cfb78a5651fdba03d6163dc184f",class:"info-box"},"Após ",i("countdown-timer",{key:"dc7431190118c4bec059c7a5b7ede20bee7a6969",dataCriacao:new Date((a=(n=this.infoBonus)===null||n===void 0?void 0:n.metadata)===null||a===void 0?void 0:a.createdAt).toString(),downtime:()=>{window.location.reload()}}),", você poderá alterar sua escolha de usar ou não o Giftback."),!((r=this===null||this===void 0?void 0:this.infoBonus)===null||r===void 0?void 0:r.isBonusProcessed)&&i("div",{key:"91fbdd9d96526b34f2993a8190d7b02c2d61c2a3",class:"info-box"},"O Giftback será aplicado na próxima etapa."))}static get watchers(){return{bonus:["changedBonus"]}}};O.style=E;const L=".loading-container{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.5);display:flex;justify-content:center;align-items:center;z-index:1000;flex-direction:column;}.loading-container p{margin:6px 0px;color:white;font-size:large}.loading-spinner{width:40px;height:40px;border:5px solid rgba(255, 255, 255, 0.3);border-top:5px solid white;border-radius:50%;animation:spin 1s linear infinite;}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.relative-xy{position:relative}";const B=L;const R=class{constructor(i){t(this,i);this.loading=true;this.text=null}render(){return i("div",{key:"7b7d88c96033493ef652f0b331245b644b44e6b6",class:"relative-xy"},this.loading&&i("div",{key:"a8be02caf61d0cdfb4fcd725faefe5a0a03b513d",class:"loading-container"},i("div",{key:"ba672afc6fc7ba7afe18c1e44e392dee7ca312bc",class:"loading-spinner"}),this.text&&i("p",{key:"80f2f8e365f078a13fcf94e2284853d4194862bb"},this.text)),i("slot",{key:"a37b15c9dea5d39b448565cc71d67525660bf85b"}))}};R.style=B;const V=".spinner{display:inline-block;border:4px solid transparent;border-radius:50%;border-top-color:var(--color, #0078d7);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";const F=V;const G=class{constructor(i){t(this,i);this.size="50px";this.color="#0078d7"}render(){return i("div",{key:"cf39cac39aa41032b67a1d1b28b4d3f379490c42",class:"spinner",style:{width:this.size,height:this.size,borderColor:`${this.color} transparent transparent transparent`}})}};G.style=F;const $="*{margin:0;padding:0;box-sizing:border-box}:host{--crmfont-sizebodymd:14px;--crmline-heightbodymd:20px;--crmletter-spacingtitle-md:0px}.container-message{font-weight:400;line-height:var(--crmline-heightbodymd);letter-spacing:var(--crmletter-spacingtitle-md);text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}.crm-container-form{display:flex;flex-direction:column;justify-content:space-around;height:auto;padding:20px 24px 20px 24px;border:1px solid #CCCC;writing-mode:horizontal-tb;gap:16px;border-top:1px solid #ccc !important;border-bottom:1px solid #ccc !important}.crm-phone-form{display:flex;flex-direction:column;height:100%;gap:16px}.crm-subtitle{font-size:.875rem;line-height:1.25rem}.crm-title{font-weight:700;line-height:20px;color:#262626;}.crm-message-info{color:#619013;font-weight:500;}.crm-message-error{color:#E11D48;font-weight:500;}";const Q=$;const _=class{constructor(i){t(this,i);this.value=undefined;this.loading=undefined;this.handlerSubmit=undefined;this.config=undefined}async handlePhone(){const t=await this.phoneInputMask.getPhone();await this.handlerSubmit(t)}render(){var t;return i(e,{key:"5d6b2714caf878d9971982337a164e50e890888a",class:"crm-phone-form"},i("p",{key:"74f319cbf7c764b5b514407793700d6a240eb478",class:"crm-subtitle"},"Digite o seu celular para verificar se há desconto disponível nessa compra:"),i("phone-input-mask",{key:"168ee6a82a4597295dc27d037fd4059fe4435cf8",initialValue:this.value,ref:t=>this.phoneInputMask=t}),i("crm-button",{key:"174990425c63239c7178edbccc942db3e6116004",txtBtn:((t=this.config)===null||t===void 0?void 0:t.btnApplyBonusLabel)||"Avançar",loading:this.loading,handleClick:()=>this.handlePhone()}))}};_.style=Q;const W="*{margin:0;padding:0;box-sizing:border-box}.phone{display:block;width:100%;height:24px;padding:6px 12px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:0px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.phone-input-form{width:100%;height:48px;padding:13px 16px 13px 16px;border:1px solid #CCCCCC;}.crm-erro-msg{color:#E11D48;font-weight:500;margin-top:11px}";const Z=W;const J=class{constructor(i){t(this,i);this.phone="";this.message="";this.initialValue=undefined;this.disabled=undefined}componentWillLoad(){this.phone=this.initialValue}formatPhone(t){const i=t.replace(/\D/g,"");const e=i.match(/^(\d{0,2})(\d{0,5})(\d{0,4})$/);if(!e)return t;const o=e[1]?`(${e[1]}`:"";const s=e[2]?`) ${e[2]}`:"";const n=e[3]?` ${e[3]}`:"";return`${o}${s}${n}`}handleInput(t){const i=t.target;this.phone=this.formatPhone(i.value);if(!this.validatePhoneNumber(i.value)){this.message=f}else{this.message=""}console.log("phone",this.phone)}validatePhoneNumber(t){if(t.length<15){return true}const i=/^\(\d{2}\) \d{5} \d{4}$/;return i.test(t)}async getPhone(){return this.phone}render(){return i("div",{key:"5b05bc28be806302e366fa7ce5e7613d99fe942b"},i("input",{key:"f3e73eafd3c4610ebc8ca9a155e5390db20ac8db",disabled:this.disabled,id:"phone",type:"text",class:"phone-input-form",value:this.phone,onInput:t=>this.handleInput(t),placeholder:"(99) 99999 9999"}),i("p",{key:"53044b06b973b7785e3b617a7aaf550010236c3d",class:"crm-erro-msg"},this.message))}};J.style=Z;const H=":host{display:block}.form-container-pin{display:flex;flex-direction:column;align-items:center}.pin-container{display:flex;justify-content:start;gap:10px}.pin-container input{width:100%;height:48px;text-align:center;border:1px solid #ccc;border-radius:5px}button{padding:10px 20px;background-color:#ddd;border:none;border-radius:5px;cursor:pointer}.success{color:green;margin-top:10px}.button{top:50%;background-color:#6c6c7e;color:#fff;border:none;border-radius:10px;padding:15px;min-height:30px;min-width:120px;cursor:pointer}.button-cancel{top:50%;background-color:#ffffff;color:#1e1c1c;border:1px solid gray;border-radius:10px;padding:10px;min-height:30px;min-width:120px;cursor:pointer}.crm-description{width:100%;display:flex;gap:9px;flex-wrap:wrap}.crm-description a{font-weight:bold;cursor:pointer;text-decoration:underline}.crm-description div{display:flex;gap:5px}";const X=H;const Y="*{margin:0;padding:0;box-sizing:border-box}:host{--crmfont-sizebodymd:14px;--crmline-heightbodymd:20px;--crmletter-spacingtitle-md:0px}.container-message{font-weight:400;line-height:var(--crmline-heightbodymd);letter-spacing:var(--crmletter-spacingtitle-md);text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}.crm-container-form{display:flex;flex-direction:column;justify-content:space-around;height:auto;padding:20px 24px 20px 24px;border:1px solid #CCCC;writing-mode:horizontal-tb;gap:16px;border-top:1px solid #ccc !important;border-bottom:1px solid #ccc !important}.crm-phone-form{display:flex;flex-direction:column;height:100%;gap:16px}.crm-subtitle{font-size:.875rem;line-height:1.25rem}.crm-title{font-weight:700;line-height:20px;color:#262626;}.crm-message-info{color:#619013;font-weight:500;}.crm-message-error{color:#E11D48;font-weight:500;}";const K=Y;const q=class{constructor(i){t(this,i);this.validate=undefined;this.cancel=undefined;this.resend=undefined;this.sent=undefined;this.loading=false;this.phone=undefined;this.config=undefined;this.pin=["","","",""];this.isVerified=false;this.canResend=false}componentWillLoad(){this.canResend=false}handleInput(t,i){const e=t.target;const o=e.value.slice(0,1);this.pin[i]=o;if(o&&i<this.pin.length-1){const t=e.nextElementSibling;t===null||t===void 0?void 0:t.focus()}this.pin=[...this.pin]}validatePin(){localStorage.removeItem("bc:resend");this.validate(this.pin.join(""))}verifyPin(){const t=this.pin.join("");if(t==="9999"){this.isVerified=true}}handleTimeout(){localStorage.removeItem("bc:resend");this.canResend=true}async handleResend(){await this.resend();this.canResend=false;this.pin=["","","",""];localStorage.removeItem("bc:resend")}buildTime(){const t=localStorage.getItem("bc:resend");if(t){return t}const i=new Date;i.setSeconds(i.getSeconds()+30);localStorage.setItem("bc:resend",i.toString());return i.toString()}render(){var t;return i("div",{key:"05f3ded47b176892e8c59dddd08b1c43fd2f26bb",class:"crm-phone-form"},i("label",{key:"973cbc7e98431cd8ee44f3453416b5696b7d292c",class:"crm-subtitle"},p.t("pin-sutitle")," ",i("strong",{key:"8cae1cc584781460060fd84361a539c82194f26f"},"+55 ",this.phone)),i("div",{key:"fc1d2cf4d6ea858a56f943f9c33249ea1c7a1702",class:"pin-container"},this.pin.map(((t,e)=>i("input",{type:"text",maxLength:1,value:this.pin[e],onInput:t=>this.handleInput(t,e)})))),i("slot",{key:"c5eeb7932b47c042c45c895e340177b2c9256156"}),i("p",{key:"706785a6e4cb01efb5eb24a00944e3833e401edf",class:"crm-description"}," Não recebeu?",!this.canResend&&i("label",{key:"bedd4eb47d1d17c042ae90dd391948e8da613999"}," Reenviar em",i("countdown-timer",{key:"1752550acfc64b0cac4e39817196802fbe2f24bf",minutos:0,segundos:30,dataCriacao:this.buildTime(),downtime:()=>this.handleTimeout()})," "),this.canResend&&i("div",{key:"440e2fa2c5aae57d0c9b3500d2e7f94da248e522"},i("a",{key:"f00fd4ffa19991bb3027b031bb9acba487ddde76",onClick:()=>this.handleResend()},"Reenviar"),i("a",{key:"59749f8abf49c358dee5526f1ade91904eab209e",onClick:()=>this.cancel()},"Trocar número"))),i("crm-button",{key:"8a5f9e66a197262c0e10632e9275d8fe70360b11",txtBtn:((t=this.config)===null||t===void 0?void 0:t.btnApplyBonusLabel)||"Avançar",loading:this.loading,handleClick:()=>this.validatePin()}))}};q.style=X+K;export{m as countdown_timer,I as crm_bonus,D as crm_button,j as crm_giftback_form,P as crm_tooltip,O as giftback_info,R as loading_container,G as loading_spinner,_ as phone_form,J as phone_input_mask,q as pin_form};
|
2
|
+
//# sourceMappingURL=p-bbe4fb1e.entry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["CountdownTimer","componentWillLoad","tempoTotal","this","minutos","segundos","data","Date","dataCriacao","agora","tempoPassado","getTime","tempoRestante","onTempoEsgotado","startCountdown","disconnectedCallback","clearInterval","intervalId","setInterval","console","log","downtime","render","Math","floor","tempoFormatado","String","padStart","h","key","AjustesTipoEnum","buildProductsByWake","productsWake","products","pw","hasOriginalPrice","PrecoDe","PrecoPor","hasDiscountInProduct","existsPromotionProduct","Ajustes","filter","adj","PP","includes","Tipo","promotion_product","length","discounts","getDiscount","price","priceOrignal","value","Quantidade","originalValue","discounts_value","push","sku","SKU","productVariantId","ProdutoVarianteId","toString","quantity","discount","ajustes","config_ajustes","P","CC","Valor","crmBonusCss","CrmBonusStyle0","CrmBonus","crmBonusService","CrmBonusService","getInstance","birthDate","document","name","phone","defaultStyles","resetBonus","crmBonusRef","processBonus","buildProducts","err","loading","setStep","StepFormEnum","STEP_PHONE","setloading","loading_reprocess","reprocess","isUse","localStorage","getItem","USED_KEY","cartWake","getCart","debug","message","window","addEventListener","async","querySelectorAll","forEach","el","observerHandle","i18next","changeLanguage","language","componentDidLoad","loadSession","handleLoad","loadConfigStore","error","elements","getElementsByTagName","href","setTimeout","customization","infoBonus","Promise","all","getCustomization","store","getInfoBonusByCartIdAndStoreName","id","reservedInfo","keepStoreFrontStyle","styles","fetchCustomer","userId","storeName","getCustomer","user","then","customer","amount","canCancel","amountCancel","buildAndGetProducts","cart","CartWake","JSON","parse","session","getToken","productsString","stringify","setItem","products_in_cache","product_cart","pro","p","Object","assign","sendPin","_phone","replace","Number","sent","STEP_PIN","showModal","_b","_a","response","sendPinName","customerName","handleCloseModal","save","cancel","removeItem","handleSendPin","STEP_NAME","canhidden","text","customStyles","style","position","ref","cartId","loadProducts","loadAll","crmButtonCss","CrmButtonStyle0","Button","class","onClick","handleClick","txtBtn","size","color","giftbackFormCss","CrmGiftbackFormStyle0","STEP_RESERVE","step","hasNewProduct","sucess","_bonus","getKeyReserveByCartId","bonus","storeId","pinInfo","validateBonus","config","getInfoCustomization","phoneAgain","getPhoneNumberAgain","consulta_bonus","hasBonus","convertStringToNumber","pinInfoCache","_c","changePhone","pin","loadingAllComponent","used_or_no","metadata","_d","_f","_e","cellphone","_h","_g","payload","checkoutId","checkoutProducts","_j","validatePinBonus","STEP_NO_BONUS","bonusBalance","updateMetadata","_error","_l","_k","_m","statusCode","isExpired","persisteMetadata","createdAt","now","url","location","handleCancel","reserveApply","reserve","redeemedBonus","ticket","grossValue","totalValue","giftbackTitle","handlerSubmit","resend","validate","t","storename","infoCircleSvgrepoComSvg","crmTooltipCss","CrmTooltipStyle0","Tooltip","src","info","identity","giftbackInfoCss","GiftbackInfoStyle0","GiftbackInfo","totalBonus","minimumPurchase","calculatedValue","firstValidityDate","changedBonus","updateBonus","usedValue","buildPositionSlider","selectedOption","handleSliderChange","event","input","target","parseFloat","min","max","_refIinputRange","percentage_init","percentage","sliderPosition","sliderValuePosition","handleOptionChange","option","showTime","expiration","setMinutes","getMinutes","remainingGiftback","translateDescription","toFixed","custom_name","limit","defineLimit","innerHTML","formatDateToBr","left","disabled","type","onInput","background","isComplete","checked","onChange","reload","isBonusProcessed","loadingContainerCss","LoadingContainerStyle0","LoadingContainer","loadingSpinnerCss","LoadingSpinnerStyle0","LoadingSpinner","width","height","borderColor","PhoneFormStyle0","PhoneForm","handlePhone","phoneInputMask","getPhone","Host","initialValue","btnApplyBonusLabel","phoneInputMaskCss","PhoneInputMaskStyle0","PhoneInputMask","formatPhone","cleaned","match","part1","part2","part3","handleInput","validatePhoneNumber","MESSAGE_ERROR_INVALID_NUMBER","phoneRegex","test","placeholder","pinFormCss","PinFormStyle0","PinFormStyle1","GiftbackPin","canResend","index","slice","nextInput","nextElementSibling","focus","validatePin","join","verifyPin","pinCode","isVerified","handleTimeout","handleResend","buildTime","resendDate","date","setSeconds","getSeconds","map","_","maxLength"],"sources":["src/components/countdown-timer/countdown-timer.tsx","src/dto/validate.pin.bonus.ts","src/helpers/build.payload.helper.ts","src/components/crm-bonus/crm-bonus.css?tag=crm-bonus&encapsulation=shadow","src/components/crm-bonus/crm-bonus.tsx","src/components/button/crm-button.css?tag=crm-button","src/components/button/index.tsx","src/components/giftback-form/giftback-form.css?tag=crm-giftback-form","src/components/giftback-form/giftback-form.tsx","src/assets/svg/info-circle-svgrepo-com.svg","src/components/tooltip/crm-tooltip.css?tag=crm-tooltip","src/components/tooltip/tooltip.tsx","src/components/giftback-form/subcomponents/giftback-info/giftback-info.css?tag=giftback-info","src/components/giftback-form/subcomponents/giftback-info/giftback-info.tsx","src/components/loading-container/loading-container.css?tag=loading-container","src/components/loading-container/loading-container.tsx","src/components/loading-spinner/loading-spinner.css?tag=loading-spinner&encapsulation=shadow","src/components/loading-spinner/loading-spinner.tsx","src/components/giftback-form/giftback-form.css?tag=phone-form","src/components/giftback-form/subcomponents/phone-form/phone-form.tsx","src/components/phone/phone-input-mask.css?tag=phone-input-mask&encapsulation=shadow","src/components/phone/phone-input-mask.tsx","src/components/giftback-form/subcomponents/pin-form/pin-form.css?tag=pin-form&encapsulation=shadow","src/components/giftback-form/giftback-form.css?tag=pin-form&encapsulation=shadow","src/components/giftback-form/subcomponents/pin-form/pin-form.tsx"],"sourcesContent":["import { Component, Prop, State, h } from '@stencil/core';\n\n@Component({\n tag: 'countdown-timer',\n})\nexport class CountdownTimer {\n\n @Prop() downtime: () => void;\n @Prop() dataCriacao: string;\n @Prop() minutos: number = 6;\n @Prop() segundos: number = 60;\n\n @State() tempoRestante: number; // em milissegundos\n\n private intervalId: any;\n\n componentWillLoad() {\n const tempoTotal = this.minutos * this.segundos * 1000;\n const data = new Date(this.dataCriacao);\n const agora = new Date();\n const tempoPassado = agora.getTime() - data.getTime();\n\n if (tempoPassado >= tempoTotal) {\n this.tempoRestante = 0;\n this.onTempoEsgotado();\n } else {\n this.tempoRestante = tempoTotal - tempoPassado;\n this.startCountdown();\n }\n }\n\n disconnectedCallback() {\n clearInterval(this.intervalId);\n }\n\n startCountdown() {\n this.intervalId = setInterval(() => {\n this.tempoRestante -= 1000;\n if (this.tempoRestante <= 0) {\n this.tempoRestante = 0;\n clearInterval(this.intervalId);\n this.onTempoEsgotado();\n }\n }, 1000);\n }\n\n onTempoEsgotado() {\n console.log('Tempo esgotado! Executando ação...');\n this.downtime()\n }\n\n render() {\n const minutos = Math.floor(this.tempoRestante / 60000);\n const segundos = Math.floor((this.tempoRestante % 60000) / 1000);\n const tempoFormatado = `${String(minutos).padStart(2, '0')}:${String(segundos).padStart(2, '0')}`;\n\n return (\n <label> {tempoFormatado}</label>\n );\n }\n}\n","export interface IProduct {\n productVariantId: string;\n sku: string;\n value: number;\n originalValue: number;\n quantity: number;\n discount: number;\n promotion_product: boolean;\n}\n\nexport enum AjustesTipoEnum {\n P = \"Promocao\",\n CC = \"ContaCorrente\",\n PP = \"PromocaoProduto\",\n F = \"Formula\"\n}\n\nexport interface IAjustes {\n Tipo: AjustesTipoEnum;\n Valor: number;\n}\n\nexport interface IUser {\n id: number;\n}\n\nexport interface IStore {\n name: string;\n}\n\nexport interface IProductWake {\n ProdutoVarianteId: number;\n SKU: string;\n PrecoPor: number;\n PrecoDe: number;\n Quantidade: number;\n Ajustes: IAjustes[];\n}\n\nexport interface ICustomer {\n birthDate: string;\n document: string;\n name: string;\n phone: string;\n}\n\nexport interface IProccesPinBonusDto {\n storeName: string;\n name: string;\n checkoutId: string;\n checkoutProducts: Array<IProduct>;\n storeId: string;\n userId: string;\n cellphone: number;\n pin: string;\n\n}\n\nexport interface IBonus {\n hasBonus: boolean;\n bonusBalance: number;\n totalBonus: number;\n minimumPurchase: number;\n bonusIds: string;\n firstValidityDate: string\n history: [\n {\n validityStart: string;\n validityEnd: string;\n value: number\n },\n {\n validityStart: string;\n validityEnd: string\n value: number\n }\n ]\n storeId: number;\n userId: number;\n cartId: string\n calculatedValue: number;\n totalValue: number\n}\n\n\nexport interface IReserveDTO {\n storeName: string;\n cartId: string;\n grossValue: number;\n redeemedBonus: number;\n ticket: string;\n storeId: string;\n userId: number;\n}","import { AjustesTipoEnum, IAjustes, IProduct, IProductWake } from \"../dto/validate.pin.bonus\";\n\nexport function buildProductsByWake(productsWake: Array<IProductWake> = []): Array<IProduct> {\n\n const products: Array<IProduct> = [];\n\n for ( const pw of productsWake ) {\n \n // let discounts_formula = getDiscountFormula(pw.Ajustes);\n\n const hasOriginalPrice = (pw.PrecoDe < pw.PrecoPor);\n const hasDiscountInProduct = (pw.PrecoPor < pw.PrecoDe);\n const existsPromotionProduct = pw.Ajustes.filter(adj => [AjustesTipoEnum.PP].includes(adj.Tipo))\n const promotion_product = (existsPromotionProduct.length > 0)\n\n let discounts = getDiscount(pw.Ajustes, hasOriginalPrice);\n\n let price = hasOriginalPrice ? pw.PrecoPor : pw.PrecoDe;\n const priceOrignal = hasOriginalPrice ? pw.PrecoPor : pw.PrecoDe;\n\n if(!promotion_product && hasDiscountInProduct) {\n price = pw.PrecoPor;\n }\n\n var value = (price * pw.Quantidade);\n var originalValue = (priceOrignal * pw.Quantidade);\n\n var discounts_value = (discounts * -1); \n\n products.push(\n {\n sku: pw.SKU,\n value: value,\n originalValue: originalValue,\n productVariantId: pw.ProdutoVarianteId.toString(),\n quantity: pw.Quantidade,\n discount: value < discounts_value ? value : discounts_value,\n promotion_product,\n }\n )\n }\n\n return products;\n}\n\nfunction getDiscount(ajustes: IAjustes[] = [], hasOriginalPrice: boolean) {\n \n let discounts = 0;\n const config_ajustes = [AjustesTipoEnum.P, AjustesTipoEnum.CC];\n\n if(!hasOriginalPrice) {\n config_ajustes.push(AjustesTipoEnum.PP);\n }\n\n for(const discount of ajustes) {\n if(config_ajustes.includes(discount.Tipo)) {\n discounts += discount.Valor;\n }\n }\n\n return discounts;\n}\n","\n.container-button {\n /* max-width: 100%; */\n cursor: pointer;\n padding: 5px 5px 5px 14px;\n /* display: flex; */\n}\n\n/* padding: 0 15px 15px;\nborder: 1px solid #ddd;\nmargin-bottom: 20px; */\n\n.section-crm {\n border: 1px solid #dbd4d4;\n /* min-height: 50px; */\n text-align: -webkit-center;\n margin-bottom: 20px;\n}\n\n.section-cart-crm {\n margin-top: 10px;\n}\n\n.section-cart-crm p {\n padding: 0;\n margin: 0px 0px 0px 15px;\n}\n\n.button {\n top: 50%;\n background-color: #6c6c7e;\n color: #fff;\n border: none;\n /* border-radius: 10px; */\n padding: 15px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 20px; */\n cursor: pointer;\n margin-left: 10px;\n height: 70px;\n}\n\n.form-container {\n width: 97%;\n display: flex;\n justify-content: space-around;\n}\n\n\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n /* font-size: 14px; */\n font-weight: 400;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 0px;\n}\n\n.form-container .btnCrm {\n background: #00162e;\n border-color: #00162e;\n width: 30%;\n color: #fff;\n}\n\n.message-alert {\n color: #df4d4d;\n margin-top: 5px;\n}","import { Component, Method, Prop, State, h } from '@stencil/core';\nimport { IProduct, IProductWake, ICustomer } from '../../dto/validate.pin.bonus';\nimport { CrmBonusService } from '../../services/crmbonus.service';\nimport { IPinSent } from '../../components';\nimport { defaultStyles, StepFormEnum } from '../../contants';\n\nimport i18next from '../../i18n/i18n'\nimport { buildProductsByWake } from '../../helpers/build.payload.helper';\nimport { getCart, getInfoBonusByCartIdAndStoreName } from '../../helpers/cart.helper';\nimport { CartWake } from '../../objectvalues/cart.wake';\nimport { USED_KEY } from '../../utils/keys.storage';\nimport { ReservedInfoDTO } from '../../dto/reserved-info.dto';\n\n@Component({\n tag: 'crm-bonus',\n styleUrl: 'crm-bonus.css',\n assetsDirs: ['assets'],\n // scoped: true\n shadow: true\n})\nexport class CrmBonus {\n\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\n\n private crmBonusRef: HTMLCrmGiftbackFormElement;\n\n @Prop() cart;\n @Prop() canhidden: boolean = false;\n\n @State() showModal: boolean = false;\n\n @State() cartWake: CartWake;\n\n @State() customer: ICustomer = {\n birthDate: \"\",\n document: \"\",\n name: \"\",\n phone: \"\"\n };\n\n @State() loading: boolean = false;\n @State() message: string;\n @State() phone: number;\n @State() canCancel: boolean = false;\n @State() amountCancel: string;\n @State() sent: IPinSent;\n\n @State() session: string;\n @State() loading_reprocess = false;\n @State() styles = defaultStyles;\n @State() reservedInfo: ReservedInfoDTO;\n\n @Method()\n async resetBonus() {\n console.log('[CRMBONUS] - reset bonus');\n\n try {\n await this.crmBonusRef.processBonus(this.buildProducts(), true);\n console.log('[BONUS RESETADO]!!!!!');\n } catch (err) {\n\n this.loading = false;\n console.log('[error ao reprocessar bonous]');\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PHONE);\n } finally {\n this.loading = false;\n }\n }\n\n @Method()\n async setloading() {\n this.loading_reprocess = !this.loading_reprocess;\n }\n\n @Method()\n async reprocess() {\n console.log(\"[CRMBONUS] - reprocess\")\n this.loading_reprocess = true\n\n try {\n\n const isUse = localStorage.getItem(USED_KEY);\n\n if (!isUse) return;\n\n this.cartWake = await getCart();\n await this.resetBonus();\n } catch (err) {\n console.debug('[watchProducts]', err.message);\n } finally {\n this.loading_reprocess = false\n }\n }\n\n async componentWillLoad() {\n this.loading_reprocess = true;\n window.addEventListener('productRemovedFromCart', async () => {\n console.log('[CRMBONUS] - productRemovedFromCart');\n await this.reprocess()\n });\n\n window.addEventListener('productAddedToCart', async () => {\n console.log('[CRMBONUS] - productAddedToCart');\n await this.reprocess();\n });\n\n document.querySelectorAll('form').forEach((el) => {\n el.addEventListener(\"submit\", async () => {\n console.log(\"[CRMBONUS] - Formulário está sendo submetido!\");\n await this.reprocess();\n });\n });\n\n await this.observerHandle();\n\n i18next.changeLanguage(i18next.language);\n }\n\n async componentDidLoad() {\n try {\n await this.loadSession();\n this.handleLoad();\n await this.loadConfigStore();\n } catch (error) {\n console.log('bc:err....')\n } finally {\n this.loading_reprocess = false;\n }\n }\n\n private async observerHandle() {\n const elements = document.getElementsByTagName('a');\n\n //@ts-ignore\n for (let el of elements) {\n console.log('[el.href]', el.href);\n if (el.href.includes('Produto/Delete')) {\n el.addEventListener('click', async () => {\n console.log('[CRMBONUS] - Produto removido do carrinho');\n\n setTimeout(async () => {\n await this.reprocess();\n this.observerHandle();\n }, 2000);\n\n });\n }\n\n if (el.href.includes('Produto/Add')) {\n el.addEventListener('click', async () => {\n console.log('[CRMBONUS] - Produto adicionado ao carrinho');\n setTimeout(async () => {\n await this.reprocess();\n this.observerHandle();\n }, 2000);\n });\n }\n }\n }\n\n async loadConfigStore() {\n const [customization, infoBonus] = await Promise.all([\n this.crmBonusService.getCustomization(this.cartWake.store.name),\n getInfoBonusByCartIdAndStoreName(this.cartWake.id, this.cartWake.store.name)\n ]);\n\n this.reservedInfo = infoBonus;\n\n if (customization.keepStoreFrontStyle) {\n this.styles = null;\n }\n }\n\n async fetchCustomer(userId: number, storeName: string) {\n try {\n return await this.crmBonusService.getCustomer(userId, storeName);\n } catch (error) {\n console.error('[fetchCustomer] Error fetching customer:', error);\n return null;\n }\n }\n\n async handleLoad() {\n try {\n if (this.cartWake.user.id) {\n this.fetchCustomer(this.cartWake.user.id, this.cartWake.store.name).then((customer) => {\n if (customer) {\n this.customer = customer;\n }\n });\n }\n\n const amount = localStorage.getItem(this.cartWake.id);\n\n if (amount) {\n this.canCancel = true;\n this.amountCancel = amount;\n }\n\n await this.buildAndGetProducts(this.cartWake.products);\n } catch (error) {\n console.log('info customer')\n }\n }\n\n async loadSession() {\n this.cartWake = this.cart ? new CartWake(JSON.parse(this.cart)) : await getCart();\n console.log('[bc:carregou carrinho]');\n\n this.session = await this.crmBonusService.getToken(this.cartWake.store.name);\n console.log('[bc:carregou session]');\n setTimeout(() => {\n this.loadSession()\n }, 1500000)\n }\n\n async buildAndGetProducts(productsWake: IProductWake[]) {\n\n const key = `bc-products:${this.cartWake.id}`;\n\n const productsString = JSON.stringify(productsWake)\n\n localStorage.setItem(key, productsString);\n\n const products_in_cache = JSON.parse(localStorage.getItem(key));\n\n const products: Array<IProductWake> = []\n\n for (const product_cart of productsWake) {\n\n const [pro] = products_in_cache.filter(p => p.ProdutoVarianteId == product_cart.ProdutoVarianteId)\n\n //const [ajuste = { Valor: 0 }] = pro.Ajustes.filter(aj => aj.Tipo === \"Formula\")\n\n if (pro) {\n products.push({\n ...product_cart,\n PrecoPor: pro.PrecoPor,\n PrecoDe: pro.PrecoDe,\n Quantidade: pro.Quantidade,\n Ajustes: pro.Ajustes\n })\n } else {\n products.push(product_cart)\n }\n\n }\n\n this.cartWake.products = products; //cache_products ? JSON.parse(cache_products) : JSON.parse(this.productsInString);\n\n }\n\n public async sendPin(phone: string) {\n this.loading = true;\n this.message = \"\";\n\n try {\n\n const _phone = phone.replace(/\\D/g, '');\n this.phone = Number(_phone);\n\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);;\n\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\n\n this.showModal = true;\n } catch (error) {\n this.message = error?.response?.data?.message\n } finally {\n this.loading = false\n }\n }\n\n public async sendPinName(customerName: string) {\n this.loading = true;\n this.message = \"\";\n\n try {\n this.customer.name = customerName;\n\n this.sent = await this.crmBonusService.sendPin(this.phone, this.customer.name, this.cartWake.store.name);\n\n await this.crmBonusRef.setStep(StepFormEnum.STEP_PIN);\n\n this.showModal = true;\n } catch (error) {\n this.message = error?.response?.data?.message\n } finally {\n this.loading = false\n }\n }\n\n buildProducts(): IProduct[] {\n return buildProductsByWake(this.cartWake.products);\n }\n\n handleCloseModal() {\n this.showModal = false;\n }\n\n save(amount: number) {\n localStorage.setItem(this.cartWake.id, amount.toString());\n this.canCancel = true;\n this.amountCancel = amount.toString()\n }\n\n async cancel() {\n this.message = \"\";\n this.loading = true;\n try {\n await this.crmBonusService.cancel(this.cartWake.id);\n this.canCancel = false;\n\n localStorage.removeItem(this.cartWake.id);\n } catch (error) {\n this.message = \"Não consegui cancelar o bônus, tente novamente!\"\n } finally {\n this.loading = false;\n }\n }\n\n async handleSendPin(phone: string) {\n this.message = \"\"\n if (!phone) {\n this.message = \"Informe seu telefone\";\n return;\n }\n\n this.customer.phone = phone;\n const _phone = phone.replace(/\\D/g, '');\n this.phone = Number(_phone);\n\n if (this.customer.name) {\n return this.sendPin(phone)\n }\n\n await this.crmBonusRef.setStep(StepFormEnum.STEP_NAME);\n this.showModal = true;\n }\n\n render() {\n\n if (this.canhidden) {\n return null;\n }\n\n return (\n <loading-container loading={this.loading_reprocess} text='carregando...' >\n \n {\n !this.loading_reprocess && (\n <crm-giftback-form\n customStyles={this.styles}\n style={{ position: \"relative\" }}\n ref={ref => this.crmBonusRef = ref}\n storeName={this.cartWake.store.name}\n products={this.buildProducts()}\n cartId={this.cartWake.id}\n customer={this.customer}\n loadProducts={() => this.buildProducts()}\n loadAll={() => this.handleLoad()}\n reservedInfo={this.reservedInfo}\n />\n )\n }\n </loading-container>\n )\n }\n}\n","input, button {\n margin: 0;\n padding: 10px; /* Ajuste o valor conforme necessário */\n}\n\n.crm-contaner-button {\n height: auto;\n width: auto;\n}\n\n.crm-button {\n height: 48px;\n width: 100%;\n border: 1px solid #000;\n padding: 14px 20px;\n background-color: #000;\n color: #fff;\n /* font-size: 14px; */\n line-height: 20px;\n font-weight: 500;\n cursor: pointer;\n}","import { Component, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: 'crm-button',\n styleUrl: 'crm-button.css'\n})\nexport class Button {\n\n @Prop() txtBtn: string;\n @Prop() loading: boolean;\n\n @Prop() handleClick: () => void;\n\n render() {\n return (\n <div class=\"crm-contaner-button\">\n <button class=\"crm-button\" onClick={() => this.handleClick()}>\n {\n !this.loading ? this.txtBtn : <loading-spinner size=\"15px\" color=\"#fff\" />\n }\n </button>\n </div>\n )\n }\n}","* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n:host {\n --crmfont-sizebodymd: 14px;\n --crmline-heightbodymd: 20px;\n --crmletter-spacingtitle-md: 0px\n}\n\n.container-message {\n /* font-size: var(--crmfont-sizebodymd); */\n font-weight: 400;\n line-height: var(--crmline-heightbodymd);\n letter-spacing: var(--crmletter-spacingtitle-md);\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.crm-container-form {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n height: auto;\n padding: 20px 24px 20px 24px;\n border: 1px solid #CCCC;\n writing-mode: horizontal-tb;\n gap: 16px;\n border-top: 1px solid #ccc !important;\n border-bottom: 1px solid #ccc !important;\n}\n\n/* .fbits-responsive-carrinho-desconto {\n overflow: hidden;\n border: 1px solid #ccc;\n border-top: 0;\n border-bottom: 0;\n} */\n\n.crm-phone-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n /* justify-content: space-around; */\n gap: 16px;\n}\n\n.crm-subtitle {\n /* font-size: 14px; */\n font-size: .875rem;\n line-height: 1.25rem;\n \n}\n\n.crm-title {\n font-weight: 700;\n line-height: 20px;\n color: #262626;\n /* font-size: 16px; */\n}\n\n.crm-message-info {\n color: #619013;\n font-weight: 500;\n /* font-size: 12px; */\n}\n\n.crm-message-error {\n color: #E11D48;\n font-weight: 500;\n /* font-size: 12px; */\n}","import { Component, Method, Prop, State, h } from \"@stencil/core\";\nimport { CrmBonusService } from \"../../services/crmbonus.service\";\nimport { StepFormEnum } from \"../../contants\";\nimport { IPinSent } from '../../dto/pin.sent'\nimport { IBonus, ICustomer, IProccesPinBonusDto, IProduct } from \"../../dto/validate.pin.bonus\";\nimport { IInfoStore, getInfoCustomization } from \"../../helpers/info.config.helper\";\n\nimport i18next from \"../../i18n/i18n\"\nimport { USED_KEY, getKeyReserveByCartId } from \"../../utils/keys.storage\";\nimport { persisteMetadata } from \"../../helpers/cart.helper\";\nimport { ReservedInfoDTO } from \"../../dto/reserved-info.dto\";\n\n@Component({\n tag: 'crm-giftback-form',\n styleUrl: 'giftback-form.css',\n shadow: false\n})\nexport class CrmBonus {\n // private phoneInputMask: HTMLPhoneFormElement;\n\n private crmBonusService: CrmBonusService = CrmBonusService.getInstance();\n\n @Prop({ attribute: 'storename' }) storeName;\n @Prop() cartId;\n @Prop() products: Array<IProduct>;\n @Prop() customer: ICustomer;\n @Prop() loadProducts: () => void;\n @Prop() loadAll: () => void;\n\n @Prop() customStyles;\n @Prop() reservedInfo: ReservedInfoDTO;\n\n @State() value: string;\n @State() loading: boolean = false;\n @State() message: string;\n @State() phone: string;\n @State() pinInfo: IPinSent;\n @State() step: StepFormEnum = StepFormEnum.STEP_RESERVE;\n @State() bonus: IBonus;\n\n @State() sucess: string = \"\";\n @State() error: string = \"\";\n @State() config: IInfoStore;\n @State() hasApplyBonus = false;\n\n @State() loadingAllComponent = false;\n\n @Method()\n async setStep(step: StepFormEnum) {\n this.step = step\n }\n\n @Method()\n async processBonus(products: IProduct[] = [], hasNewProduct = false) {\n await this.loadProducts();\n this.sucess = \"\";\n\n if (hasNewProduct) {\n this.products = products;\n }\n\n const _bonus = localStorage.getItem(getKeyReserveByCartId(this.cartId));\n console.log('[_bonus]', _bonus);\n if (_bonus) {\n\n const bonus = JSON.parse(_bonus)\n \n if(!bonus.storeId || !bonus.userId) {\n return;\n }\n\n this.bonus = bonus;\n\n this.phone = bonus.phone;\n this.pinInfo = {\n storeId: bonus.storeId,\n userId: bonus.userId\n }\n\n await this.validateBonus(\"2018\");\n }\n }\n\n async handleSendPin(phone: string) {\n await this.loadAll()\n this.message = \"\"\n if (!phone) {\n this.message = \"Informe seu telefone\";\n return;\n }\n\n this.phone = phone;\n\n this.sendPin();\n }\n\n async componentWillLoad() {\n this.sucess = \"\";\n this.error = \"\"\n this.config = getInfoCustomization(this.storeName);\n\n const phoneAgain = this.getPhoneNumberAgain();\n\n if (phoneAgain) {\n this.step = StepFormEnum.STEP_PHONE;\n return\n }\n\n await this.processBonus();\n\n }\n\n getPhoneNumberAgain() {\n const consulta_bonus = localStorage.getItem(getKeyReserveByCartId(this.cartId));\n\n if (!consulta_bonus) return true;\n\n const bonus = JSON.parse(consulta_bonus);\n\n return !bonus.hasBonus;\n }\n\n private convertStringToNumber(): number {\n const _phone = this.phone?.replace(/\\D/g, '');\n return Number(_phone);\n }\n\n public async sendPin() {\n this.loading = true;\n this.message = \"\";\n this.sucess = \"\";\n this.error = \"\"\n\n try {\n\n const _phone = this.convertStringToNumber();\n const pinInfoCache = localStorage.getItem(`bc:${this.phone}`);\n\n if (!pinInfoCache) {\n this.pinInfo = await this.crmBonusService.sendPin(_phone, this.customer?.name, this.storeName);\n }\n\n if (pinInfoCache) {\n\n const bonus = JSON.parse(pinInfoCache);\n\n this.pinInfo = {\n storeId: bonus.storeId,\n userId: bonus.userId\n }\n\n await this.validateBonus(\"2018\");\n // this.step = StepFormEnum.STEP_RESERVE;\n } else {\n this.step = StepFormEnum.STEP_PIN;\n }\n\n } catch (error) {\n this.message = error?.response?.data?.message\n } finally {\n this.loading = false\n }\n }\n\n changePhone() {\n this.sucess = \"\";\n this.error = \"\"\n this.step = StepFormEnum.STEP_PHONE;\n }\n\n public async validateBonus(pin: string) {\n this.loadingAllComponent = true;\n await this.loadProducts();\n\n const used_or_no = localStorage.getItem(USED_KEY);\n\n if (used_or_no == \"dontUse\") {\n this.step = StepFormEnum.STEP_RESERVE;\n return\n }\n\n this.loading = true;\n this.sucess = \"\";\n this.error = \"\";\n\n const storeId = this.pinInfo?.storeId || this.reservedInfo?.metadata?.storeId;\n const userId = this.pinInfo?.userId || this.reservedInfo?.metadata?.userId;\n const cellphone = this.reservedInfo?.metadata?.cellphone;\n\n const payload: IProccesPinBonusDto = {\n pin: pin,\n cellphone: cellphone || this.convertStringToNumber(),\n storeId: storeId?.toString(),\n userId: userId?.toString(),\n checkoutId: this.cartId,\n checkoutProducts: this.products,\n name: this.customer?.name,\n storeName: this.storeName\n }\n\n try {\n this.bonus = await this.crmBonusService.validatePinBonus(payload);\n\n if (!this.bonus.hasBonus) {\n\n localStorage.setItem(getKeyReserveByCartId(this.cartId), JSON.stringify({ ...this.bonus, phone: this.phone }));\n\n this.loading = false;\n this.step = StepFormEnum.STEP_NO_BONUS;\n return\n }\n\n this.sucess = \"Código validado com sucesso!\";\n localStorage.setItem(getKeyReserveByCartId(this.cartId), JSON.stringify({ ...this.bonus, phone: this.phone }));\n localStorage.setItem(`bc:${this.phone}`, JSON.stringify(this.bonus));\n\n localStorage.setItem(USED_KEY, \"use\");\n localStorage.setItem(this.cartId, this.bonus.bonusBalance.toString());\n\n this.updateMetadata({ storeId: Number(storeId), userId: Number(userId) }, payload.cellphone);\n\n console.log('RESERVE', this.bonus)\n this.step = StepFormEnum.STEP_RESERVE;\n\n } catch (error) {\n const _error: string = error?.response?.data?.response;\n const response = error?.response?.data;\n\n if (_error && _error.includes(\"Pin\")) {\n this.error = \"Código inválido!\"\n } else if ([403, 500].includes(response.statusCode)) {\n this.error = \"ocorreu um error, atualize a pagina e tente novamente!\"\n } else {\n this.error = _error;\n this.step = StepFormEnum.STEP_NO_BONUS;\n }\n } finally {\n this.loading = false;\n this.loadingAllComponent = false;\n }\n }\n\n private async updateMetadata(pinInfo: IPinSent, cellphone: number) {\n try {\n if (this.reservedInfo.isExpired()) {\n console.log('[CRM:updateMetadata]')\n await persisteMetadata(this.storeName, this.cartId, {\n createdAt: Date.now(),\n url: window.location.href,\n storeId: pinInfo.storeId,\n userId: pinInfo.userId,\n cellphone: cellphone,\n });\n\n localStorage.removeItem(\"bc:time\");\n } else {\n await persisteMetadata(this.storeName, this.cartId, {\n url: window.location.href,\n storeId: pinInfo.storeId,\n userId: pinInfo.userId,\n cellphone: cellphone,\n });\n }\n } catch (error) {\n console.error('[CRMBONUS:updateMetadata]: ', error);\n }\n }\n\n public handleCancel() {\n // this.step = StepFormEnum.STEP_PHONE;\n this.cancel()\n }\n\n async cancel() {\n this.message = \"\";\n this.loading = true;\n try {\n await this.crmBonusService.cancel(this.cartId);\n\n localStorage.setItem(USED_KEY, \"dontUse\");\n // this.save(0)\n await this.updateMetadata({ storeId: null, userId: null }, null);\n } catch (error) {\n this.message = \"Não consegui cancelar o bônus, tente novamente!\"\n } finally {\n this.loading = false;\n }\n }\n\n public async reserveApply(amount: number) {\n this.loading = true;\n this.message = \"\";\n try {\n await this.reserve(amount);\n // this.save(amount);\n\n } catch (error) {\n this.message = \"ocorreu um error ao solicitar a aplicação do bonus! tente novamente\"\n\n this.step = StepFormEnum.STEP_NO_BONUS;\n localStorage.removeItem(this.cartId);\n } finally {\n this.loading = false;\n }\n }\n\n // save(amount: number) {\n // localStorage.setItem(this.cartId, amount.toString());\n // }\n\n public async reserve(amount: number) {\n\n await this.crmBonusService.reserve({\n redeemedBonus: amount,\n cartId: this.cartId,\n ticket: this.cartId,\n grossValue: Number(this.bonus.totalValue),\n storeName: this.storeName,\n storeId: this.bonus.storeId.toString(),\n userId: this.bonus.userId\n });\n }\n\n render() {\n return (\n <div class=\"crm-container-form fbits-responsive-carrinho-desconto\" style={this.customStyles} >\n \n <label class=\"crm-title\">{this.config.giftbackTitle}</label>\n\n {\n this.error && (<label class=\"crm-message-error\">{this.error}</label>)\n }\n\n {this.step === StepFormEnum.STEP_PHONE &&\n <phone-form\n value={this.customer.phone}\n config={this.config}\n loading={this.loading}\n handlerSubmit={(phone) => this.handleSendPin(phone)}\n />}\n {\n this.step === StepFormEnum.STEP_PIN &&\n <pin-form\n config={this.config}\n phone={this.phone}\n cancel={() => this.changePhone()}\n resend={() => this.sendPin()}\n validate={(data) => this.validateBonus(data)}\n loading={this.loading}\n >\n {this.sucess && <p class=\"crm-message-info\">{this.sucess}</p>}\n {this.error && <p class=\"crm-message-error\">{this.error}</p>}\n\n </pin-form>\n }\n\n {\n this.step === StepFormEnum.STEP_RESERVE &&\n <giftback-info\n storeName={this.storeName}\n infoBonus={this.reservedInfo}\n config={this.config}\n loading={this.loading}\n cancel={() => this.handleCancel()}\n bonus={this.bonus}\n reserve={() => this.processBonus()}\n cartId={this.cartId}\n />\n }\n\n {\n this.step === StepFormEnum.STEP_NO_BONUS &&\n (\n <div class=\"container-message\">\n {i18next.t(\"noGiftback\", { storename: this.config.giftbackTitle })}\n </div>\n )\n\n }\n </div>\n )\n }\n}","<?xml version=\"1.0\" encoding=\"utf-8\"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\r\n<svg width=\"800px\" height=\"800px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M12 17.75C12.4142 17.75 12.75 17.4142 12.75 17V11C12.75 10.5858 12.4142 10.25 12 10.25C11.5858 10.25 11.25 10.5858 11.25 11V17C11.25 17.4142 11.5858 17.75 12 17.75Z\" fill=\"#1C274C\"/>\r\n<path d=\"M12 7C12.5523 7 13 7.44772 13 8C13 8.55228 12.5523 9 12 9C11.4477 9 11 8.55228 11 8C11 7.44772 11.4477 7 12 7Z\" fill=\"#1C274C\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.25 12C1.25 6.06294 6.06294 1.25 12 1.25C17.9371 1.25 22.75 6.06294 22.75 12C22.75 17.9371 17.9371 22.75 12 22.75C6.06294 22.75 1.25 17.9371 1.25 12ZM12 2.75C6.89137 2.75 2.75 6.89137 2.75 12C2.75 17.1086 6.89137 21.25 12 21.25C17.1086 21.25 21.25 17.1086 21.25 12C21.25 6.89137 17.1086 2.75 12 2.75Z\" fill=\"#1C274C\"/>\r\n</svg>",".crm-tooltip-container {\n display: flex;\n\n & img {\n width: 16px;\n margin-left: 3px;\n position: relative;\n }\n}\n\n.crm-tooltip {\n position: relative;\n display: inline-block;\n}\n\n.crm-tooltip .tooltiptext {\n visibility: hidden;\n background-color: black;\n color: #fff;\n text-align: center;\n padding: 8px 12px;\n border-radius: 0px;\n position: absolute;\n z-index: 1;\n min-width: 271px;\n top: 100%;\n left: 50%;\n margin-left: -238px;\n}\n\n@container (max-width: 410px) {\n .crm-tooltip .tooltiptext {\n margin-left: -14px;\n }\n\n .crm-tooltip #crm-role-description {\n margin-left: -151px;\n }\n}\n\n@container (max-width: 250px) {\n .crm-tooltip .tooltiptext {\n margin-left: -201px;\n }\n}\n\n.crm-tooltip:hover .tooltiptext {\n visibility: visible;\n}","import { Component, h, Prop } from \"@stencil/core\";\nimport info from '../../assets/svg/info-circle-svgrepo-com.svg';\n\n\n@Component({\n tag: 'crm-tooltip',\n styleUrl: 'crm-tooltip.css'\n})\nexport class Tooltip {\n\n @Prop() text: string;\n @Prop() identity: string;\n\n render() {\n return (\n <div class=\"crm-tooltip-container crm-tooltip\">\n <img src={info} />\n <span id={this.identity} class=\"tooltiptext\">{this.text}</span>\n </div>\n );\n }\n}",":host {\n --text-color: #6D6D5F\n}\n\n.giftback-container {\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\nh3 {\n /* font-size: 1.2rem; */\n margin-bottom: 8px;\n color: #333;\n}\n\n.container-description {\n display: flex;\n align-items: center;\n gap: 5px;\n margin: 0 0 10px 0;\n}\n\n.container-description p {\n /* font-size: 14px; */\n font-weight: 400;\n margin: 0px;\n}\n\n\np {\n /* font-size: 14px; */\n color: #000;\n}\n\n.value-display h2 {\n color: #6D6D5F;\n /* Verde para o valor atual */\n /* font-size: 1.6rem; */\n margin: 16px 0;\n}\n\ninput[type='range'] {\n width: 100%;\n margin: 12px 0;\n -webkit-appearance: none;\n background: #ddd;\n height: 4px;\n border-radius: 4px;\n outline: none;\n padding: 3px 0px 3px 3px;\n}\n\n/* input[type='range']::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 16px;\n height: 16px;\n background: var(--text-color);\n border-radius: 50%;\n cursor: pointer;\n} */\n\ninput[type=\"range\"]::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 20px;\n height: 20px;\n background: rgb(109, 109, 95);\n /* Cor do botão */\n border-radius: 50%;\n cursor: pointer;\n}\n\n.options {\n margin: 0px 0;\n display: flex;\n gap: 10px;\n flex-direction: column;\n}\n\n.options label {\n display: flex;\n margin: 0px 0;\n /* font-size: 0.9rem; */\n color: #333;\n align-items: center;\n}\n\n.options input[type='radio'] {\n margin-right: 8px;\n height: 16px;\n width: 16px;\n}\n\n.options input[type='radio'] {\n appearance: none;\n -webkit-appearance: none;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n border: 2px solid #ddd;\n border-radius: 50%;\n background-color: #fff;\n cursor: pointer;\n transition: all 0.3s;\n padding: 0px;\n}\n\n.options input[type='radio']:checked {\n border-color: #000;\n background-color: #FAFAFA;\n border: 4px solid #000;\n}\n\n.info-box {\n background-color: #f9f9f9;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n padding: 8px;\n /* font-size: 14px; */\n color: #262626;\n line-height: 20px;\n}\n\n.info-icon {\n /* font-size: 0.9rem; */\n cursor: pointer;\n color: #888;\n}\n\nh3 {\n /* font-size: 1.2rem; */\n margin-bottom: 8px;\n color: #333;\n}\n\n.slider-wrapper {\n position: relative;\n margin: 21px 0px 0px 0px;\n}\n\n.slider {\n width: 100%;\n -webkit-appearance: none;\n background: #ddd;\n height: 4px;\n border-radius: 2px;\n outline: none;\n}\n\n.slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 16px;\n height: 16px;\n background: var(--text-color);\n /* Azul para o slider */\n border-radius: 50%;\n cursor: pointer;\n}\n\n.slider-value {\n position: absolute;\n top: -30px;\n /* Posição acima do slider */\n /* font-size: 16px; */\n font-weight: 700;\n color: var(--text-color);\n /* Verde para o texto */\n transform: translateX(-50%);\n white-space: nowrap;\n /* margin-left: 23px; */\n}\n\n.options-option {\n display: flex;\n}\n\n\n/* ########################################## */\n","import { Component, Prop, State, Watch, h } from \"@stencil/core\";\nimport { IBonus } from \"../../../../dto/validate.pin.bonus\";\n\nimport i18next from '../../../../i18n/i18n'\nimport { USED_KEY } from \"../../../../utils/keys.storage\";\nimport { defineLimit, formatDateToBr } from \"../../../../utils/utils\";\nimport { IInfoStore } from \"../../../../helpers/info.config.helper\";\nimport { ReservedInfoDTO } from \"../../../../dto/reserved-info.dto\";\nimport { persisteMetadata } from \"../../../../helpers/cart.helper\";\n\n@Component({\n tag: 'giftback-info',\n styleUrls: ['giftback-info.css']\n})\nexport class GiftbackInfo {\n\n private _refIinputRange: HTMLInputElement;\n\n @State() usedValue: number = 0;\n @State() selectedOption: string = 'none';\n\n @Prop() cartId;\n @Prop() loading: boolean = false;\n @Prop() bonus: Partial<IBonus> = {\n totalBonus: 0,\n cartId: \"\",\n minimumPurchase: 0,\n bonusBalance: 0,\n calculatedValue: 0,\n firstValidityDate: \"\",\n totalValue: 0\n };\n @Prop() reserve: (amountRedeemed: number) => void;\n @Prop() cancel: () => void;\n @Prop() config: IInfoStore;\n @Prop() infoBonus: ReservedInfoDTO;\n @Prop() storeName: string\n\n @State() sliderPosition: number = 0;\n @State() sliderValuePosition: number = 0;\n\n @State() loadingTime = false;\n\n @Watch(\"bonus\")\n changedBonus() {\n this.updateBonus()\n }\n\n private updateBonus() {\n this.usedValue = this.bonus.bonusBalance;\n this.buildPositionSlider(0, this.bonus.totalBonus);\n }\n\n componentWillLoad() {\n this.updateBonus();\n this.selectedOption = localStorage.getItem(USED_KEY);\n }\n\n handleSliderChange(event: Event) {\n const input = event.target as HTMLInputElement;\n this.usedValue = parseFloat(input.value);\n\n // Calculando a posição do texto com base no valor do slider\n // const percentage = ((this.usedValue - parseInt(input.min)) / (parseInt(input.max) - parseInt(input.min))) * 100;\n // this.sliderPosition = percentage;\n\n this.buildPositionSlider(parseFloat(input.min), parseFloat(input.max))\n }\n\n componentDidLoad() {\n if (this.bonus) {\n this._refIinputRange.value = this.bonus?.bonusBalance.toString();\n }\n }\n\n private buildPositionSlider(min: number, max: number) {\n\n const percentage_init = max * 0.1;\n\n // Calculando a posição do texto com base no valor do slider\n const percentage = ((this.usedValue - min) / (max - min)) * 100;\n\n this.sliderPosition = percentage;\n this.sliderValuePosition = percentage + (this.usedValue <= percentage_init ? 10 : 0);\n }\n\n async handleOptionChange(option: string) {\n this.selectedOption = option;\n\n localStorage.setItem(USED_KEY, option);\n\n await persisteMetadata(this.storeName, this.cartId, { ...this.infoBonus.metadata, createdAt: null })\n\n switch (this.selectedOption) {\n case 'use':\n await this.reserve(this.usedValue);\n break;\n case 'dontUse':\n await this.cancel();\n break;\n default:\n }\n }\n\n showTime() {\n if (!this.infoBonus) return false;\n\n return !this.infoBonus.isExpired();\n\n // return this.infoBonus.isBonusProcessed\n }\n\n getTime() {\n\n const createdAt = new Date(this.infoBonus?.metadata?.createdAt);\n const expiration = new Date(createdAt);\n expiration.setMinutes(expiration.getMinutes() + 6);\n\n return {\n createdAt,\n expiration\n }\n }\n\n async downtime() {\n await persisteMetadata(this.storeName, this.bonus.cartId, {\n createdAt: null,\n })\n }\n\n render() {\n console.log('this.bonus', this.bonus)\n const remainingGiftback = this.bonus.minimumPurchase - this.bonus.totalValue;\n\n const translateDescription = i18next.t(\"giftDescription\", { amount: `${this.bonus?.totalBonus?.toFixed(2).replace(\".\", \",\")}`, custom_name: \"Giftback\" })\n\n const limit = defineLimit(remainingGiftback);\n\n return (\n\n <div class=\"giftback-container\">\n <div class=\"container-description\">\n <p innerHTML={translateDescription}></p>\n <crm-tooltip identity=\"crm-role-description\" text={i18next.t(\"labelUseGiftback\", { minimumPurchase: this.bonus.minimumPurchase, expírationDate: formatDateToBr(this.bonus.firstValidityDate) })} />\n </div>\n <div class=\"slider-wrapper\">\n <div\n class=\"slider-value\"\n style={{\n left: `calc(${this.sliderValuePosition}% - 20px)`, // Ajuste para centralizar o texto\n\n }}\n >\n R$ {this.usedValue.toFixed(2).replace(\".\", \",\")}\n </div>\n <input\n ref={ref => this._refIinputRange = ref}\n id=\"position_value_id\"\n disabled\n type=\"range\"\n min=\"0\"\n max={this.bonus.totalBonus}\n value={this.usedValue}\n class=\"slider\"\n step=\"0.01\"\n onInput={(event) => this.handleSliderChange(event)}\n style={{\n background: `linear-gradient(to right, #6D6D5F ${this.sliderPosition}%, #ddd ${this.sliderPosition}%)`,\n }}\n />\n </div>\n\n {\n limit.isComplete && (\n <p>\n {i18next.t(\"maxAmount\")}\n </p>\n )\n }\n\n {\n !limit.isComplete && (\n <div class=\"container-description\">\n <p>\n Adicione <strong>R$ {remainingGiftback < 0 ? \"0,00\" : remainingGiftback.toFixed(2).replace(\".\", \",\")}</strong> ao carrinho para atingir o valor\n máximo!\n </p>\n <crm-tooltip identity=\"crm-max-description\" text={i18next.t(\"labelamountPartial\")} />\n </div>\n )\n }\n\n\n <div class=\"options\">\n <div class=\"options-option\">\n <input\n disabled={this.showTime()}\n type=\"radio\"\n name=\"giftbackOption\"\n value=\"use\"\n checked={this.selectedOption === 'use'}\n onChange={() => this.handleOptionChange('use')}\n />\n <p>Usar o meu {this.config?.giftbackTitle}</p>\n </div>\n <div class=\"options-option\">\n <input\n disabled={this.showTime()}\n type=\"radio\"\n name=\"giftbackOption\"\n value=\"dontUse\"\n checked={this.selectedOption === 'dontUse'}\n onChange={() => this.handleOptionChange('dontUse')}\n />\n <p>Não usar o meu {this.config?.giftbackTitle}</p>\n </div>\n </div>\n\n {\n this.showTime() &&\n (\n <div class=\"info-box\">\n Após <countdown-timer dataCriacao={new Date(this.infoBonus?.metadata?.createdAt).toString()} downtime={() => { window.location.reload() }} />, você poderá alterar sua escolha de usar ou não o Giftback.\n </div>\n )\n }\n\n {\n !this?.infoBonus?.isBonusProcessed && (\n <div class=\"info-box\">\n O Giftback será aplicado na próxima etapa.\n </div>\n )\n }\n\n </div>\n );\n }\n}","/* Estilo para centralizar o container do loading */\n.loading-container {\n position: absolute;\n /* Fixa o loading na tela */\n top: 0;\n left: 0;\n width: 100%;\n /* Tamanho total da tela */\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n /* Fundo semitransparente */\n display: flex;\n /* Centraliza o conteúdo */\n justify-content: center;\n align-items: center;\n z-index: 1000;\n flex-direction: column;\n /* Coloca o loading acima de outros elementos */\n}\n\n.loading-container p {\n margin: 6px 0px;\n color: white;\n font-size: large;\n}\n\n/* Estilo do spinner (círculo giratório) */\n.loading-spinner {\n width: 40px;\n height: 40px;\n border: 5px solid rgba(255, 255, 255, 0.3);\n /* Borda semitransparente */\n border-top: 5px solid white;\n /* Borda que será animada */\n border-radius: 50%;\n /* Faz o círculo */\n animation: spin 1s linear infinite;\n /* Gira continuamente */\n}\n\n/* Keyframes para a animação de rotação */\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.relative-xy {\n position: relative;\n}","import { Component, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: 'loading-container',\n styleUrl: 'loading-container.css'\n})\nexport class LoadingContainer {\n\n @Prop() loading: boolean = true;\n @Prop() text: string = null;\n\n render() {\n return (\n <div class=\"relative-xy\">\n {\n this.loading && (\n <div class=\"loading-container\">\n <div class=\"loading-spinner\"></div>\n {this.text && <p>{this.text}</p>}\n </div>\n )\n }\n <slot></slot>\n </div>\n )\n }\n}",".spinner {\n display: inline-block;\n border: 4px solid transparent;\n border-radius: 50%;\n border-top-color: var(--color, #0078d7);\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'loading-spinner',\n styleUrl: 'loading-spinner.css',\n shadow: true,\n})\nexport class LoadingSpinner {\n @Prop() size: string = '50px'; // Tamanho do spinner (padrão 50px)\n @Prop() color: string = '#0078d7'; // Cor do spinner (padrão azul)\n\n render() {\n return (\n <div class=\"spinner\" style={{ width: this.size, height: this.size, borderColor: `${this.color} transparent transparent transparent` }}></div>\n );\n }\n}\n","* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n:host {\n --crmfont-sizebodymd: 14px;\n --crmline-heightbodymd: 20px;\n --crmletter-spacingtitle-md: 0px\n}\n\n.container-message {\n /* font-size: var(--crmfont-sizebodymd); */\n font-weight: 400;\n line-height: var(--crmline-heightbodymd);\n letter-spacing: var(--crmletter-spacingtitle-md);\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.crm-container-form {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n height: auto;\n padding: 20px 24px 20px 24px;\n border: 1px solid #CCCC;\n writing-mode: horizontal-tb;\n gap: 16px;\n border-top: 1px solid #ccc !important;\n border-bottom: 1px solid #ccc !important;\n}\n\n/* .fbits-responsive-carrinho-desconto {\n overflow: hidden;\n border: 1px solid #ccc;\n border-top: 0;\n border-bottom: 0;\n} */\n\n.crm-phone-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n /* justify-content: space-around; */\n gap: 16px;\n}\n\n.crm-subtitle {\n /* font-size: 14px; */\n font-size: .875rem;\n line-height: 1.25rem;\n \n}\n\n.crm-title {\n font-weight: 700;\n line-height: 20px;\n color: #262626;\n /* font-size: 16px; */\n}\n\n.crm-message-info {\n color: #619013;\n font-weight: 500;\n /* font-size: 12px; */\n}\n\n.crm-message-error {\n color: #E11D48;\n font-weight: 500;\n /* font-size: 12px; */\n}","import { Component, Host, Prop, h } from \"@stencil/core\";\nimport { IInfoStore } from \"../../../../helpers/info.config.helper\";\n\n@Component({\n tag: 'phone-form',\n styleUrl: '../../giftback-form.css',\n shadow: false\n})\nexport class PhoneForm {\n\n private phoneInputMask: HTMLPhoneInputMaskElement;\n\n @Prop() value: string;\n @Prop() loading: boolean;\n @Prop() handlerSubmit: (phone: string) => void;\n\n @Prop() config: IInfoStore;\n\n\n async handlePhone() {\n\n const phone = await this.phoneInputMask.getPhone()\n\n await this.handlerSubmit(phone);\n }\n\n\n render() {\n return (\n <Host class=\"crm-phone-form\">\n <p class=\"crm-subtitle\" >Digite o seu celular para verificar se há desconto disponível nessa compra:</p>\n <phone-input-mask initialValue={this.value} ref={ref => this.phoneInputMask = ref} />\n\n <crm-button txtBtn={this.config?.btnApplyBonusLabel || \"Avançar\"} loading={this.loading} handleClick={() => this.handlePhone() } />\n </Host>\n )\n }\n}","* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.phone {\n display: block;\n width: 100%;\n height: 24px;\n padding: 6px 12px;\n /* font-size: 14px; */\n line-height: 1.42857143;\n color: #555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 0px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n\n\n.phone-input-form {\n width: 100%;\n height: 48px;\n padding: 13px 16px 13px 16px;\n border: 1px solid #CCCCCC;\n /* font-size: 14px; */\n}\n\n.crm-erro-msg {\n color: #E11D48;\n /* font-size: 12px; */\n font-weight: 500;\n margin-top: 11px;\n}\n","import { Component, h, Method, Prop, State } from '@stencil/core';\nimport { MESSAGE_ERROR_INVALID_NUMBER } from '../../contants';\n\n@Component({\n tag: 'phone-input-mask',\n styleUrl: 'phone-input-mask.css',\n shadow: true,\n})\nexport class PhoneInputMask {\n @State() phone: string = '';\n @State() message: string = \"\";\n\n @Prop() initialValue: string;\n @Prop() disabled: boolean;\n\n componentWillLoad() {\n this.phone = this.initialValue;\n }\n\n private formatPhone(value: string): string {\n\n const cleaned = value.replace(/\\D/g, ''); // Remove tudo que não for número\n const match = cleaned.match(/^(\\d{0,2})(\\d{0,5})(\\d{0,4})$/);\n\n if (!match) return value;\n\n const part1 = match[1] ? `(${match[1]}` : '';\n const part2 = match[2] ? `) ${match[2]}` : '';\n const part3 = match[3] ? ` ${match[3]}` : '';\n\n return `${part1}${part2}${part3}`;\n }\n\n private handleInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.phone = this.formatPhone(input.value);\n\n if(!this.validatePhoneNumber(input.value)) {\n this.message = MESSAGE_ERROR_INVALID_NUMBER\n } else {\n this.message = \"\"\n }\n\n console.log('phone', this.phone)\n }\n\n validatePhoneNumber(phone: string): boolean {\n if(phone.length < 15) {\n return true\n }\n const phoneRegex = /^\\(\\d{2}\\) \\d{5} \\d{4}$/; // Valida formato (99) 99999-9999\n return phoneRegex.test(phone);\n }\n\n @Method()\n public async getPhone() {\n return this.phone;\n }\n\n render() {\n return (\n <div>\n <input\n disabled={this.disabled}\n id=\"phone\"\n type=\"text\"\n class=\"phone-input-form\"\n value={this.phone}\n onInput={(event) => this.handleInput(event)}\n placeholder=\"(99) 99999 9999\"\n />\n <p class=\"crm-erro-msg\">{this.message}</p>\n </div>\n\n );\n }\n}\n",":host {\n display: block;\n}\n\n.form-container-pin {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.pin-container {\n display: flex;\n /* margin: 26px 0; */\n justify-content: start;\n gap: 10px;\n}\n\n.pin-container input {\n width: 100%;\n height: 48px;\n /* font-size: 14px; */\n text-align: center;\n border: 1px solid #ccc;\n border-radius: 5px;\n}\n\nbutton {\n padding: 10px 20px;\n background-color: #ddd;\n border: none;\n border-radius: 5px;\n cursor: pointer;\n}\n\n\n.success {\n color: green;\n margin-top: 10px;\n}\n\n.button {\n top: 50%;\n background-color: #6c6c7e;\n color: #fff;\n border: none;\n border-radius: 10px;\n padding: 15px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 20px; */\n cursor: pointer;\n}\n\n.button-cancel {\n top: 50%;\n background-color: #ffffff;\n color: #1e1c1c;\n border: 1px solid gray;\n border-radius: 10px;\n padding: 10px;\n min-height: 30px;\n min-width: 120px;\n /* font-size: 19px; */\n cursor: pointer;\n}\n\n.crm-description {\n /* font-size: 14px; */\n width: 100%;\n display: flex;\n gap: 9px;\n flex-wrap: wrap;\n}\n\n.crm-description a {\n font-weight: bold;\n cursor: pointer;\n text-decoration: underline;\n}\n\n.crm-description div {\n display: flex;\n gap: 5px;\n}","* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n:host {\n --crmfont-sizebodymd: 14px;\n --crmline-heightbodymd: 20px;\n --crmletter-spacingtitle-md: 0px\n}\n\n.container-message {\n /* font-size: var(--crmfont-sizebodymd); */\n font-weight: 400;\n line-height: var(--crmline-heightbodymd);\n letter-spacing: var(--crmletter-spacingtitle-md);\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.crm-container-form {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n height: auto;\n padding: 20px 24px 20px 24px;\n border: 1px solid #CCCC;\n writing-mode: horizontal-tb;\n gap: 16px;\n border-top: 1px solid #ccc !important;\n border-bottom: 1px solid #ccc !important;\n}\n\n/* .fbits-responsive-carrinho-desconto {\n overflow: hidden;\n border: 1px solid #ccc;\n border-top: 0;\n border-bottom: 0;\n} */\n\n.crm-phone-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n /* justify-content: space-around; */\n gap: 16px;\n}\n\n.crm-subtitle {\n /* font-size: 14px; */\n font-size: .875rem;\n line-height: 1.25rem;\n \n}\n\n.crm-title {\n font-weight: 700;\n line-height: 20px;\n color: #262626;\n /* font-size: 16px; */\n}\n\n.crm-message-info {\n color: #619013;\n font-weight: 500;\n /* font-size: 12px; */\n}\n\n.crm-message-error {\n color: #E11D48;\n font-weight: 500;\n /* font-size: 12px; */\n}","import { Component, h, Prop, State } from '@stencil/core';\nimport { IPinSent } from '../../../../dto/pin.sent';\nimport i18next from '../../../../i18n/i18n'\nimport { IInfoStore } from '../../../../helpers/info.config.helper';\n\n@Component({\n tag: 'pin-form',\n styleUrls: ['pin-form.css', '../../giftback-form.css'],\n shadow: true,\n})\nexport class GiftbackPin {\n\n @Prop() validate: (pin: string) => void;\n @Prop() cancel: () => void;\n @Prop() resend: () => void;\n\n @Prop() sent: IPinSent;\n @Prop() loading: boolean = false;\n @Prop() phone: string;\n @Prop() config: IInfoStore;\n\n @State() pin: string[] = ['', '', '', ''];\n @State() isVerified: boolean = false;\n @State() canResend: boolean = false;\n\n componentWillLoad() {\n this.canResend = false;\n }\n\n handleInput(event: Event, index: number) {\n const input = event.target as HTMLInputElement;\n const value = input.value.slice(0, 1); // Limitar a um único dígito\n this.pin[index] = value;\n\n // Focar no próximo campo, se possível\n if (value && index < this.pin.length - 1) {\n const nextInput = input.nextElementSibling as HTMLInputElement;\n nextInput?.focus();\n }\n\n this.pin = [...this.pin];\n }\n\n validatePin() {\n localStorage.removeItem(\"bc:resend\")\n this.validate(this.pin.join(\"\"))\n }\n\n verifyPin() {\n const pinCode = this.pin.join('');\n if (pinCode === '9999') {\n this.isVerified = true;\n }\n }\n\n handleTimeout() {\n localStorage.removeItem(\"bc:resend\")\n this.canResend = true;\n }\n\n async handleResend() {\n await this.resend();\n\n this.canResend = false;\n this.pin = ['', '', '', ''];\n localStorage.removeItem(\"bc:resend\")\n }\n\n buildTime() {\n const resendDate = localStorage.getItem(\"bc:resend\");\n\n if(resendDate) {\n return resendDate;\n }\n\n const date = new Date();\n date.setSeconds(date.getSeconds() + 30);\n localStorage.setItem(\"bc:resend\", date.toString());\n\n return date.toString();\n }\n\n render() {\n return (\n <div class=\"crm-phone-form\">\n <label class=\"crm-subtitle\" >{i18next.t('pin-sutitle')} <strong>+55 {this.phone}</strong></label>\n <div class=\"pin-container\">\n {this.pin.map((_, index) => (\n <input\n type=\"text\"\n maxLength={1}\n value={this.pin[index]}\n onInput={(event) => this.handleInput(event, index)}\n />\n ))}\n </div>\n\n <slot></slot>\n\n <p class=\"crm-description\"> Não recebeu?\n {\n !this.canResend && <label> Reenviar em \n <countdown-timer minutos={0} segundos={30} dataCriacao={this.buildTime()} downtime={() => this.handleTimeout()} /> </label>\n }\n {\n this.canResend && (\n <div >\n <a onClick={() => this.handleResend()}>Reenviar</a>\n <a onClick={() => this.cancel()}>Trocar número</a>\n </div>\n )\n }\n </p>\n <crm-button txtBtn={this.config?.btnApplyBonusLabel || \"Avançar\"} loading={this.loading} handleClick={() => this.validatePin()} />\n </div >\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
function t(t,e){return function n(){return t.apply(e,arguments)}}const{toString:e}=Object.prototype;const{getPrototypeOf:n}=Object;const o=(t=>n=>{const o=e.call(n);return t[o]||(t[o]=o.slice(8,-1).toLowerCase())})(Object.create(null));const r=t=>{t=t.toLowerCase();return e=>o(e)===t};const s=t=>e=>typeof e===t;const{isArray:i}=Array;const c=s("undefined");function a(t){return t!==null&&!c(t)&&t.constructor!==null&&!c(t.constructor)&&d(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const u=r("ArrayBuffer");function l(t){let e;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){e=ArrayBuffer.isView(t)}else{e=t&&t.buffer&&u(t.buffer)}return e}const f=s("string");const d=s("function");const h=s("number");const p=t=>t!==null&&typeof t==="object";const w=t=>t===true||t===false;const m=t=>{if(o(t)!=="object"){return false}const e=n(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)};const y=r("Date");const b=r("File");const g=r("Blob");const R=r("FileList");const S=t=>p(t)&&d(t.pipe);const O=t=>{let e;return t&&(typeof FormData==="function"&&t instanceof FormData||d(t.append)&&((e=o(t))==="formdata"||e==="object"&&d(t.toString)&&t.toString()==="[object FormData]"))};const E=r("URLSearchParams");const[T,v,A,j]=["ReadableStream","Request","Response","Headers"].map(r);const C=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function N(t,e,{allOwnKeys:n=false}={}){if(t===null||typeof t==="undefined"){return}let o;let r;if(typeof t!=="object"){t=[t]}if(i(t)){for(o=0,r=t.length;o<r;o++){e.call(null,t[o],o,t)}}else{const r=n?Object.getOwnPropertyNames(t):Object.keys(t);const s=r.length;let i;for(o=0;o<s;o++){i=r[o];e.call(null,t[i],i,t)}}}function x(t,e){e=e.toLowerCase();const n=Object.keys(t);let o=n.length;let r;while(o-- >0){r=n[o];if(e===r.toLowerCase()){return r}}return null}const B=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})();const P=t=>!c(t)&&t!==B;function D(){const{caseless:t}=P(this)&&this||{};const e={};const n=(n,o)=>{const r=t&&x(e,o)||o;if(m(e[r])&&m(n)){e[r]=D(e[r],n)}else if(m(n)){e[r]=D({},n)}else if(i(n)){e[r]=n.slice()}else{e[r]=n}};for(let t=0,e=arguments.length;t<e;t++){arguments[t]&&N(arguments[t],n)}return e}const U=(e,n,o,{allOwnKeys:r}={})=>{N(n,((n,r)=>{if(o&&d(n)){e[r]=t(n,o)}else{e[r]=n}}),{allOwnKeys:r});return e};const F=t=>{if(t.charCodeAt(0)===65279){t=t.slice(1)}return t};const _=(t,e,n,o)=>{t.prototype=Object.create(e.prototype,o);t.prototype.constructor=t;Object.defineProperty(t,"super",{value:e.prototype});n&&Object.assign(t.prototype,n)};const k=(t,e,o,r)=>{let s;let i;let c;const a={};e=e||{};if(t==null)return e;do{s=Object.getOwnPropertyNames(t);i=s.length;while(i-- >0){c=s[i];if((!r||r(c,t,e))&&!a[c]){e[c]=t[c];a[c]=true}}t=o!==false&&n(t)}while(t&&(!o||o(t,e))&&t!==Object.prototype);return e};const q=(t,e,n)=>{t=String(t);if(n===undefined||n>t.length){n=t.length}n-=e.length;const o=t.indexOf(e,n);return o!==-1&&o===n};const I=t=>{if(!t)return null;if(i(t))return t;let e=t.length;if(!h(e))return null;const n=new Array(e);while(e-- >0){n[e]=t[e]}return n};const L=(t=>e=>t&&e instanceof t)(typeof Uint8Array!=="undefined"&&n(Uint8Array));const $=(t,e)=>{const n=t&&t[Symbol.iterator];const o=n.call(t);let r;while((r=o.next())&&!r.done){const n=r.value;e.call(t,n[0],n[1])}};const z=(t,e)=>{let n;const o=[];while((n=t.exec(e))!==null){o.push(n)}return o};const M=r("HTMLFormElement");const H=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function t(e,n,o){return n.toUpperCase()+o}));const J=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype);const K=r("RegExp");const Y=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t);const o={};N(n,((n,r)=>{let s;if((s=e(n,r,t))!==false){o[r]=s||n}}));Object.defineProperties(t,o)};const V=t=>{Y(t,((e,n)=>{if(d(t)&&["arguments","caller","callee"].indexOf(n)!==-1){return false}const o=t[n];if(!d(o))return;e.enumerable=false;if("writable"in e){e.writable=false;return}if(!e.set){e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}}}))};const W=(t,e)=>{const n={};const o=t=>{t.forEach((t=>{n[t]=true}))};i(t)?o(t):o(String(t).split(e));return n};const G=()=>{};const X=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;const Z="abcdefghijklmnopqrstuvwxyz";const Q="0123456789";const tt={DIGIT:Q,ALPHA:Z,ALPHA_DIGIT:Z+Z.toUpperCase()+Q};const et=(t=16,e=tt.ALPHA_DIGIT)=>{let n="";const{length:o}=e;while(t--){n+=e[Math.random()*o|0]}return n};function nt(t){return!!(t&&d(t.append)&&t[Symbol.toStringTag]==="FormData"&&t[Symbol.iterator])}const ot=t=>{const e=new Array(10);const n=(t,o)=>{if(p(t)){if(e.indexOf(t)>=0){return}if(!("toJSON"in t)){e[o]=t;const r=i(t)?[]:{};N(t,((t,e)=>{const s=n(t,o+1);!c(s)&&(r[e]=s)}));e[o]=undefined;return r}}return t};return n(t,0)};const rt=r("AsyncFunction");const st=t=>t&&(p(t)||d(t))&&d(t.then)&&d(t.catch);const it=((t,e)=>{if(t){return setImmediate}return e?((t,e)=>{B.addEventListener("message",(({source:n,data:o})=>{if(n===B&&o===t){e.length&&e.shift()()}}),false);return n=>{e.push(n);B.postMessage(t,"*")}})(`axios@${Math.random()}`,[]):t=>setTimeout(t)})(typeof setImmediate==="function",d(B.postMessage));const ct=typeof queueMicrotask!=="undefined"?queueMicrotask.bind(B):typeof process!=="undefined"&&process.nextTick||it;const at={isArray:i,isArrayBuffer:u,isBuffer:a,isFormData:O,isArrayBufferView:l,isString:f,isNumber:h,isBoolean:w,isObject:p,isPlainObject:m,isReadableStream:T,isRequest:v,isResponse:A,isHeaders:j,isUndefined:c,isDate:y,isFile:b,isBlob:g,isRegExp:K,isFunction:d,isStream:S,isURLSearchParams:E,isTypedArray:L,isFileList:R,forEach:N,merge:D,extend:U,trim:C,stripBOM:F,inherits:_,toFlatObject:k,kindOf:o,kindOfTest:r,endsWith:q,toArray:I,forEachEntry:$,matchAll:z,isHTMLForm:M,hasOwnProperty:J,hasOwnProp:J,reduceDescriptors:Y,freezeMethods:V,toObjectSet:W,toCamelCase:H,noop:G,toFiniteNumber:X,findKey:x,global:B,isContextDefined:P,ALPHABET:tt,generateString:et,isSpecCompliantForm:nt,toJSONObject:ot,isAsyncFn:rt,isThenable:st,setImmediate:it,asap:ct};function ut(t,e,n,o,r){Error.call(this);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack}this.message=t;this.name="AxiosError";e&&(this.code=e);n&&(this.config=n);o&&(this.request=o);if(r){this.response=r;this.status=r.status?r.status:null}}at.inherits(ut,Error,{toJSON:function t(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:at.toJSONObject(this.config),code:this.code,status:this.status}}});const lt=ut.prototype;const ft={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{ft[t]={value:t}}));Object.defineProperties(ut,ft);Object.defineProperty(lt,"isAxiosError",{value:true});ut.from=(t,e,n,o,r,s)=>{const i=Object.create(lt);at.toFlatObject(t,i,(function t(e){return e!==Error.prototype}),(t=>t!=="isAxiosError"));ut.call(i,t.message,e,n,o,r);i.cause=t;i.name=t.name;s&&Object.assign(i,s);return i};const dt=null;function ht(t){return at.isPlainObject(t)||at.isArray(t)}function pt(t){return at.endsWith(t,"[]")?t.slice(0,-2):t}function wt(t,e,n){if(!t)return e;return t.concat(e).map((function t(e,o){e=pt(e);return!n&&o?"["+e+"]":e})).join(n?".":"")}function mt(t){return at.isArray(t)&&!t.some(ht)}const yt=at.toFlatObject(at,{},null,(function t(e){return/^is[A-Z]/.test(e)}));function bt(t,e,n){if(!at.isObject(t)){throw new TypeError("target must be an object")}e=e||new FormData;n=at.toFlatObject(n,{metaTokens:true,dots:false,indexes:false},false,(function t(e,n){return!at.isUndefined(n[e])}));const o=n.metaTokens;const r=n.visitor||l;const s=n.dots;const i=n.indexes;const c=n.Blob||typeof Blob!=="undefined"&&Blob;const a=c&&at.isSpecCompliantForm(e);if(!at.isFunction(r)){throw new TypeError("visitor must be a function")}function u(t){if(t===null)return"";if(at.isDate(t)){return t.toISOString()}if(!a&&at.isBlob(t)){throw new ut("Blob is not supported. Use a Buffer instead.")}if(at.isArrayBuffer(t)||at.isTypedArray(t)){return a&&typeof Blob==="function"?new Blob([t]):Buffer.from(t)}return t}function l(t,n,r){let c=t;if(t&&!r&&typeof t==="object"){if(at.endsWith(n,"{}")){n=o?n:n.slice(0,-2);t=JSON.stringify(t)}else if(at.isArray(t)&&mt(t)||(at.isFileList(t)||at.endsWith(n,"[]"))&&(c=at.toArray(t))){n=pt(n);c.forEach((function t(o,r){!(at.isUndefined(o)||o===null)&&e.append(i===true?wt([n],r,s):i===null?n:n+"[]",u(o))}));return false}}if(ht(t)){return true}e.append(wt(r,n,s),u(t));return false}const f=[];const d=Object.assign(yt,{defaultVisitor:l,convertValue:u,isVisitable:ht});function h(t,n){if(at.isUndefined(t))return;if(f.indexOf(t)!==-1){throw Error("Circular reference detected in "+n.join("."))}f.push(t);at.forEach(t,(function t(o,s){const i=!(at.isUndefined(o)||o===null)&&r.call(e,o,at.isString(s)?s.trim():s,n,d);if(i===true){h(o,n?n.concat(s):[s])}}));f.pop()}if(!at.isObject(t)){throw new TypeError("data must be an object")}h(t);return e}function gt(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function t(n){return e[n]}))}function Rt(t,e){this._pairs=[];t&&bt(t,this,e)}const St=Rt.prototype;St.append=function t(e,n){this._pairs.push([e,n])};St.toString=function t(e){const n=e?function(t){return e.call(this,t,gt)}:gt;return this._pairs.map((function t(e){return n(e[0])+"="+n(e[1])}),"").join("&")};function Ot(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Et(t,e,n){if(!e){return t}const o=n&&n.encode||Ot;const r=n&&n.serialize;let s;if(r){s=r(e,n)}else{s=at.isURLSearchParams(e)?e.toString():new Rt(e,n).toString(o)}if(s){const e=t.indexOf("#");if(e!==-1){t=t.slice(0,e)}t+=(t.indexOf("?")===-1?"?":"&")+s}return t}class Tt{constructor(){this.handlers=[]}use(t,e,n){this.handlers.push({fulfilled:t,rejected:e,synchronous:n?n.synchronous:false,runWhen:n?n.runWhen:null});return this.handlers.length-1}eject(t){if(this.handlers[t]){this.handlers[t]=null}}clear(){if(this.handlers){this.handlers=[]}}forEach(t){at.forEach(this.handlers,(function e(n){if(n!==null){t(n)}}))}}const vt=Tt;const At={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false};const jt=typeof URLSearchParams!=="undefined"?URLSearchParams:Rt;const Ct=typeof FormData!=="undefined"?FormData:null;const Nt=typeof Blob!=="undefined"?Blob:null;const xt={isBrowser:true,classes:{URLSearchParams:jt,FormData:Ct,Blob:Nt},protocols:["http","https","file","blob","url","data"]};const Bt=typeof window!=="undefined"&&typeof document!=="undefined";const Pt=typeof navigator==="object"&&navigator||undefined;const Dt=Bt&&(!Pt||["ReactNative","NativeScript","NS"].indexOf(Pt.product)<0);const Ut=(()=>typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function")();const Ft=Bt&&window.location.href||"http://localhost";const _t=Object.freeze({__proto__:null,hasBrowserEnv:Bt,hasStandardBrowserWebWorkerEnv:Ut,hasStandardBrowserEnv:Dt,navigator:Pt,origin:Ft});const kt={..._t,...xt};function qt(t,e){return bt(t,new kt.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,o){if(kt.isNode&&at.isBuffer(t)){this.append(e,t.toString("base64"));return false}return o.defaultVisitor.apply(this,arguments)}},e))}function It(t){return at.matchAll(/\w+|\[(\w*)]/g,t).map((t=>t[0]==="[]"?"":t[1]||t[0]))}function Lt(t){const e={};const n=Object.keys(t);let o;const r=n.length;let s;for(o=0;o<r;o++){s=n[o];e[s]=t[s]}return e}function $t(t){function e(t,n,o,r){let s=t[r++];if(s==="__proto__")return true;const i=Number.isFinite(+s);const c=r>=t.length;s=!s&&at.isArray(o)?o.length:s;if(c){if(at.hasOwnProp(o,s)){o[s]=[o[s],n]}else{o[s]=n}return!i}if(!o[s]||!at.isObject(o[s])){o[s]=[]}const a=e(t,n,o[s],r);if(a&&at.isArray(o[s])){o[s]=Lt(o[s])}return!i}if(at.isFormData(t)&&at.isFunction(t.entries)){const n={};at.forEachEntry(t,((t,o)=>{e(It(t),o,n,0)}));return n}return null}function zt(t,e,n){if(at.isString(t)){try{(e||JSON.parse)(t);return at.trim(t)}catch(t){if(t.name!=="SyntaxError"){throw t}}}return(n||JSON.stringify)(t)}const Mt={transitional:At,adapter:["xhr","http","fetch"],transformRequest:[function t(e,n){const o=n.getContentType()||"";const r=o.indexOf("application/json")>-1;const s=at.isObject(e);if(s&&at.isHTMLForm(e)){e=new FormData(e)}const i=at.isFormData(e);if(i){return r?JSON.stringify($t(e)):e}if(at.isArrayBuffer(e)||at.isBuffer(e)||at.isStream(e)||at.isFile(e)||at.isBlob(e)||at.isReadableStream(e)){return e}if(at.isArrayBufferView(e)){return e.buffer}if(at.isURLSearchParams(e)){n.setContentType("application/x-www-form-urlencoded;charset=utf-8",false);return e.toString()}let c;if(s){if(o.indexOf("application/x-www-form-urlencoded")>-1){return qt(e,this.formSerializer).toString()}if((c=at.isFileList(e))||o.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return bt(c?{"files[]":e}:e,t&&new t,this.formSerializer)}}if(s||r){n.setContentType("application/json",false);return zt(e)}return e}],transformResponse:[function t(e){const n=this.transitional||Mt.transitional;const o=n&&n.forcedJSONParsing;const r=this.responseType==="json";if(at.isResponse(e)||at.isReadableStream(e)){return e}if(e&&at.isString(e)&&(o&&!this.responseType||r)){const t=n&&n.silentJSONParsing;const o=!t&&r;try{return JSON.parse(e)}catch(t){if(o){if(t.name==="SyntaxError"){throw ut.from(t,ut.ERR_BAD_RESPONSE,this,null,this.response)}throw t}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:kt.classes.FormData,Blob:kt.classes.Blob},validateStatus:function t(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":undefined}}};at.forEach(["delete","get","head","post","put","patch"],(t=>{Mt.headers[t]={}}));const Ht=Mt;const Jt=at.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Kt=t=>{const e={};let n;let o;let r;t&&t.split("\n").forEach((function t(s){r=s.indexOf(":");n=s.substring(0,r).trim().toLowerCase();o=s.substring(r+1).trim();if(!n||e[n]&&Jt[n]){return}if(n==="set-cookie"){if(e[n]){e[n].push(o)}else{e[n]=[o]}}else{e[n]=e[n]?e[n]+", "+o:o}}));return e};const Yt=Symbol("internals");function Vt(t){return t&&String(t).trim().toLowerCase()}function Wt(t){if(t===false||t==null){return t}return at.isArray(t)?t.map(Wt):String(t)}function Gt(t){const e=Object.create(null);const n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;while(o=n.exec(t)){e[o[1]]=o[2]}return e}const Xt=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Zt(t,e,n,o,r){if(at.isFunction(o)){return o.call(this,e,n)}if(r){e=n}if(!at.isString(e))return;if(at.isString(o)){return e.indexOf(o)!==-1}if(at.isRegExp(o)){return o.test(e)}}function Qt(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,n)=>e.toUpperCase()+n))}function te(t,e){const n=at.toCamelCase(" "+e);["get","set","has"].forEach((o=>{Object.defineProperty(t,o+n,{value:function(t,n,r){return this[o].call(this,e,t,n,r)},configurable:true})}))}class ee{constructor(t){t&&this.set(t)}set(t,e,n){const o=this;function r(t,e,n){const r=Vt(e);if(!r){throw new Error("header name must be a non-empty string")}const s=at.findKey(o,r);if(!s||o[s]===undefined||n===true||n===undefined&&o[s]!==false){o[s||e]=Wt(t)}}const s=(t,e)=>at.forEach(t,((t,n)=>r(t,n,e)));if(at.isPlainObject(t)||t instanceof this.constructor){s(t,e)}else if(at.isString(t)&&(t=t.trim())&&!Xt(t)){s(Kt(t),e)}else if(at.isHeaders(t)){for(const[e,o]of t.entries()){r(o,e,n)}}else{t!=null&&r(e,t,n)}return this}get(t,e){t=Vt(t);if(t){const n=at.findKey(this,t);if(n){const t=this[n];if(!e){return t}if(e===true){return Gt(t)}if(at.isFunction(e)){return e.call(this,t,n)}if(at.isRegExp(e)){return e.exec(t)}throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){t=Vt(t);if(t){const n=at.findKey(this,t);return!!(n&&this[n]!==undefined&&(!e||Zt(this,this[n],n,e)))}return false}delete(t,e){const n=this;let o=false;function r(t){t=Vt(t);if(t){const r=at.findKey(n,t);if(r&&(!e||Zt(n,n[r],r,e))){delete n[r];o=true}}}if(at.isArray(t)){t.forEach(r)}else{r(t)}return o}clear(t){const e=Object.keys(this);let n=e.length;let o=false;while(n--){const r=e[n];if(!t||Zt(this,this[r],r,t,true)){delete this[r];o=true}}return o}normalize(t){const e=this;const n={};at.forEach(this,((o,r)=>{const s=at.findKey(n,r);if(s){e[s]=Wt(o);delete e[r];return}const i=t?Qt(r):String(r).trim();if(i!==r){delete e[r]}e[i]=Wt(o);n[i]=true}));return this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);at.forEach(this,((n,o)=>{n!=null&&n!==false&&(e[o]=t&&at.isArray(n)?n.join(", "):n)}));return e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);e.forEach((t=>n.set(t)));return n}static accessor(t){const e=this[Yt]=this[Yt]={accessors:{}};const n=e.accessors;const o=this.prototype;function r(t){const e=Vt(t);if(!n[e]){te(o,t);n[e]=true}}at.isArray(t)?t.forEach(r):r(t);return this}}ee.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);at.reduceDescriptors(ee.prototype,(({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[n]=t}}}));at.freezeMethods(ee);const ne=ee;function oe(t,e){const n=this||Ht;const o=e||n;const r=ne.from(o.headers);let s=o.data;at.forEach(t,(function t(o){s=o.call(n,s,r.normalize(),e?e.status:undefined)}));r.normalize();return s}function re(t){return!!(t&&t.__CANCEL__)}function se(t,e,n){ut.call(this,t==null?"canceled":t,ut.ERR_CANCELED,e,n);this.name="CanceledError"}at.inherits(se,ut,{__CANCEL__:true});function ie(t,e,n){const o=n.config.validateStatus;if(!n.status||!o||o(n.status)){t(n)}else{e(new ut("Request failed with status code "+n.status,[ut.ERR_BAD_REQUEST,ut.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}}function ce(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ae(t,e){t=t||10;const n=new Array(t);const o=new Array(t);let r=0;let s=0;let i;e=e!==undefined?e:1e3;return function c(a){const u=Date.now();const l=o[s];if(!i){i=u}n[r]=a;o[r]=u;let f=s;let d=0;while(f!==r){d+=n[f++];f=f%t}r=(r+1)%t;if(r===s){s=(s+1)%t}if(u-i<e){return}const h=l&&u-l;return h?Math.round(d*1e3/h):undefined}}function ue(t,e){let n=0;let o=1e3/e;let r;let s;const i=(e,o=Date.now())=>{n=o;r=null;if(s){clearTimeout(s);s=null}t.apply(null,e)};const c=(...t)=>{const e=Date.now();const c=e-n;if(c>=o){i(t,e)}else{r=t;if(!s){s=setTimeout((()=>{s=null;i(r)}),o-c)}}};const a=()=>r&&i(r);return[c,a]}const le=(t,e,n=3)=>{let o=0;const r=ae(50,250);return ue((n=>{const s=n.loaded;const i=n.lengthComputable?n.total:undefined;const c=s-o;const a=r(c);const u=s<=i;o=s;const l={loaded:s,total:i,progress:i?s/i:undefined,bytes:c,rate:a?a:undefined,estimated:a&&i&&u?(i-s)/a:undefined,event:n,lengthComputable:i!=null,[e?"download":"upload"]:true};t(l)}),n)};const fe=(t,e)=>{const n=t!=null;return[o=>e[0]({lengthComputable:n,total:t,loaded:o}),e[1]]};const de=t=>(...e)=>at.asap((()=>t(...e)));const he=kt.hasStandardBrowserEnv?function t(){const e=kt.navigator&&/(msie|trident)/i.test(kt.navigator.userAgent);const n=document.createElement("a");let o;function r(t){let o=t;if(e){n.setAttribute("href",o);o=n.href}n.setAttribute("href",o);return{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}o=r(window.location.href);return function t(e){const n=at.isString(e)?r(e):e;return n.protocol===o.protocol&&n.host===o.host}}():function t(){return function t(){return true}}();const pe=kt.hasStandardBrowserEnv?{write(t,e,n,o,r,s){const i=[t+"="+encodeURIComponent(e)];at.isNumber(n)&&i.push("expires="+new Date(n).toGMTString());at.isString(o)&&i.push("path="+o);at.isString(r)&&i.push("domain="+r);s===true&&i.push("secure");document.cookie=i.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function we(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function me(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function ye(t,e){if(t&&!we(e)){return me(t,e)}return e}const be=t=>t instanceof ne?{...t}:t;function ge(t,e){e=e||{};const n={};function o(t,e,n){if(at.isPlainObject(t)&&at.isPlainObject(e)){return at.merge.call({caseless:n},t,e)}else if(at.isPlainObject(e)){return at.merge({},e)}else if(at.isArray(e)){return e.slice()}return e}function r(t,e,n){if(!at.isUndefined(e)){return o(t,e,n)}else if(!at.isUndefined(t)){return o(undefined,t,n)}}function s(t,e){if(!at.isUndefined(e)){return o(undefined,e)}}function i(t,e){if(!at.isUndefined(e)){return o(undefined,e)}else if(!at.isUndefined(t)){return o(undefined,t)}}function c(n,r,s){if(s in e){return o(n,r)}else if(s in t){return o(undefined,n)}}const a={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:c,headers:(t,e)=>r(be(t),be(e),true)};at.forEach(Object.keys(Object.assign({},t,e)),(function o(s){const i=a[s]||r;const u=i(t[s],e[s],s);at.isUndefined(u)&&i!==c||(n[s]=u)}));return n}const Re=t=>{const e=ge({},t);let{data:n,withXSRFToken:o,xsrfHeaderName:r,xsrfCookieName:s,headers:i,auth:c}=e;e.headers=i=ne.from(i);e.url=Et(ye(e.baseURL,e.url),t.params,t.paramsSerializer);if(c){i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")))}let a;if(at.isFormData(n)){if(kt.hasStandardBrowserEnv||kt.hasStandardBrowserWebWorkerEnv){i.setContentType(undefined)}else if((a=i.getContentType())!==false){const[t,...e]=a?a.split(";").map((t=>t.trim())).filter(Boolean):[];i.setContentType([t||"multipart/form-data",...e].join("; "))}}if(kt.hasStandardBrowserEnv){o&&at.isFunction(o)&&(o=o(e));if(o||o!==false&&he(e.url)){const t=r&&s&&pe.read(s);if(t){i.set(r,t)}}}return e};const Se=typeof XMLHttpRequest!=="undefined";const Oe=Se&&function(t){return new Promise((function e(n,o){const r=Re(t);let s=r.data;const i=ne.from(r.headers).normalize();let{responseType:c,onUploadProgress:a,onDownloadProgress:u}=r;let l;let f,d;let h,p;function w(){h&&h();p&&p();r.cancelToken&&r.cancelToken.unsubscribe(l);r.signal&&r.signal.removeEventListener("abort",l)}let m=new XMLHttpRequest;m.open(r.method.toUpperCase(),r.url,true);m.timeout=r.timeout;function y(){if(!m){return}const e=ne.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());const r=!c||c==="text"||c==="json"?m.responseText:m.response;const s={data:r,status:m.status,statusText:m.statusText,headers:e,config:t,request:m};ie((function t(e){n(e);w()}),(function t(e){o(e);w()}),s);m=null}if("onloadend"in m){m.onloadend=y}else{m.onreadystatechange=function t(){if(!m||m.readyState!==4){return}if(m.status===0&&!(m.responseURL&&m.responseURL.indexOf("file:")===0)){return}setTimeout(y)}}m.onabort=function e(){if(!m){return}o(new ut("Request aborted",ut.ECONNABORTED,t,m));m=null};m.onerror=function e(){o(new ut("Network Error",ut.ERR_NETWORK,t,m));m=null};m.ontimeout=function e(){let n=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const s=r.transitional||At;if(r.timeoutErrorMessage){n=r.timeoutErrorMessage}o(new ut(n,s.clarifyTimeoutError?ut.ETIMEDOUT:ut.ECONNABORTED,t,m));m=null};s===undefined&&i.setContentType(null);if("setRequestHeader"in m){at.forEach(i.toJSON(),(function t(e,n){m.setRequestHeader(n,e)}))}if(!at.isUndefined(r.withCredentials)){m.withCredentials=!!r.withCredentials}if(c&&c!=="json"){m.responseType=r.responseType}if(u){[d,p]=le(u,true);m.addEventListener("progress",d)}if(a&&m.upload){[f,h]=le(a);m.upload.addEventListener("progress",f);m.upload.addEventListener("loadend",h)}if(r.cancelToken||r.signal){l=e=>{if(!m){return}o(!e||e.type?new se(null,t,m):e);m.abort();m=null};r.cancelToken&&r.cancelToken.subscribe(l);if(r.signal){r.signal.aborted?l():r.signal.addEventListener("abort",l)}}const b=ce(r.url);if(b&&kt.protocols.indexOf(b)===-1){o(new ut("Unsupported protocol "+b+":",ut.ERR_BAD_REQUEST,t));return}m.send(s||null)}))};const Ee=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let n=new AbortController;let o;const r=function(t){if(!o){o=true;i();const e=t instanceof Error?t:this.reason;n.abort(e instanceof ut?e:new se(e instanceof Error?e.message:e))}};let s=e&&setTimeout((()=>{s=null;r(new ut(`timeout ${e} of ms exceeded`,ut.ETIMEDOUT))}),e);const i=()=>{if(t){s&&clearTimeout(s);s=null;t.forEach((t=>{t.unsubscribe?t.unsubscribe(r):t.removeEventListener("abort",r)}));t=null}};t.forEach((t=>t.addEventListener("abort",r)));const{signal:c}=n;c.unsubscribe=()=>at.asap(i);return c}};const Te=Ee;const ve=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let o=0;let r;while(o<n){r=o+e;yield t.slice(o,r);o=r}};const Ae=async function*(t,e){for await(const n of je(t)){yield*ve(n,e)}};const je=async function*(t){if(t[Symbol.asyncIterator]){yield*t;return}const e=t.getReader();try{for(;;){const{done:t,value:n}=await e.read();if(t){break}yield n}}finally{await e.cancel()}};const Ce=(t,e,n,o)=>{const r=Ae(t,e);let s=0;let i;let c=t=>{if(!i){i=true;o&&o(t)}};return new ReadableStream({async pull(t){try{const{done:e,value:o}=await r.next();if(e){c();t.close();return}let i=o.byteLength;if(n){let t=s+=i;n(t)}t.enqueue(new Uint8Array(o))}catch(t){c(t);throw t}},cancel(t){c(t);return r.return()}},{highWaterMark:2})};const Ne=typeof fetch==="function"&&typeof Request==="function"&&typeof Response==="function";const xe=Ne&&typeof ReadableStream==="function";const Be=Ne&&(typeof TextEncoder==="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer()));const Pe=(t,...e)=>{try{return!!t(...e)}catch(t){return false}};const De=xe&&Pe((()=>{let t=false;const e=new Request(kt.origin,{body:new ReadableStream,method:"POST",get duplex(){t=true;return"half"}}).headers.has("Content-Type");return t&&!e}));const Ue=64*1024;const Fe=xe&&Pe((()=>at.isReadableStream(new Response("").body)));const _e={stream:Fe&&(t=>t.body)};Ne&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!_e[e]&&(_e[e]=at.isFunction(t[e])?t=>t[e]():(t,n)=>{throw new ut(`Response type '${e}' is not supported`,ut.ERR_NOT_SUPPORT,n)})}))})(new Response);const ke=async t=>{if(t==null){return 0}if(at.isBlob(t)){return t.size}if(at.isSpecCompliantForm(t)){const e=new Request(kt.origin,{method:"POST",body:t});return(await e.arrayBuffer()).byteLength}if(at.isArrayBufferView(t)||at.isArrayBuffer(t)){return t.byteLength}if(at.isURLSearchParams(t)){t=t+""}if(at.isString(t)){return(await Be(t)).byteLength}};const qe=async(t,e)=>{const n=at.toFiniteNumber(t.getContentLength());return n==null?ke(e):n};const Ie=Ne&&(async t=>{let{url:e,method:n,data:o,signal:r,cancelToken:s,timeout:i,onDownloadProgress:c,onUploadProgress:a,responseType:u,headers:l,withCredentials:f="same-origin",fetchOptions:d}=Re(t);u=u?(u+"").toLowerCase():"text";let h=Te([r,s&&s.toAbortSignal()],i);let p;const w=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let m;try{if(a&&De&&n!=="get"&&n!=="head"&&(m=await qe(l,o))!==0){let t=new Request(e,{method:"POST",body:o,duplex:"half"});let n;if(at.isFormData(o)&&(n=t.headers.get("content-type"))){l.setContentType(n)}if(t.body){const[e,n]=fe(m,le(de(a)));o=Ce(t.body,Ue,e,n)}}if(!at.isString(f)){f=f?"include":"omit"}const r="credentials"in Request.prototype;p=new Request(e,{...d,signal:h,method:n.toUpperCase(),headers:l.normalize().toJSON(),body:o,duplex:"half",credentials:r?f:undefined});let s=await fetch(p);const i=Fe&&(u==="stream"||u==="response");if(Fe&&(c||i&&w)){const t={};["status","statusText","headers"].forEach((e=>{t[e]=s[e]}));const e=at.toFiniteNumber(s.headers.get("content-length"));const[n,o]=c&&fe(e,le(de(c),true))||[];s=new Response(Ce(s.body,Ue,n,(()=>{o&&o();w&&w()})),t)}u=u||"text";let y=await _e[at.findKey(_e,u)||"text"](s,t);!i&&w&&w();return await new Promise(((e,n)=>{ie(e,n,{data:y,headers:ne.from(s.headers),status:s.status,statusText:s.statusText,config:t,request:p})}))}catch(e){w&&w();if(e&&e.name==="TypeError"&&/fetch/i.test(e.message)){throw Object.assign(new ut("Network Error",ut.ERR_NETWORK,t,p),{cause:e.cause||e})}throw ut.from(e,e&&e.code,t,p)}});const Le={http:dt,xhr:Oe,fetch:Ie};at.forEach(Le,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const $e=t=>`- ${t}`;const ze=t=>at.isFunction(t)||t===null||t===false;const Me={getAdapter:t=>{t=at.isArray(t)?t:[t];const{length:e}=t;let n;let o;const r={};for(let s=0;s<e;s++){n=t[s];let e;o=n;if(!ze(n)){o=Le[(e=String(n)).toLowerCase()];if(o===undefined){throw new ut(`Unknown adapter '${e}'`)}}if(o){break}r[e||"#"+s]=o}if(!o){const t=Object.entries(r).map((([t,e])=>`adapter ${t} `+(e===false?"is not supported by the environment":"is not available in the build")));let n=e?t.length>1?"since :\n"+t.map($e).join("\n"):" "+$e(t[0]):"as no adapter specified";throw new ut(`There is no suitable adapter to dispatch the request `+n,"ERR_NOT_SUPPORT")}return o},adapters:Le};function He(t){if(t.cancelToken){t.cancelToken.throwIfRequested()}if(t.signal&&t.signal.aborted){throw new se(null,t)}}function Je(t){He(t);t.headers=ne.from(t.headers);t.data=oe.call(t,t.transformRequest);if(["post","put","patch"].indexOf(t.method)!==-1){t.headers.setContentType("application/x-www-form-urlencoded",false)}const e=Me.getAdapter(t.adapter||Ht.adapter);return e(t).then((function e(n){He(t);n.data=oe.call(t,t.transformResponse,n);n.headers=ne.from(n.headers);return n}),(function e(n){if(!re(n)){He(t);if(n&&n.response){n.response.data=oe.call(t,t.transformResponse,n.response);n.response.headers=ne.from(n.response.headers)}}return Promise.reject(n)}))}const Ke="1.7.7";const Ye={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{Ye[t]=function n(o){return typeof o===t||"a"+(e<1?"n ":" ")+t}}));const Ve={};Ye.transitional=function t(e,n,o){function r(t,e){return"[Axios v"+Ke+"] Transitional option '"+t+"'"+e+(o?". "+o:"")}return(t,o,s)=>{if(e===false){throw new ut(r(o," has been removed"+(n?" in "+n:"")),ut.ERR_DEPRECATED)}if(n&&!Ve[o]){Ve[o]=true;console.warn(r(o," has been deprecated since v"+n+" and will be removed in the near future"))}return e?e(t,o,s):true}};function We(t,e,n){if(typeof t!=="object"){throw new ut("options must be an object",ut.ERR_BAD_OPTION_VALUE)}const o=Object.keys(t);let r=o.length;while(r-- >0){const s=o[r];const i=e[s];if(i){const e=t[s];const n=e===undefined||i(e,s,t);if(n!==true){throw new ut("option "+s+" must be "+n,ut.ERR_BAD_OPTION_VALUE)}continue}if(n!==true){throw new ut("Unknown option "+s,ut.ERR_BAD_OPTION)}}}const Ge={assertOptions:We,validators:Ye};const Xe=Ge.validators;class Ze{constructor(t){this.defaults=t;this.interceptors={request:new vt,response:new vt}}async request(t,e){try{return await this._request(t,e)}catch(t){if(t instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const n=e.stack?e.stack.replace(/^.+\n/,""):"";try{if(!t.stack){t.stack=n}else if(n&&!String(t.stack).endsWith(n.replace(/^.+\n.+\n/,""))){t.stack+="\n"+n}}catch(t){}}throw t}}_request(t,e){if(typeof t==="string"){e=e||{};e.url=t}else{e=t||{}}e=ge(this.defaults,e);const{transitional:n,paramsSerializer:o,headers:r}=e;if(n!==undefined){Ge.assertOptions(n,{silentJSONParsing:Xe.transitional(Xe.boolean),forcedJSONParsing:Xe.transitional(Xe.boolean),clarifyTimeoutError:Xe.transitional(Xe.boolean)},false)}if(o!=null){if(at.isFunction(o)){e.paramsSerializer={serialize:o}}else{Ge.assertOptions(o,{encode:Xe.function,serialize:Xe.function},true)}}e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=r&&at.merge(r.common,r[e.method]);r&&at.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete r[t]}));e.headers=ne.concat(s,r);const i=[];let c=true;this.interceptors.request.forEach((function t(n){if(typeof n.runWhen==="function"&&n.runWhen(e)===false){return}c=c&&n.synchronous;i.unshift(n.fulfilled,n.rejected)}));const a=[];this.interceptors.response.forEach((function t(e){a.push(e.fulfilled,e.rejected)}));let u;let l=0;let f;if(!c){const t=[Je.bind(this),undefined];t.unshift.apply(t,i);t.push.apply(t,a);f=t.length;u=Promise.resolve(e);while(l<f){u=u.then(t[l++],t[l++])}return u}f=i.length;let d=e;l=0;while(l<f){const t=i[l++];const e=i[l++];try{d=t(d)}catch(t){e.call(this,t);break}}try{u=Je.call(this,d)}catch(t){return Promise.reject(t)}l=0;f=a.length;while(l<f){u=u.then(a[l++],a[l++])}return u}getUri(t){t=ge(this.defaults,t);const e=ye(t.baseURL,t.url);return Et(e,t.params,t.paramsSerializer)}}at.forEach(["delete","get","head","options"],(function t(e){Ze.prototype[e]=function(t,n){return this.request(ge(n||{},{method:e,url:t,data:(n||{}).data}))}}));at.forEach(["post","put","patch"],(function t(e){function n(t){return function n(o,r,s){return this.request(ge(s||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:o,data:r}))}}Ze.prototype[e]=n();Ze.prototype[e+"Form"]=n(true)}));const Qe=Ze;class tn{constructor(t){if(typeof t!=="function"){throw new TypeError("executor must be a function.")}let e;this.promise=new Promise((function t(n){e=n}));const n=this;this.promise.then((t=>{if(!n._listeners)return;let e=n._listeners.length;while(e-- >0){n._listeners[e](t)}n._listeners=null}));this.promise.then=t=>{let e;const o=new Promise((t=>{n.subscribe(t);e=t})).then(t);o.cancel=function t(){n.unsubscribe(e)};return o};t((function t(o,r,s){if(n.reason){return}n.reason=new se(o,r,s);e(n.reason)}))}throwIfRequested(){if(this.reason){throw this.reason}}subscribe(t){if(this.reason){t(this.reason);return}if(this._listeners){this._listeners.push(t)}else{this._listeners=[t]}}unsubscribe(t){if(!this._listeners){return}const e=this._listeners.indexOf(t);if(e!==-1){this._listeners.splice(e,1)}}toAbortSignal(){const t=new AbortController;const e=e=>{t.abort(e)};this.subscribe(e);t.signal.unsubscribe=()=>this.unsubscribe(e);return t.signal}static source(){let t;const e=new tn((function e(n){t=n}));return{token:e,cancel:t}}}const en=tn;function nn(t){return function e(n){return t.apply(null,n)}}function on(t){return at.isObject(t)&&t.isAxiosError===true}const rn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(rn).forEach((([t,e])=>{rn[e]=t}));const sn=rn;function cn(e){const n=new Qe(e);const o=t(Qe.prototype.request,n);at.extend(o,Qe.prototype,n,{allOwnKeys:true});at.extend(o,n,null,{allOwnKeys:true});o.create=function t(n){return cn(ge(e,n))};return o}const an=cn(Ht);an.Axios=Qe;an.CanceledError=se;an.CancelToken=en;an.isCancel=re;an.VERSION=Ke;an.toFormData=bt;an.AxiosError=ut;an.Cancel=an.CanceledError;an.all=function t(e){return Promise.all(e)};an.spread=nn;an.isAxiosError=on;an.mergeConfig=ge;an.AxiosHeaders=ne;an.formToJSON=t=>$t(at.isHTMLForm(t)?new FormData(t):t);an.getAdapter=Me.getAdapter;an.HttpStatusCode=sn;an.default=an;const un=an;const ln="https://typically-workable-perch.ngrok-free.app/api";const fn="http://localhost:3001";const dn=t=>`bc:reserve${t}`;const hn="@BYCODERS_KEY";const pn="bc:used";const wn=t=>`bc:${t}`;class mn{constructor(){this.axiosInstance=un.create({baseURL:ln,headers:{"Content-Type":"application/json",accept:"application/json"}})}static getInstance(){if(this._instance){return this._instance}this._instance=new mn;return this._instance}async getCustomer(t,e){var n,o,r,s;const i=localStorage.getItem("@BYCODERS_KEY");const c={"Content-Type":"application/json",Authorization:`Bearer ${i}`};const a=await this.axiosInstance.get(`/store/${e}/customer/${t}`,{headers:c});if((n=a===null||a===void 0?void 0:a.data)===null||n===void 0?void 0:n.token){this.token=(o=a===null||a===void 0?void 0:a.data)===null||o===void 0?void 0:o.token;localStorage.setItem("@BYCODERS_KEY",(r=a===null||a===void 0?void 0:a.data)===null||r===void 0?void 0:r.token)}return(s=a===null||a===void 0?void 0:a.data)===null||s===void 0?void 0:s.customer}async updateOrder(t){const e=localStorage.getItem("@BYCODERS_KEY");const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};await this.axiosInstance.patch(`/checkouts/${t.cartId}/updateOrder`,{orderId:t.orderId,externalId:t.cartIdCrm},{headers:n});localStorage.removeItem("@BYCODERS_KEY");localStorage.removeItem(pn);localStorage.removeItem(dn(t.cartId))}async sendPin(t,e,n){const o=localStorage.getItem(hn);const r={"Content-Type":"application/json",Authorization:`Bearer ${o}`};const s=await this.axiosInstance.post("/crmbonus/send-pin",{cellphone:t,name:e,storeName:n},{headers:r});return{storeId:s.data.storeId,userId:s.data.userId}}async validatePinBonus(t){const e=localStorage.getItem(hn);const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};const o=await this.axiosInstance.post("/crmbonus/process-pin-bonus",t,{headers:n});return o.data}async reserve(t){const e={"Content-Type":"application/json",Authorization:`Bearer ${this.token}`};const n=await this.axiosInstance.post("/crmbonus/redeem-bonus",t,{headers:e});return n.data}async cancel(t){const e=localStorage.getItem(hn);const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};const o=await this.axiosInstance.post("/crmbonus/cancel-apply-bonus",{ticket:t},{headers:n});return o.data}async getToken(t){var e,n;const o=await this.axiosInstance.post("/wake/requestToken",{storeName:t});this.token=(e=o===null||o===void 0?void 0:o.data)===null||e===void 0?void 0:e.token;localStorage.setItem(hn,this.token);return(n=o===null||o===void 0?void 0:o.data)===null||n===void 0?void 0:n.token}async getCustomization(t){const e={"Content-Type":"application/json",Authorization:`Bearer ${this.token}`};const n=await this.axiosInstance.get(`/stores/${t}/customizations`,{headers:e});localStorage.setItem(wn(t),JSON.stringify(n.data));console.log("getCustomization",n);return n.data}async cancelBonus(t,e){const n=localStorage.getItem(hn);const o={"Content-Type":"application/json",Authorization:`Bearer ${n}`};await this.axiosInstance.post(`/crmbonus/cancel-bonus`,{cartId:t,usedBonus:true,storeName:e},{headers:o});localStorage.setItem(t,"0");localStorage.removeItem(pn)}async getInfoBonus(t,e){const n=localStorage.getItem(hn);const o={"Content-Type":"application/json",Authorization:`Bearer ${n}`};const r=await this.axiosInstance.get(`/crmbonus/order-info/${e}/${t}`,{headers:o});return r.data}async patchInfoBonus(t){const e=localStorage.getItem(hn);const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};await this.axiosInstance.patch(`/checkouts/${t.cartId}`,{metadata:t.metadata},{headers:n})}async getInfoCart(t){const e=await fetch(`${t}/api/carrinho`,{credentials:"include"}).then((t=>t.json()));return e}}mn._instance=null;class yn{constructor(t){var e;this.products=[];this.id=t.Metadados.id||t.Id;this.middlewareId=(e=t.Metadados)===null||e===void 0?void 0:e.id;this.orderId=t.PedidoId;this.buildUserInfo(t);this.buildStoreInfo(t);this.products=t.Produtos}buildUserInfo(t){this.user={id:t.Usuario?t.Usuario.Id:null}}buildStoreInfo(t){var e;this.store={name:(e=t.Loja)===null||e===void 0?void 0:e.Nome}}}class bn{static of(t){const e=new bn;e.bonusBalance=t.bonusBalance;e.bonusIds=t.bonusIds;e.calculatedValue=t.calculatedValue;e.cartId=t.cartId;e.metadata=t.metadata;e.orderId=t.orderId;e.status=t.status;e.totalDiscount=t.totalDiscount;e.totalValue=t.totalValue;e.isBonusProcessed=t.isBonusProcessed;return e}isExpired(){var t;const e=(t=this===null||this===void 0?void 0:this.metadata)===null||t===void 0?void 0:t.createdAt;if(!e)return true;const n=Date.now();const o=n-e;const r=o/(1e3*60);console.log("diffMinutes",r);return r>6}}const gn=mn.getInstance();const Rn=async()=>{const t=En();console.log("[URL STORE]: ",t);const e=await gn.getInfoCart(t);return new yn(e)};const Sn=async(t,e)=>{const n=await gn.getInfoBonus(t,e);return bn.of(n)};const On=async(t,e,n={})=>{console.log("[bc:salvando metadados]");await gn.patchInfoBonus({storeName:t,cartId:e,metadata:n});console.log("[bc:salvo metadados]")};const En=()=>{const t=window.location.origin;if(t.includes("localhost")){return fn}if(t.includes("checkout")){return t}if(t.includes("fbits")){return t}if(t.includes("www.")){return t.replace("www","checkout")}return`${window.location.protocol}//checkout.${window.location.host}`};export{mn as C,pn as U,Sn as a,yn as b,dn as c,Rn as g,On as p};
|
2
|
-
//# sourceMappingURL=p-
|
1
|
+
function t(t,e){return function n(){return t.apply(e,arguments)}}const{toString:e}=Object.prototype;const{getPrototypeOf:n}=Object;const o=(t=>n=>{const o=e.call(n);return t[o]||(t[o]=o.slice(8,-1).toLowerCase())})(Object.create(null));const r=t=>{t=t.toLowerCase();return e=>o(e)===t};const s=t=>e=>typeof e===t;const{isArray:i}=Array;const c=s("undefined");function a(t){return t!==null&&!c(t)&&t.constructor!==null&&!c(t.constructor)&&d(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const u=r("ArrayBuffer");function l(t){let e;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){e=ArrayBuffer.isView(t)}else{e=t&&t.buffer&&u(t.buffer)}return e}const f=s("string");const d=s("function");const h=s("number");const p=t=>t!==null&&typeof t==="object";const m=t=>t===true||t===false;const w=t=>{if(o(t)!=="object"){return false}const e=n(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)};const y=r("Date");const b=r("File");const g=r("Blob");const R=r("FileList");const S=t=>p(t)&&d(t.pipe);const O=t=>{let e;return t&&(typeof FormData==="function"&&t instanceof FormData||d(t.append)&&((e=o(t))==="formdata"||e==="object"&&d(t.toString)&&t.toString()==="[object FormData]"))};const E=r("URLSearchParams");const[T,v,A,j]=["ReadableStream","Request","Response","Headers"].map(r);const C=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function N(t,e,{allOwnKeys:n=false}={}){if(t===null||typeof t==="undefined"){return}let o;let r;if(typeof t!=="object"){t=[t]}if(i(t)){for(o=0,r=t.length;o<r;o++){e.call(null,t[o],o,t)}}else{const r=n?Object.getOwnPropertyNames(t):Object.keys(t);const s=r.length;let i;for(o=0;o<s;o++){i=r[o];e.call(null,t[i],i,t)}}}function x(t,e){e=e.toLowerCase();const n=Object.keys(t);let o=n.length;let r;while(o-- >0){r=n[o];if(e===r.toLowerCase()){return r}}return null}const B=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})();const P=t=>!c(t)&&t!==B;function D(){const{caseless:t}=P(this)&&this||{};const e={};const n=(n,o)=>{const r=t&&x(e,o)||o;if(w(e[r])&&w(n)){e[r]=D(e[r],n)}else if(w(n)){e[r]=D({},n)}else if(i(n)){e[r]=n.slice()}else{e[r]=n}};for(let t=0,e=arguments.length;t<e;t++){arguments[t]&&N(arguments[t],n)}return e}const U=(e,n,o,{allOwnKeys:r}={})=>{N(n,((n,r)=>{if(o&&d(n)){e[r]=t(n,o)}else{e[r]=n}}),{allOwnKeys:r});return e};const F=t=>{if(t.charCodeAt(0)===65279){t=t.slice(1)}return t};const _=(t,e,n,o)=>{t.prototype=Object.create(e.prototype,o);t.prototype.constructor=t;Object.defineProperty(t,"super",{value:e.prototype});n&&Object.assign(t.prototype,n)};const k=(t,e,o,r)=>{let s;let i;let c;const a={};e=e||{};if(t==null)return e;do{s=Object.getOwnPropertyNames(t);i=s.length;while(i-- >0){c=s[i];if((!r||r(c,t,e))&&!a[c]){e[c]=t[c];a[c]=true}}t=o!==false&&n(t)}while(t&&(!o||o(t,e))&&t!==Object.prototype);return e};const q=(t,e,n)=>{t=String(t);if(n===undefined||n>t.length){n=t.length}n-=e.length;const o=t.indexOf(e,n);return o!==-1&&o===n};const I=t=>{if(!t)return null;if(i(t))return t;let e=t.length;if(!h(e))return null;const n=new Array(e);while(e-- >0){n[e]=t[e]}return n};const L=(t=>e=>t&&e instanceof t)(typeof Uint8Array!=="undefined"&&n(Uint8Array));const $=(t,e)=>{const n=t&&t[Symbol.iterator];const o=n.call(t);let r;while((r=o.next())&&!r.done){const n=r.value;e.call(t,n[0],n[1])}};const z=(t,e)=>{let n;const o=[];while((n=t.exec(e))!==null){o.push(n)}return o};const M=r("HTMLFormElement");const H=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function t(e,n,o){return n.toUpperCase()+o}));const J=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype);const K=r("RegExp");const Y=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t);const o={};N(n,((n,r)=>{let s;if((s=e(n,r,t))!==false){o[r]=s||n}}));Object.defineProperties(t,o)};const V=t=>{Y(t,((e,n)=>{if(d(t)&&["arguments","caller","callee"].indexOf(n)!==-1){return false}const o=t[n];if(!d(o))return;e.enumerable=false;if("writable"in e){e.writable=false;return}if(!e.set){e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}}}))};const W=(t,e)=>{const n={};const o=t=>{t.forEach((t=>{n[t]=true}))};i(t)?o(t):o(String(t).split(e));return n};const G=()=>{};const X=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;const Z="abcdefghijklmnopqrstuvwxyz";const Q="0123456789";const tt={DIGIT:Q,ALPHA:Z,ALPHA_DIGIT:Z+Z.toUpperCase()+Q};const et=(t=16,e=tt.ALPHA_DIGIT)=>{let n="";const{length:o}=e;while(t--){n+=e[Math.random()*o|0]}return n};function nt(t){return!!(t&&d(t.append)&&t[Symbol.toStringTag]==="FormData"&&t[Symbol.iterator])}const ot=t=>{const e=new Array(10);const n=(t,o)=>{if(p(t)){if(e.indexOf(t)>=0){return}if(!("toJSON"in t)){e[o]=t;const r=i(t)?[]:{};N(t,((t,e)=>{const s=n(t,o+1);!c(s)&&(r[e]=s)}));e[o]=undefined;return r}}return t};return n(t,0)};const rt=r("AsyncFunction");const st=t=>t&&(p(t)||d(t))&&d(t.then)&&d(t.catch);const it=((t,e)=>{if(t){return setImmediate}return e?((t,e)=>{B.addEventListener("message",(({source:n,data:o})=>{if(n===B&&o===t){e.length&&e.shift()()}}),false);return n=>{e.push(n);B.postMessage(t,"*")}})(`axios@${Math.random()}`,[]):t=>setTimeout(t)})(typeof setImmediate==="function",d(B.postMessage));const ct=typeof queueMicrotask!=="undefined"?queueMicrotask.bind(B):typeof process!=="undefined"&&process.nextTick||it;const at={isArray:i,isArrayBuffer:u,isBuffer:a,isFormData:O,isArrayBufferView:l,isString:f,isNumber:h,isBoolean:m,isObject:p,isPlainObject:w,isReadableStream:T,isRequest:v,isResponse:A,isHeaders:j,isUndefined:c,isDate:y,isFile:b,isBlob:g,isRegExp:K,isFunction:d,isStream:S,isURLSearchParams:E,isTypedArray:L,isFileList:R,forEach:N,merge:D,extend:U,trim:C,stripBOM:F,inherits:_,toFlatObject:k,kindOf:o,kindOfTest:r,endsWith:q,toArray:I,forEachEntry:$,matchAll:z,isHTMLForm:M,hasOwnProperty:J,hasOwnProp:J,reduceDescriptors:Y,freezeMethods:V,toObjectSet:W,toCamelCase:H,noop:G,toFiniteNumber:X,findKey:x,global:B,isContextDefined:P,ALPHABET:tt,generateString:et,isSpecCompliantForm:nt,toJSONObject:ot,isAsyncFn:rt,isThenable:st,setImmediate:it,asap:ct};function ut(t,e,n,o,r){Error.call(this);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack}this.message=t;this.name="AxiosError";e&&(this.code=e);n&&(this.config=n);o&&(this.request=o);if(r){this.response=r;this.status=r.status?r.status:null}}at.inherits(ut,Error,{toJSON:function t(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:at.toJSONObject(this.config),code:this.code,status:this.status}}});const lt=ut.prototype;const ft={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{ft[t]={value:t}}));Object.defineProperties(ut,ft);Object.defineProperty(lt,"isAxiosError",{value:true});ut.from=(t,e,n,o,r,s)=>{const i=Object.create(lt);at.toFlatObject(t,i,(function t(e){return e!==Error.prototype}),(t=>t!=="isAxiosError"));ut.call(i,t.message,e,n,o,r);i.cause=t;i.name=t.name;s&&Object.assign(i,s);return i};const dt=null;function ht(t){return at.isPlainObject(t)||at.isArray(t)}function pt(t){return at.endsWith(t,"[]")?t.slice(0,-2):t}function mt(t,e,n){if(!t)return e;return t.concat(e).map((function t(e,o){e=pt(e);return!n&&o?"["+e+"]":e})).join(n?".":"")}function wt(t){return at.isArray(t)&&!t.some(ht)}const yt=at.toFlatObject(at,{},null,(function t(e){return/^is[A-Z]/.test(e)}));function bt(t,e,n){if(!at.isObject(t)){throw new TypeError("target must be an object")}e=e||new FormData;n=at.toFlatObject(n,{metaTokens:true,dots:false,indexes:false},false,(function t(e,n){return!at.isUndefined(n[e])}));const o=n.metaTokens;const r=n.visitor||l;const s=n.dots;const i=n.indexes;const c=n.Blob||typeof Blob!=="undefined"&&Blob;const a=c&&at.isSpecCompliantForm(e);if(!at.isFunction(r)){throw new TypeError("visitor must be a function")}function u(t){if(t===null)return"";if(at.isDate(t)){return t.toISOString()}if(!a&&at.isBlob(t)){throw new ut("Blob is not supported. Use a Buffer instead.")}if(at.isArrayBuffer(t)||at.isTypedArray(t)){return a&&typeof Blob==="function"?new Blob([t]):Buffer.from(t)}return t}function l(t,n,r){let c=t;if(t&&!r&&typeof t==="object"){if(at.endsWith(n,"{}")){n=o?n:n.slice(0,-2);t=JSON.stringify(t)}else if(at.isArray(t)&&wt(t)||(at.isFileList(t)||at.endsWith(n,"[]"))&&(c=at.toArray(t))){n=pt(n);c.forEach((function t(o,r){!(at.isUndefined(o)||o===null)&&e.append(i===true?mt([n],r,s):i===null?n:n+"[]",u(o))}));return false}}if(ht(t)){return true}e.append(mt(r,n,s),u(t));return false}const f=[];const d=Object.assign(yt,{defaultVisitor:l,convertValue:u,isVisitable:ht});function h(t,n){if(at.isUndefined(t))return;if(f.indexOf(t)!==-1){throw Error("Circular reference detected in "+n.join("."))}f.push(t);at.forEach(t,(function t(o,s){const i=!(at.isUndefined(o)||o===null)&&r.call(e,o,at.isString(s)?s.trim():s,n,d);if(i===true){h(o,n?n.concat(s):[s])}}));f.pop()}if(!at.isObject(t)){throw new TypeError("data must be an object")}h(t);return e}function gt(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function t(n){return e[n]}))}function Rt(t,e){this._pairs=[];t&&bt(t,this,e)}const St=Rt.prototype;St.append=function t(e,n){this._pairs.push([e,n])};St.toString=function t(e){const n=e?function(t){return e.call(this,t,gt)}:gt;return this._pairs.map((function t(e){return n(e[0])+"="+n(e[1])}),"").join("&")};function Ot(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Et(t,e,n){if(!e){return t}const o=n&&n.encode||Ot;const r=n&&n.serialize;let s;if(r){s=r(e,n)}else{s=at.isURLSearchParams(e)?e.toString():new Rt(e,n).toString(o)}if(s){const e=t.indexOf("#");if(e!==-1){t=t.slice(0,e)}t+=(t.indexOf("?")===-1?"?":"&")+s}return t}class Tt{constructor(){this.handlers=[]}use(t,e,n){this.handlers.push({fulfilled:t,rejected:e,synchronous:n?n.synchronous:false,runWhen:n?n.runWhen:null});return this.handlers.length-1}eject(t){if(this.handlers[t]){this.handlers[t]=null}}clear(){if(this.handlers){this.handlers=[]}}forEach(t){at.forEach(this.handlers,(function e(n){if(n!==null){t(n)}}))}}const vt=Tt;const At={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false};const jt=typeof URLSearchParams!=="undefined"?URLSearchParams:Rt;const Ct=typeof FormData!=="undefined"?FormData:null;const Nt=typeof Blob!=="undefined"?Blob:null;const xt={isBrowser:true,classes:{URLSearchParams:jt,FormData:Ct,Blob:Nt},protocols:["http","https","file","blob","url","data"]};const Bt=typeof window!=="undefined"&&typeof document!=="undefined";const Pt=typeof navigator==="object"&&navigator||undefined;const Dt=Bt&&(!Pt||["ReactNative","NativeScript","NS"].indexOf(Pt.product)<0);const Ut=(()=>typeof WorkerGlobalScope!=="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==="function")();const Ft=Bt&&window.location.href||"http://localhost";const _t=Object.freeze({__proto__:null,hasBrowserEnv:Bt,hasStandardBrowserWebWorkerEnv:Ut,hasStandardBrowserEnv:Dt,navigator:Pt,origin:Ft});const kt={..._t,...xt};function qt(t,e){return bt(t,new kt.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,o){if(kt.isNode&&at.isBuffer(t)){this.append(e,t.toString("base64"));return false}return o.defaultVisitor.apply(this,arguments)}},e))}function It(t){return at.matchAll(/\w+|\[(\w*)]/g,t).map((t=>t[0]==="[]"?"":t[1]||t[0]))}function Lt(t){const e={};const n=Object.keys(t);let o;const r=n.length;let s;for(o=0;o<r;o++){s=n[o];e[s]=t[s]}return e}function $t(t){function e(t,n,o,r){let s=t[r++];if(s==="__proto__")return true;const i=Number.isFinite(+s);const c=r>=t.length;s=!s&&at.isArray(o)?o.length:s;if(c){if(at.hasOwnProp(o,s)){o[s]=[o[s],n]}else{o[s]=n}return!i}if(!o[s]||!at.isObject(o[s])){o[s]=[]}const a=e(t,n,o[s],r);if(a&&at.isArray(o[s])){o[s]=Lt(o[s])}return!i}if(at.isFormData(t)&&at.isFunction(t.entries)){const n={};at.forEachEntry(t,((t,o)=>{e(It(t),o,n,0)}));return n}return null}function zt(t,e,n){if(at.isString(t)){try{(e||JSON.parse)(t);return at.trim(t)}catch(t){if(t.name!=="SyntaxError"){throw t}}}return(n||JSON.stringify)(t)}const Mt={transitional:At,adapter:["xhr","http","fetch"],transformRequest:[function t(e,n){const o=n.getContentType()||"";const r=o.indexOf("application/json")>-1;const s=at.isObject(e);if(s&&at.isHTMLForm(e)){e=new FormData(e)}const i=at.isFormData(e);if(i){return r?JSON.stringify($t(e)):e}if(at.isArrayBuffer(e)||at.isBuffer(e)||at.isStream(e)||at.isFile(e)||at.isBlob(e)||at.isReadableStream(e)){return e}if(at.isArrayBufferView(e)){return e.buffer}if(at.isURLSearchParams(e)){n.setContentType("application/x-www-form-urlencoded;charset=utf-8",false);return e.toString()}let c;if(s){if(o.indexOf("application/x-www-form-urlencoded")>-1){return qt(e,this.formSerializer).toString()}if((c=at.isFileList(e))||o.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return bt(c?{"files[]":e}:e,t&&new t,this.formSerializer)}}if(s||r){n.setContentType("application/json",false);return zt(e)}return e}],transformResponse:[function t(e){const n=this.transitional||Mt.transitional;const o=n&&n.forcedJSONParsing;const r=this.responseType==="json";if(at.isResponse(e)||at.isReadableStream(e)){return e}if(e&&at.isString(e)&&(o&&!this.responseType||r)){const t=n&&n.silentJSONParsing;const o=!t&&r;try{return JSON.parse(e)}catch(t){if(o){if(t.name==="SyntaxError"){throw ut.from(t,ut.ERR_BAD_RESPONSE,this,null,this.response)}throw t}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:kt.classes.FormData,Blob:kt.classes.Blob},validateStatus:function t(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":undefined}}};at.forEach(["delete","get","head","post","put","patch"],(t=>{Mt.headers[t]={}}));const Ht=Mt;const Jt=at.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Kt=t=>{const e={};let n;let o;let r;t&&t.split("\n").forEach((function t(s){r=s.indexOf(":");n=s.substring(0,r).trim().toLowerCase();o=s.substring(r+1).trim();if(!n||e[n]&&Jt[n]){return}if(n==="set-cookie"){if(e[n]){e[n].push(o)}else{e[n]=[o]}}else{e[n]=e[n]?e[n]+", "+o:o}}));return e};const Yt=Symbol("internals");function Vt(t){return t&&String(t).trim().toLowerCase()}function Wt(t){if(t===false||t==null){return t}return at.isArray(t)?t.map(Wt):String(t)}function Gt(t){const e=Object.create(null);const n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;while(o=n.exec(t)){e[o[1]]=o[2]}return e}const Xt=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Zt(t,e,n,o,r){if(at.isFunction(o)){return o.call(this,e,n)}if(r){e=n}if(!at.isString(e))return;if(at.isString(o)){return e.indexOf(o)!==-1}if(at.isRegExp(o)){return o.test(e)}}function Qt(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,n)=>e.toUpperCase()+n))}function te(t,e){const n=at.toCamelCase(" "+e);["get","set","has"].forEach((o=>{Object.defineProperty(t,o+n,{value:function(t,n,r){return this[o].call(this,e,t,n,r)},configurable:true})}))}class ee{constructor(t){t&&this.set(t)}set(t,e,n){const o=this;function r(t,e,n){const r=Vt(e);if(!r){throw new Error("header name must be a non-empty string")}const s=at.findKey(o,r);if(!s||o[s]===undefined||n===true||n===undefined&&o[s]!==false){o[s||e]=Wt(t)}}const s=(t,e)=>at.forEach(t,((t,n)=>r(t,n,e)));if(at.isPlainObject(t)||t instanceof this.constructor){s(t,e)}else if(at.isString(t)&&(t=t.trim())&&!Xt(t)){s(Kt(t),e)}else if(at.isHeaders(t)){for(const[e,o]of t.entries()){r(o,e,n)}}else{t!=null&&r(e,t,n)}return this}get(t,e){t=Vt(t);if(t){const n=at.findKey(this,t);if(n){const t=this[n];if(!e){return t}if(e===true){return Gt(t)}if(at.isFunction(e)){return e.call(this,t,n)}if(at.isRegExp(e)){return e.exec(t)}throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){t=Vt(t);if(t){const n=at.findKey(this,t);return!!(n&&this[n]!==undefined&&(!e||Zt(this,this[n],n,e)))}return false}delete(t,e){const n=this;let o=false;function r(t){t=Vt(t);if(t){const r=at.findKey(n,t);if(r&&(!e||Zt(n,n[r],r,e))){delete n[r];o=true}}}if(at.isArray(t)){t.forEach(r)}else{r(t)}return o}clear(t){const e=Object.keys(this);let n=e.length;let o=false;while(n--){const r=e[n];if(!t||Zt(this,this[r],r,t,true)){delete this[r];o=true}}return o}normalize(t){const e=this;const n={};at.forEach(this,((o,r)=>{const s=at.findKey(n,r);if(s){e[s]=Wt(o);delete e[r];return}const i=t?Qt(r):String(r).trim();if(i!==r){delete e[r]}e[i]=Wt(o);n[i]=true}));return this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);at.forEach(this,((n,o)=>{n!=null&&n!==false&&(e[o]=t&&at.isArray(n)?n.join(", "):n)}));return e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);e.forEach((t=>n.set(t)));return n}static accessor(t){const e=this[Yt]=this[Yt]={accessors:{}};const n=e.accessors;const o=this.prototype;function r(t){const e=Vt(t);if(!n[e]){te(o,t);n[e]=true}}at.isArray(t)?t.forEach(r):r(t);return this}}ee.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);at.reduceDescriptors(ee.prototype,(({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[n]=t}}}));at.freezeMethods(ee);const ne=ee;function oe(t,e){const n=this||Ht;const o=e||n;const r=ne.from(o.headers);let s=o.data;at.forEach(t,(function t(o){s=o.call(n,s,r.normalize(),e?e.status:undefined)}));r.normalize();return s}function re(t){return!!(t&&t.__CANCEL__)}function se(t,e,n){ut.call(this,t==null?"canceled":t,ut.ERR_CANCELED,e,n);this.name="CanceledError"}at.inherits(se,ut,{__CANCEL__:true});function ie(t,e,n){const o=n.config.validateStatus;if(!n.status||!o||o(n.status)){t(n)}else{e(new ut("Request failed with status code "+n.status,[ut.ERR_BAD_REQUEST,ut.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}}function ce(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function ae(t,e){t=t||10;const n=new Array(t);const o=new Array(t);let r=0;let s=0;let i;e=e!==undefined?e:1e3;return function c(a){const u=Date.now();const l=o[s];if(!i){i=u}n[r]=a;o[r]=u;let f=s;let d=0;while(f!==r){d+=n[f++];f=f%t}r=(r+1)%t;if(r===s){s=(s+1)%t}if(u-i<e){return}const h=l&&u-l;return h?Math.round(d*1e3/h):undefined}}function ue(t,e){let n=0;let o=1e3/e;let r;let s;const i=(e,o=Date.now())=>{n=o;r=null;if(s){clearTimeout(s);s=null}t.apply(null,e)};const c=(...t)=>{const e=Date.now();const c=e-n;if(c>=o){i(t,e)}else{r=t;if(!s){s=setTimeout((()=>{s=null;i(r)}),o-c)}}};const a=()=>r&&i(r);return[c,a]}const le=(t,e,n=3)=>{let o=0;const r=ae(50,250);return ue((n=>{const s=n.loaded;const i=n.lengthComputable?n.total:undefined;const c=s-o;const a=r(c);const u=s<=i;o=s;const l={loaded:s,total:i,progress:i?s/i:undefined,bytes:c,rate:a?a:undefined,estimated:a&&i&&u?(i-s)/a:undefined,event:n,lengthComputable:i!=null,[e?"download":"upload"]:true};t(l)}),n)};const fe=(t,e)=>{const n=t!=null;return[o=>e[0]({lengthComputable:n,total:t,loaded:o}),e[1]]};const de=t=>(...e)=>at.asap((()=>t(...e)));const he=kt.hasStandardBrowserEnv?function t(){const e=kt.navigator&&/(msie|trident)/i.test(kt.navigator.userAgent);const n=document.createElement("a");let o;function r(t){let o=t;if(e){n.setAttribute("href",o);o=n.href}n.setAttribute("href",o);return{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}o=r(window.location.href);return function t(e){const n=at.isString(e)?r(e):e;return n.protocol===o.protocol&&n.host===o.host}}():function t(){return function t(){return true}}();const pe=kt.hasStandardBrowserEnv?{write(t,e,n,o,r,s){const i=[t+"="+encodeURIComponent(e)];at.isNumber(n)&&i.push("expires="+new Date(n).toGMTString());at.isString(o)&&i.push("path="+o);at.isString(r)&&i.push("domain="+r);s===true&&i.push("secure");document.cookie=i.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function me(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function we(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function ye(t,e){if(t&&!me(e)){return we(t,e)}return e}const be=t=>t instanceof ne?{...t}:t;function ge(t,e){e=e||{};const n={};function o(t,e,n){if(at.isPlainObject(t)&&at.isPlainObject(e)){return at.merge.call({caseless:n},t,e)}else if(at.isPlainObject(e)){return at.merge({},e)}else if(at.isArray(e)){return e.slice()}return e}function r(t,e,n){if(!at.isUndefined(e)){return o(t,e,n)}else if(!at.isUndefined(t)){return o(undefined,t,n)}}function s(t,e){if(!at.isUndefined(e)){return o(undefined,e)}}function i(t,e){if(!at.isUndefined(e)){return o(undefined,e)}else if(!at.isUndefined(t)){return o(undefined,t)}}function c(n,r,s){if(s in e){return o(n,r)}else if(s in t){return o(undefined,n)}}const a={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:c,headers:(t,e)=>r(be(t),be(e),true)};at.forEach(Object.keys(Object.assign({},t,e)),(function o(s){const i=a[s]||r;const u=i(t[s],e[s],s);at.isUndefined(u)&&i!==c||(n[s]=u)}));return n}const Re=t=>{const e=ge({},t);let{data:n,withXSRFToken:o,xsrfHeaderName:r,xsrfCookieName:s,headers:i,auth:c}=e;e.headers=i=ne.from(i);e.url=Et(ye(e.baseURL,e.url),t.params,t.paramsSerializer);if(c){i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")))}let a;if(at.isFormData(n)){if(kt.hasStandardBrowserEnv||kt.hasStandardBrowserWebWorkerEnv){i.setContentType(undefined)}else if((a=i.getContentType())!==false){const[t,...e]=a?a.split(";").map((t=>t.trim())).filter(Boolean):[];i.setContentType([t||"multipart/form-data",...e].join("; "))}}if(kt.hasStandardBrowserEnv){o&&at.isFunction(o)&&(o=o(e));if(o||o!==false&&he(e.url)){const t=r&&s&&pe.read(s);if(t){i.set(r,t)}}}return e};const Se=typeof XMLHttpRequest!=="undefined";const Oe=Se&&function(t){return new Promise((function e(n,o){const r=Re(t);let s=r.data;const i=ne.from(r.headers).normalize();let{responseType:c,onUploadProgress:a,onDownloadProgress:u}=r;let l;let f,d;let h,p;function m(){h&&h();p&&p();r.cancelToken&&r.cancelToken.unsubscribe(l);r.signal&&r.signal.removeEventListener("abort",l)}let w=new XMLHttpRequest;w.open(r.method.toUpperCase(),r.url,true);w.timeout=r.timeout;function y(){if(!w){return}const e=ne.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders());const r=!c||c==="text"||c==="json"?w.responseText:w.response;const s={data:r,status:w.status,statusText:w.statusText,headers:e,config:t,request:w};ie((function t(e){n(e);m()}),(function t(e){o(e);m()}),s);w=null}if("onloadend"in w){w.onloadend=y}else{w.onreadystatechange=function t(){if(!w||w.readyState!==4){return}if(w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)){return}setTimeout(y)}}w.onabort=function e(){if(!w){return}o(new ut("Request aborted",ut.ECONNABORTED,t,w));w=null};w.onerror=function e(){o(new ut("Network Error",ut.ERR_NETWORK,t,w));w=null};w.ontimeout=function e(){let n=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const s=r.transitional||At;if(r.timeoutErrorMessage){n=r.timeoutErrorMessage}o(new ut(n,s.clarifyTimeoutError?ut.ETIMEDOUT:ut.ECONNABORTED,t,w));w=null};s===undefined&&i.setContentType(null);if("setRequestHeader"in w){at.forEach(i.toJSON(),(function t(e,n){w.setRequestHeader(n,e)}))}if(!at.isUndefined(r.withCredentials)){w.withCredentials=!!r.withCredentials}if(c&&c!=="json"){w.responseType=r.responseType}if(u){[d,p]=le(u,true);w.addEventListener("progress",d)}if(a&&w.upload){[f,h]=le(a);w.upload.addEventListener("progress",f);w.upload.addEventListener("loadend",h)}if(r.cancelToken||r.signal){l=e=>{if(!w){return}o(!e||e.type?new se(null,t,w):e);w.abort();w=null};r.cancelToken&&r.cancelToken.subscribe(l);if(r.signal){r.signal.aborted?l():r.signal.addEventListener("abort",l)}}const b=ce(r.url);if(b&&kt.protocols.indexOf(b)===-1){o(new ut("Unsupported protocol "+b+":",ut.ERR_BAD_REQUEST,t));return}w.send(s||null)}))};const Ee=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let n=new AbortController;let o;const r=function(t){if(!o){o=true;i();const e=t instanceof Error?t:this.reason;n.abort(e instanceof ut?e:new se(e instanceof Error?e.message:e))}};let s=e&&setTimeout((()=>{s=null;r(new ut(`timeout ${e} of ms exceeded`,ut.ETIMEDOUT))}),e);const i=()=>{if(t){s&&clearTimeout(s);s=null;t.forEach((t=>{t.unsubscribe?t.unsubscribe(r):t.removeEventListener("abort",r)}));t=null}};t.forEach((t=>t.addEventListener("abort",r)));const{signal:c}=n;c.unsubscribe=()=>at.asap(i);return c}};const Te=Ee;const ve=function*(t,e){let n=t.byteLength;if(!e||n<e){yield t;return}let o=0;let r;while(o<n){r=o+e;yield t.slice(o,r);o=r}};const Ae=async function*(t,e){for await(const n of je(t)){yield*ve(n,e)}};const je=async function*(t){if(t[Symbol.asyncIterator]){yield*t;return}const e=t.getReader();try{for(;;){const{done:t,value:n}=await e.read();if(t){break}yield n}}finally{await e.cancel()}};const Ce=(t,e,n,o)=>{const r=Ae(t,e);let s=0;let i;let c=t=>{if(!i){i=true;o&&o(t)}};return new ReadableStream({async pull(t){try{const{done:e,value:o}=await r.next();if(e){c();t.close();return}let i=o.byteLength;if(n){let t=s+=i;n(t)}t.enqueue(new Uint8Array(o))}catch(t){c(t);throw t}},cancel(t){c(t);return r.return()}},{highWaterMark:2})};const Ne=typeof fetch==="function"&&typeof Request==="function"&&typeof Response==="function";const xe=Ne&&typeof ReadableStream==="function";const Be=Ne&&(typeof TextEncoder==="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer()));const Pe=(t,...e)=>{try{return!!t(...e)}catch(t){return false}};const De=xe&&Pe((()=>{let t=false;const e=new Request(kt.origin,{body:new ReadableStream,method:"POST",get duplex(){t=true;return"half"}}).headers.has("Content-Type");return t&&!e}));const Ue=64*1024;const Fe=xe&&Pe((()=>at.isReadableStream(new Response("").body)));const _e={stream:Fe&&(t=>t.body)};Ne&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!_e[e]&&(_e[e]=at.isFunction(t[e])?t=>t[e]():(t,n)=>{throw new ut(`Response type '${e}' is not supported`,ut.ERR_NOT_SUPPORT,n)})}))})(new Response);const ke=async t=>{if(t==null){return 0}if(at.isBlob(t)){return t.size}if(at.isSpecCompliantForm(t)){const e=new Request(kt.origin,{method:"POST",body:t});return(await e.arrayBuffer()).byteLength}if(at.isArrayBufferView(t)||at.isArrayBuffer(t)){return t.byteLength}if(at.isURLSearchParams(t)){t=t+""}if(at.isString(t)){return(await Be(t)).byteLength}};const qe=async(t,e)=>{const n=at.toFiniteNumber(t.getContentLength());return n==null?ke(e):n};const Ie=Ne&&(async t=>{let{url:e,method:n,data:o,signal:r,cancelToken:s,timeout:i,onDownloadProgress:c,onUploadProgress:a,responseType:u,headers:l,withCredentials:f="same-origin",fetchOptions:d}=Re(t);u=u?(u+"").toLowerCase():"text";let h=Te([r,s&&s.toAbortSignal()],i);let p;const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let w;try{if(a&&De&&n!=="get"&&n!=="head"&&(w=await qe(l,o))!==0){let t=new Request(e,{method:"POST",body:o,duplex:"half"});let n;if(at.isFormData(o)&&(n=t.headers.get("content-type"))){l.setContentType(n)}if(t.body){const[e,n]=fe(w,le(de(a)));o=Ce(t.body,Ue,e,n)}}if(!at.isString(f)){f=f?"include":"omit"}const r="credentials"in Request.prototype;p=new Request(e,{...d,signal:h,method:n.toUpperCase(),headers:l.normalize().toJSON(),body:o,duplex:"half",credentials:r?f:undefined});let s=await fetch(p);const i=Fe&&(u==="stream"||u==="response");if(Fe&&(c||i&&m)){const t={};["status","statusText","headers"].forEach((e=>{t[e]=s[e]}));const e=at.toFiniteNumber(s.headers.get("content-length"));const[n,o]=c&&fe(e,le(de(c),true))||[];s=new Response(Ce(s.body,Ue,n,(()=>{o&&o();m&&m()})),t)}u=u||"text";let y=await _e[at.findKey(_e,u)||"text"](s,t);!i&&m&&m();return await new Promise(((e,n)=>{ie(e,n,{data:y,headers:ne.from(s.headers),status:s.status,statusText:s.statusText,config:t,request:p})}))}catch(e){m&&m();if(e&&e.name==="TypeError"&&/fetch/i.test(e.message)){throw Object.assign(new ut("Network Error",ut.ERR_NETWORK,t,p),{cause:e.cause||e})}throw ut.from(e,e&&e.code,t,p)}});const Le={http:dt,xhr:Oe,fetch:Ie};at.forEach(Le,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const $e=t=>`- ${t}`;const ze=t=>at.isFunction(t)||t===null||t===false;const Me={getAdapter:t=>{t=at.isArray(t)?t:[t];const{length:e}=t;let n;let o;const r={};for(let s=0;s<e;s++){n=t[s];let e;o=n;if(!ze(n)){o=Le[(e=String(n)).toLowerCase()];if(o===undefined){throw new ut(`Unknown adapter '${e}'`)}}if(o){break}r[e||"#"+s]=o}if(!o){const t=Object.entries(r).map((([t,e])=>`adapter ${t} `+(e===false?"is not supported by the environment":"is not available in the build")));let n=e?t.length>1?"since :\n"+t.map($e).join("\n"):" "+$e(t[0]):"as no adapter specified";throw new ut(`There is no suitable adapter to dispatch the request `+n,"ERR_NOT_SUPPORT")}return o},adapters:Le};function He(t){if(t.cancelToken){t.cancelToken.throwIfRequested()}if(t.signal&&t.signal.aborted){throw new se(null,t)}}function Je(t){He(t);t.headers=ne.from(t.headers);t.data=oe.call(t,t.transformRequest);if(["post","put","patch"].indexOf(t.method)!==-1){t.headers.setContentType("application/x-www-form-urlencoded",false)}const e=Me.getAdapter(t.adapter||Ht.adapter);return e(t).then((function e(n){He(t);n.data=oe.call(t,t.transformResponse,n);n.headers=ne.from(n.headers);return n}),(function e(n){if(!re(n)){He(t);if(n&&n.response){n.response.data=oe.call(t,t.transformResponse,n.response);n.response.headers=ne.from(n.response.headers)}}return Promise.reject(n)}))}const Ke="1.7.7";const Ye={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{Ye[t]=function n(o){return typeof o===t||"a"+(e<1?"n ":" ")+t}}));const Ve={};Ye.transitional=function t(e,n,o){function r(t,e){return"[Axios v"+Ke+"] Transitional option '"+t+"'"+e+(o?". "+o:"")}return(t,o,s)=>{if(e===false){throw new ut(r(o," has been removed"+(n?" in "+n:"")),ut.ERR_DEPRECATED)}if(n&&!Ve[o]){Ve[o]=true;console.warn(r(o," has been deprecated since v"+n+" and will be removed in the near future"))}return e?e(t,o,s):true}};function We(t,e,n){if(typeof t!=="object"){throw new ut("options must be an object",ut.ERR_BAD_OPTION_VALUE)}const o=Object.keys(t);let r=o.length;while(r-- >0){const s=o[r];const i=e[s];if(i){const e=t[s];const n=e===undefined||i(e,s,t);if(n!==true){throw new ut("option "+s+" must be "+n,ut.ERR_BAD_OPTION_VALUE)}continue}if(n!==true){throw new ut("Unknown option "+s,ut.ERR_BAD_OPTION)}}}const Ge={assertOptions:We,validators:Ye};const Xe=Ge.validators;class Ze{constructor(t){this.defaults=t;this.interceptors={request:new vt,response:new vt}}async request(t,e){try{return await this._request(t,e)}catch(t){if(t instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const n=e.stack?e.stack.replace(/^.+\n/,""):"";try{if(!t.stack){t.stack=n}else if(n&&!String(t.stack).endsWith(n.replace(/^.+\n.+\n/,""))){t.stack+="\n"+n}}catch(t){}}throw t}}_request(t,e){if(typeof t==="string"){e=e||{};e.url=t}else{e=t||{}}e=ge(this.defaults,e);const{transitional:n,paramsSerializer:o,headers:r}=e;if(n!==undefined){Ge.assertOptions(n,{silentJSONParsing:Xe.transitional(Xe.boolean),forcedJSONParsing:Xe.transitional(Xe.boolean),clarifyTimeoutError:Xe.transitional(Xe.boolean)},false)}if(o!=null){if(at.isFunction(o)){e.paramsSerializer={serialize:o}}else{Ge.assertOptions(o,{encode:Xe.function,serialize:Xe.function},true)}}e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=r&&at.merge(r.common,r[e.method]);r&&at.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete r[t]}));e.headers=ne.concat(s,r);const i=[];let c=true;this.interceptors.request.forEach((function t(n){if(typeof n.runWhen==="function"&&n.runWhen(e)===false){return}c=c&&n.synchronous;i.unshift(n.fulfilled,n.rejected)}));const a=[];this.interceptors.response.forEach((function t(e){a.push(e.fulfilled,e.rejected)}));let u;let l=0;let f;if(!c){const t=[Je.bind(this),undefined];t.unshift.apply(t,i);t.push.apply(t,a);f=t.length;u=Promise.resolve(e);while(l<f){u=u.then(t[l++],t[l++])}return u}f=i.length;let d=e;l=0;while(l<f){const t=i[l++];const e=i[l++];try{d=t(d)}catch(t){e.call(this,t);break}}try{u=Je.call(this,d)}catch(t){return Promise.reject(t)}l=0;f=a.length;while(l<f){u=u.then(a[l++],a[l++])}return u}getUri(t){t=ge(this.defaults,t);const e=ye(t.baseURL,t.url);return Et(e,t.params,t.paramsSerializer)}}at.forEach(["delete","get","head","options"],(function t(e){Ze.prototype[e]=function(t,n){return this.request(ge(n||{},{method:e,url:t,data:(n||{}).data}))}}));at.forEach(["post","put","patch"],(function t(e){function n(t){return function n(o,r,s){return this.request(ge(s||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:o,data:r}))}}Ze.prototype[e]=n();Ze.prototype[e+"Form"]=n(true)}));const Qe=Ze;class tn{constructor(t){if(typeof t!=="function"){throw new TypeError("executor must be a function.")}let e;this.promise=new Promise((function t(n){e=n}));const n=this;this.promise.then((t=>{if(!n._listeners)return;let e=n._listeners.length;while(e-- >0){n._listeners[e](t)}n._listeners=null}));this.promise.then=t=>{let e;const o=new Promise((t=>{n.subscribe(t);e=t})).then(t);o.cancel=function t(){n.unsubscribe(e)};return o};t((function t(o,r,s){if(n.reason){return}n.reason=new se(o,r,s);e(n.reason)}))}throwIfRequested(){if(this.reason){throw this.reason}}subscribe(t){if(this.reason){t(this.reason);return}if(this._listeners){this._listeners.push(t)}else{this._listeners=[t]}}unsubscribe(t){if(!this._listeners){return}const e=this._listeners.indexOf(t);if(e!==-1){this._listeners.splice(e,1)}}toAbortSignal(){const t=new AbortController;const e=e=>{t.abort(e)};this.subscribe(e);t.signal.unsubscribe=()=>this.unsubscribe(e);return t.signal}static source(){let t;const e=new tn((function e(n){t=n}));return{token:e,cancel:t}}}const en=tn;function nn(t){return function e(n){return t.apply(null,n)}}function on(t){return at.isObject(t)&&t.isAxiosError===true}const rn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(rn).forEach((([t,e])=>{rn[e]=t}));const sn=rn;function cn(e){const n=new Qe(e);const o=t(Qe.prototype.request,n);at.extend(o,Qe.prototype,n,{allOwnKeys:true});at.extend(o,n,null,{allOwnKeys:true});o.create=function t(n){return cn(ge(e,n))};return o}const an=cn(Ht);an.Axios=Qe;an.CanceledError=se;an.CancelToken=en;an.isCancel=re;an.VERSION=Ke;an.toFormData=bt;an.AxiosError=ut;an.Cancel=an.CanceledError;an.all=function t(e){return Promise.all(e)};an.spread=nn;an.isAxiosError=on;an.mergeConfig=ge;an.AxiosHeaders=ne;an.formToJSON=t=>$t(at.isHTMLForm(t)?new FormData(t):t);an.getAdapter=Me.getAdapter;an.HttpStatusCode=sn;an.default=an;const un=an;const ln="https://crmbonus-hub-staging-0ff7e3bf68ac.herokuapp.com/api";const fn="http://localhost:3001";const dn=t=>`bc:reserve${t}`;const hn="@BYCODERS_KEY";const pn="bc:used";const mn=t=>`bc:${t}`;class wn{constructor(){this.axiosInstance=un.create({baseURL:ln,headers:{"Content-Type":"application/json",accept:"application/json"}})}static getInstance(){if(this._instance){return this._instance}this._instance=new wn;return this._instance}async getCustomer(t,e){var n,o,r,s;const i=localStorage.getItem("@BYCODERS_KEY");const c={"Content-Type":"application/json",Authorization:`Bearer ${i}`};const a=await this.axiosInstance.get(`/store/${e}/customer/${t}`,{headers:c});if((n=a===null||a===void 0?void 0:a.data)===null||n===void 0?void 0:n.token){this.token=(o=a===null||a===void 0?void 0:a.data)===null||o===void 0?void 0:o.token;localStorage.setItem("@BYCODERS_KEY",(r=a===null||a===void 0?void 0:a.data)===null||r===void 0?void 0:r.token)}return(s=a===null||a===void 0?void 0:a.data)===null||s===void 0?void 0:s.customer}async updateOrder(t){const e=localStorage.getItem("@BYCODERS_KEY");const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};await this.axiosInstance.patch(`/checkouts/${t.cartId}/updateOrder`,{orderId:t.orderId,externalId:t.cartIdCrm},{headers:n});localStorage.removeItem("@BYCODERS_KEY");localStorage.removeItem(pn);localStorage.removeItem(dn(t.cartId))}async sendPin(t,e,n){const o=localStorage.getItem(hn);const r={"Content-Type":"application/json",Authorization:`Bearer ${o}`};const s=await this.axiosInstance.post("/crmbonus/send-pin",{cellphone:t,name:e,storeName:n},{headers:r});return{storeId:s.data.storeId,userId:s.data.userId}}async validatePinBonus(t){const e=localStorage.getItem(hn);const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};const o=await this.axiosInstance.post("/crmbonus/process-pin-bonus",t,{headers:n});return o.data}async reserve(t){const e={"Content-Type":"application/json",Authorization:`Bearer ${this.token}`};const n=await this.axiosInstance.post("/crmbonus/redeem-bonus",t,{headers:e});return n.data}async cancel(t){const e=localStorage.getItem(hn);const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};const o=await this.axiosInstance.post("/crmbonus/cancel-apply-bonus",{ticket:t},{headers:n});return o.data}async getToken(t){var e,n;const o=await this.axiosInstance.post("/wake/requestToken",{storeName:t});this.token=(e=o===null||o===void 0?void 0:o.data)===null||e===void 0?void 0:e.token;localStorage.setItem(hn,this.token);return(n=o===null||o===void 0?void 0:o.data)===null||n===void 0?void 0:n.token}async getCustomization(t){const e={"Content-Type":"application/json",Authorization:`Bearer ${this.token}`};const n=await this.axiosInstance.get(`/stores/${t}/customizations`,{headers:e});localStorage.setItem(mn(t),JSON.stringify(n.data));console.log("getCustomization",n);return n.data}async cancelBonus(t,e){const n=localStorage.getItem(hn);const o={"Content-Type":"application/json",Authorization:`Bearer ${n}`};await this.axiosInstance.post(`/crmbonus/cancel-bonus`,{cartId:t,usedBonus:true,storeName:e},{headers:o});localStorage.setItem(t,"0");localStorage.removeItem(pn)}async getInfoBonus(t,e){const n=localStorage.getItem(hn);const o={"Content-Type":"application/json",Authorization:`Bearer ${n}`};const r=await this.axiosInstance.get(`/crmbonus/order-info/${e}/${t}`,{headers:o});return r.data}async patchInfoBonus(t){const e=localStorage.getItem(hn);const n={"Content-Type":"application/json",Authorization:`Bearer ${e}`};await this.axiosInstance.patch(`/checkouts/${t.cartId}`,{metadata:t.metadata},{headers:n})}async getInfoCart(t){const e=await fetch(`${t}/api/carrinho`,{credentials:"include"}).then((t=>t.json()));return e}}wn._instance=null;class yn{constructor(t){var e;this.products=[];this.id=t.Metadados.id||t.Id;this.middlewareId=(e=t.Metadados)===null||e===void 0?void 0:e.id;this.orderId=t.PedidoId;this.buildUserInfo(t);this.buildStoreInfo(t);this.products=t.Produtos}buildUserInfo(t){this.user={id:t.Usuario?t.Usuario.Id:null}}buildStoreInfo(t){var e;this.store={name:(e=t.Loja)===null||e===void 0?void 0:e.Nome}}}class bn{static of(t){const e=new bn;e.bonusBalance=t.bonusBalance;e.bonusIds=t.bonusIds;e.calculatedValue=t.calculatedValue;e.cartId=t.cartId;e.metadata=t.metadata;e.orderId=t.orderId;e.status=t.status;e.totalDiscount=t.totalDiscount;e.totalValue=t.totalValue;e.isBonusProcessed=t.isBonusProcessed;return e}isExpired(){var t;const e=(t=this===null||this===void 0?void 0:this.metadata)===null||t===void 0?void 0:t.createdAt;if(!e)return true;const n=Date.now();const o=n-e;const r=o/(1e3*60);console.log("diffMinutes",r);return r>6}}const gn=wn.getInstance();const Rn=async()=>{const t=En();console.log("[URL STORE]: ",t);const e=await gn.getInfoCart(t);return new yn(e)};const Sn=async(t,e)=>{const n=await gn.getInfoBonus(t,e);return bn.of(n)};const On=async(t,e,n={})=>{console.log("[bc:salvando metadados]");await gn.patchInfoBonus({storeName:t,cartId:e,metadata:n});console.log("[bc:salvo metadados]")};const En=()=>{const t=window.location.origin;if(t.includes("localhost")){return fn}if(t.includes("checkout")){return t}if(t.includes("fbits")){return t}if(t.includes("www.")){return t.replace("www","checkout")}return`${window.location.protocol}//checkout.${window.location.host}`};export{wn as C,pn as U,Sn as a,yn as b,dn as c,Rn as g,On as p};
|
2
|
+
//# sourceMappingURL=p-e632b13e.js.map
|