@tonder.io/ionic-full-sdk 0.0.38-beta.2 → 0.0.38-beta.4
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/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{AES as t}from"crypto-js";import n from"skyflow-js";import{BaseInlineCheckout as e}from"@tonder.io/ionic-lite-sdk";class o{constructor({apiKey:n,type:e="payment",backgroundColor:o="#141414",color:i="#EBEBEB",cb:r=(()=>{}),url:a="http://checkout.tonder.io/#/"}){this.generateButton=t=>{this.buttonText=t||this.buttonText,this.tonderButton=document.createElement("button"),this.tonderButton.innerHTML=this.buttonText,this.stylishButton(this.tonderButton),this.tonderButton.onclick=this.openCheckout},this.getButton=({buttonText:t})=>(this.generateButton(t),this.tonderButton),this.mountButton=({buttonText:t})=>{this.generateButton(t);const n=document.getElementById("tonder-checkout");try{n&&(n.innerHTML="",n.append(this.tonderButton))}catch(t){console.error(t)}},this.stylishButton=t=>{t.style.backgroundColor=this.backgroundColor,t.style.color=this.color,t.style.display="flex",t.style.justifyContent="center",t.style.border="none",t.style.padding="1rem",t.style.borderRadius="10px",t.style.fontSize="1rem",t.style.width="100%",t.style.boxShadow="0 3px 6px 0 rgba(0,0,0,0.16)"},this.setOrder=({products:t,email:n,shippingCost:e})=>{let o={};return t&&(o.products=t),n&&(o.email=n),e&&(o.shippingCost=e),this.order=Object.assign(Object.assign({},this.order),o),this.order},this.openTabListener=(t,n)=>{const e=setInterval((()=>{t.closed&&(clearInterval(e),n.disabled=!1,n.innerHTML=this.buttonText)}),500)},this.openCheckout=()=>{const n=this.getUrlParams(),e=t.encrypt(n,"url-params-encrypt").toString(),o=encodeURIComponent(e);this.params="?"+o;const i=window.open(this.url+this.params,"_blank","width=1200,height=$800,left=0,top=0");this.tonderButton.disabled=!0,this.tonderButton.innerHTML=`\n <div class="loader"></div>\n <style>\n .loader {\n border: 4px solid ${this.color};\n border-radius: 50%;\n border-top: 4px solid ${this.backgroundColor};\n width: 0.625rem;\n height: 0.625rem;\n -webkit-animation: spin 2s linear infinite; /* Safari */\n animation: spin 2s linear infinite;\n }\n\n /* Safari */\n @-webkit-keyframes spin {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n </style>\n `,this.openTabListener(i,this.tonderButton)},this.getUrlParams=()=>{const t=Object.assign(Object.assign({apiKey:this.apiKey},this.order),{type:this.type});t.products&&(t.products=JSON.stringify(t.products));return new URLSearchParams(t).toString()},this.url=a,this.apiKey=n,this.type=e,this.backgroundColor=o,this.color=i,this.params="",this.order={},this.buttonText="Proceder al pago",this.cb=r,window.addEventListener("message",this.receiveMessage.bind(this),!1)}receiveMessage(t){try{const n=JSON.parse(t.data);this.cb(n)}catch(n){this.cb(t.data)}}}function i(t,n,e,o){return new(e||(e=Promise))((function(i,r){function a(t){try{d(o.next(t))}catch(t){r(t)}}function s(t){try{d(o.throw(t))}catch(t){r(t)}}function d(t){var n;t.done?i(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,s)}d((o=o.apply(t,n||[])).next())}))}function r(t,n,e,o){if("a"===e&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof n?t!==n||!o:!n.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?o:"a"===e?o.call(t):o?o.value:n.get(t)}var a;function s(t,n,e){const o=document.getElementById(`${n}`);o&&(o.classList.add("error-container"),o.innerHTML=t,setTimeout((function(){try{document.querySelector(`#${e}`).disabled=!1}catch(t){}o.classList.remove("error-container"),o.innerHTML=""}),3e3))}function d(t,n){const e=document.getElementById(`${n}`);e&&(e.classList.add("message-container"),e.innerHTML=t,setTimeout((function(){e.classList.remove("message-container"),e.innerHTML=""}),3e3))}"function"==typeof SuppressedError&&SuppressedError,function(t){t.SORIANA="SORIANA",t.OXXO="OXXO",t.SPEI="SPEI",t.CODI="CODI",t.MERCADOPAGO="MERCADOPAGO",t.PAYPAL="PAYPAL",t.COMERCIALMEXICANA="COMERCIALMEXICANA",t.BANCOMER="BANCOMER",t.WALMART="WALMART",t.BODEGA="BODEGA",t.SAMSCLUB="SAMSCLUB",t.SUPERAMA="SUPERAMA",t.CALIMAX="CALIMAX",t.EXTRA="EXTRA",t.CIRCULOK="CIRCULOK",t.SEVEN11="7ELEVEN",t.TELECOMM="TELECOMM",t.BANORTE="BANORTE",t.BENAVIDES="BENAVIDES",t.DELAHORRO="DELAHORRO",t.ELASTURIANO="ELASTURIANO",t.WALDOS="WALDOS",t.ALSUPER="ALSUPER",t.KIOSKO="KIOSKO",t.STAMARIA="STAMARIA",t.LAMASBARATA="LAMASBARATA",t.FARMROMA="FARMROMA",t.FARMUNION="FARMUNION",t.FARMATODO="FARMATODO",t.SFDEASIS="SFDEASIS",t.FARM911="FARM911",t.FARMECONOMICAS="FARMECONOMICAS",t.FARMMEDICITY="FARMMEDICITY",t.RIANXEIRA="RIANXEIRA",t.WESTERNUNION="WESTERNUNION",t.ZONAPAGO="ZONAPAGO",t.CAJALOSANDES="CAJALOSANDES",t.CAJAPAITA="CAJAPAITA",t.CAJASANTA="CAJASANTA",t.CAJASULLANA="CAJASULLANA",t.CAJATRUJILLO="CAJATRUJILLO",t.EDPYME="EDPYME",t.KASNET="KASNET",t.NORANDINO="NORANDINO",t.QAPAQ="QAPAQ",t.RAIZ="RAIZ",t.PAYSER="PAYSER",t.WUNION="WUNION",t.BANCOCONTINENTAL="BANCOCONTINENTAL",t.GMONEY="GMONEY",t.GOPAY="GOPAY",t.WU="WU",t.PUNTOSHEY="PUNTOSHEY",t.AMPM="AMPM",t.JUMBOMARKET="JUMBOMARKET",t.SMELPUEBLO="SMELPUEBLO",t.BAM="BAM",t.REFACIL="REFACIL",t.ACYVALORES="ACYVALORES"}(a||(a={}));const l=t=>"Visa"===t?"https://d35a75syrgujp0.cloudfront.net/cards/visa.png":"Mastercard"===t?"https://d35a75syrgujp0.cloudfront.net/cards/mastercard.png":"American Express"===t?"https://d35a75syrgujp0.cloudfront.net/cards/american_express.png":"https://d35a75syrgujp0.cloudfront.net/cards/default_card.png",c=t=>{const n=Object.assign({},t.fields),e=n.card_number.split("-"),o=e[e.length-1];return n.card_number=`••••${o}`,n},p=t=>t.trim().replace(/\s+/g,""),m=(t,n)=>`\n ${n.reduce(((t,n)=>{const e=(t=>{const n=p(t.toUpperCase());return{[a.SORIANA]:{label:"Soriana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/soriana.png"},[a.OXXO]:{label:"Oxxo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/oxxo.png"},[a.CODI]:{label:"CoDi",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/codi.png"},[a.SPEI]:{label:"SPEI",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/spei.png"},[a.PAYPAL]:{label:"Paypal",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/paypal.png"},[a.COMERCIALMEXICANA]:{label:"Comercial Mexicana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/comercial_exicana.png"},[a.BANCOMER]:{label:"Bancomer",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bancomer.png"},[a.WALMART]:{label:"Walmart",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/walmart.png"},[a.BODEGA]:{label:"Bodega Aurrera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bodega_aurrera.png"},[a.SAMSCLUB]:{label:"Sam´s Club",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/sams_club.png"},[a.SUPERAMA]:{label:"Superama",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/superama.png"},[a.CALIMAX]:{label:"Calimax",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/calimax.png"},[a.EXTRA]:{label:"Tiendas Extra",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/tiendas_extra.png"},[a.CIRCULOK]:{label:"Círculo K",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/circulo_k.png"},[a.SEVEN11]:{label:"7 Eleven",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/7_eleven.png"},[a.TELECOMM]:{label:"Telecomm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/telecomm.png"},[a.BANORTE]:{label:"Banorte",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/banorte.png"},[a.BENAVIDES]:{label:"Farmacias Benavides",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_benavides.png"},[a.DELAHORRO]:{label:"Farmacias del Ahorro",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_ahorro.png"},[a.ELASTURIANO]:{label:"El Asturiano",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/asturiano.png"},[a.WALDOS]:{label:"Waldos",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/waldos.png"},[a.ALSUPER]:{label:"Alsuper",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/al_super.png"},[a.KIOSKO]:{label:"Kiosko",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/kiosko.png"},[a.STAMARIA]:{label:"Farmacias Santa María",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_santa_maria.png"},[a.LAMASBARATA]:{label:"Farmacias la más barata",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_barata.png"},[a.FARMROMA]:{label:"Farmacias Roma",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_roma.png"},[a.FARMUNION]:{label:"Pago en Farmacias Unión",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_union.png"},[a.FARMATODO]:{label:"Pago en Farmacias Farmatodo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_farmatodo.png\t"},[a.SFDEASIS]:{label:"Pago en Farmacias San Francisco de Asís",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_san_francisco.png"},[a.FARM911]:{label:"Farmacias 911",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.FARMECONOMICAS]:{label:"Farmacias Economicas",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.FARMMEDICITY]:{label:"Farmacias Medicity",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.RIANXEIRA]:{label:"Rianxeira",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.WESTERNUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.ZONAPAGO]:{label:"Zona Pago",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJALOSANDES]:{label:"Caja Los Andes",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJAPAITA]:{label:"Caja Paita",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJASANTA]:{label:"Caja Santa",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJASULLANA]:{label:"Caja Sullana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJATRUJILLO]:{label:"Caja Trujillo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.EDPYME]:{label:"Edpyme",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.KASNET]:{label:"KasNet",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.NORANDINO]:{label:"Norandino",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.QAPAQ]:{label:"Qapaq",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.RAIZ]:{label:"Raiz",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.PAYSER]:{label:"Paysera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.WUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.BANCOCONTINENTAL]:{label:"Banco Continental",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.GMONEY]:{label:"Go money",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.GOPAY]:{label:"Go pay",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.WU]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.PUNTOSHEY]:{label:"Puntoshey",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.AMPM]:{label:"Ampm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.JUMBOMARKET]:{label:"Jumbomarket",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.SMELPUEBLO]:{label:"Smelpueblo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.BAM]:{label:"Bam",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.REFACIL]:{label:"Refacil",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.ACYVALORES]:{label:"Acyvalores",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"}}[n]||{icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png",label:""}})(n.payment_method);return`\n ${t}\n <div class="apm-item" id="card_container-${n.pk}">\n <input id="${n.pk}" class="card_selected" name="card_selected" type="radio"/>\n <label class="apm-item-label" for="${n.pk}">\n <div class="apm-image">\n <div class="apm-image-border"></div>\n <img src="${e.icon}" />\n </div>\n <div class="apm-name">${e.label}</div>\n </label>\n </div>`}),"")}\n ${t?"":'\n <style>\n .apm-item-label {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 10px;\n margin-top: 15px;\n margin-bottom: 15px;\n width: 100%;\n }\n\n .apm-item {\n position: relative;\n display: flex;\n justify-content: start;\n align-items: center;\n gap: 33% 15px;\n border-bottom: 1px solid #e2e8f0;\n padding: 0px 30px;\n }\n\n .apm-item:first-child {\n border-top: 1px solid #e2e8f0;\n }\n\n .apm-item .apm-name {\n font-size: 16px;\n }\n .apm-image {\n width: 30px;\n height: 30px;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .apm-image img {\n width: auto;\n height: 30px;\n }\n .apm-image-border{\n position: absolute;\n border: 1px solid #bababa36;\n border-radius: 4px;\n pointer-events: none;\n box-sizing: border-box;\n width: 100%;\n height: 97%;\n }\n\n .card_selected {\n position: relative;\n width: 16px;\n min-width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n border: 1px #bababa solid;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 0;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked {\n border: 1px #3bc635 solid;\n position: relative;\n width: 16px;\n height: 16px;\n min-width: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked:before {\n content: "";\n border: 1px #3bc635 solid;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 50;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:hover:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n opacity: 10;\n }\n\n </style>\n '}\n `,u={inputStyles:{base:{border:"1px solid #e0e0e0",padding:"10px 7px",borderRadius:"5px",color:"#1d1d1d",marginTop:"2px",backgroundColor:"white",fontFamily:'"Inter", sans-serif',fontSize:"16px","&::placeholder":{color:"#ccc"}},cardIcon:{position:"absolute",left:"6px",bottom:"calc(50% - 12px)"},complete:{color:"#4caf50"},empty:{},focus:{},invalid:{border:"1px solid #f44336"},global:{"@import":'url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap")'}},labelStyles:{base:{fontSize:"12px",fontWeight:"500",fontFamily:'"Inter", sans-serif'}},errorTextStyles:{base:{fontSize:"12px",fontWeight:"500",color:"#f44336",fontFamily:'"Inter", sans-serif'}},labels:{cardLabel:"",cvvLabel:"",expiryMonthLabel:"",expiryYearLabel:""},placeholders:{cardPlaceholder:"",cvvPlaceholder:"",expiryMonthPlaceholder:"",expiryYearPlaceholder:""}};function h(t,e,o,r,a={},s,d){return i(this,void 0,void 0,(function*(){const l=yield n.init({vaultID:t,vaultURL:e,getBearerToken:()=>i(this,void 0,void 0,(function*(){const t=yield fetch(`${o}/api/v1/vault-token/`,{method:"GET",headers:{Authorization:`Token ${d}`},signal:r});if(t.ok){return(yield t.json()).token}throw new Error("Failed to retrieve bearer token")})),options:{logLevel:n.LogLevel.ERROR,env:n.Env.DEV}}),c=yield l.container(n.ContainerType.COLLECT);var p=0===Object.keys(a).length?u:a;const m=Object.assign({},p.inputStyles.base);m.textIndent="44px";const h={type:n.ValidationRuleType.LENGTH_MATCH_RULE,params:{max:70,error:"El campo nombre del titular debe tener menos de 70 caracteres"}},y=RegExp("^(?!s*$).+"),g={type:n.ValidationRuleType.REGEX_MATCH_RULE,params:{regex:y,error:"El campo es requerido"}},b=yield c.create(Object.assign(Object.assign({table:"cards",column:"cardholder_name"},p),{label:"Titular de la tarjeta",placeholder:"Nombre como aparece en la tarjeta",type:n.ElementType.CARDHOLDER_NAME,validations:[h,g]}));"on"in b&&(b.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorCardHolderIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),b.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.holderName),e=document.getElementById("errorCardHolderIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCardHolderIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo titular de la tarjeta es inválido",null==n||n.appendChild(e)}})));const f=yield c.create(Object.assign(Object.assign({table:"cards",column:"card_number"},p),{inputStyles:Object.assign(Object.assign({},p.inputStyles),{base:m}),label:"Número de tarjeta",placeholder:"1234 1234 1234 1234",type:n.ElementType.CARD_NUMBER,validations:[g]}));"on"in f&&(f.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorCardNumberIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),f.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.cardNumber),e=document.getElementById("errorCardNumberIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCardNumberIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo número de tarjeta es inválido",null==n||n.appendChild(e)}})));const v=yield c.create(Object.assign(Object.assign({table:"cards",column:"cvv"},p),{label:"CVC/CVV",placeholder:"3-4 dígitos",type:n.ElementType.CVV,validations:[g]}));"on"in v&&(v.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorCvvIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),v.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.cvv),e=document.getElementById("errorCvvIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCvvIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo es inválido",null==n||n.appendChild(e)}})));const A=yield c.create(Object.assign(Object.assign({table:"cards",column:"expiration_month"},p),{label:"Fecha de expiración",placeholder:"MM",type:n.ElementType.EXPIRATION_MONTH,validations:[g]}));"on"in A&&(A.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorExpiryMonthIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),A.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.expirationMonth),e=document.getElementById("errorExpiryMonthIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorExpiryMonthIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo es inválido",null==n||n.appendChild(e)}})));const x=yield c.create(Object.assign(Object.assign({table:"cards",column:"expiration_year"},p),{label:"",placeholder:"AA",type:n.ElementType.EXPIRATION_YEAR,validations:[g]}));return"on"in x&&(x.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorExpiryYearIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),x.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.expirationYear),e=document.getElementById("errorExpiryYearIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorExpiryYearIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo es inválido",null==n||n.appendChild(e)}}))),yield function(t,n,e,o,r){return i(this,void 0,void 0,(function*(){t.element.mount(`#${t.id}`),n.element.mount(`#${n.id}`),e.element.mount(`#${e.id}`),o.element.mount(`#${o.id}`),r.element.mount(`#${r.id}`)}))}({id:s.cardNumber,element:f},{id:s.cvv,element:v},{id:s.expirationMonth,element:A},{id:s.expirationYear,element:x},{id:s.holderName,element:b}),{container:c,elements:{cardHolderNameElement:b,cardNumberElement:f,cvvElement:v,expiryMonthElement:A,expiryYearElement:x}}}))}var y,g,b,f,v,A,x,E,C,I,O,_,S,N,j,M,T,k,L;class B extends e{constructor({apiKey:t,returnUrl:n,renderPaymentButton:e=!1,callBack:o=(()=>{}),styles:i,containerId:r,collectorIds:a,isOpenPaySandbox:s,isEnrollmentCard:d,renderSaveCardButton:l,mode:c="stage",customization:p}){super({apiKey:t,returnUrl:n,mode:c,callBack:o}),y.add(this),this.paymentData={},this.apmsInjected=!1,this.apmsData=[],this.isOpenPaySandbox=!0,this.isEnrollmentCard=!1,this.customization={saveCards:{showSaveCardOption:!0,showSaved:!0,autoSave:!1}},this.renderPaymentButton=e,this.renderSaveCardButton=l,this.customStyles=i,this.customization=Object.assign(Object.assign(Object.assign({},this.customization),p||{}),{saveCards:Object.assign(Object.assign({},this.customization.saveCards),(null==p?void 0:p.saveCards)||{})}),this.containerId=r||"tonder-checkout",this.injected=!1,this.cardsInjected=!1,this.collectorIds=a||{cardsListContainer:"cardsListContainer",holderName:"collectCardholderName",cardNumber:"collectCardNumber",expirationMonth:"collectExpirationMonth",expirationYear:"collectExpirationYear",cvv:"collectCvv",tonderPayButton:"tonderPayButton",msgError:"msgError",msgNotification:"msgNotification",tonderSaveCardButton:"tonderSaveCardButton",apmsListContainer:"apmsListContainer"},this.radioChecked="new",this.collectContainer=null,this.isOpenPaySandbox=void 0===s||s,this.isEnrollmentCard=void 0!==d&&d}setCustomerEmail(t){this.customer=Object.assign(Object.assign({},this.customer),{email:t})}setPaymentData(t){t&&(this.paymentData=t)}injectCheckout(){return i(this,void 0,void 0,(function*(){if(this.injected)return;const t=setInterval((()=>i(this,void 0,void 0,(function*(){const n=document.querySelector(`#${this.containerId}`);n&&(n.innerHTML=((t,n,e=!1,o={})=>{var i,r,a,s;return`\n<div class="container-tonder">\n ${(null===(r=null===(i=o.customization)||void 0===i?void 0:i.saveCards)||void 0===r?void 0:r.showSaved)?`<div id="${n.cardsListContainer}" class="cards-list-container"></div>`:""}\n ${e?"":`\n <div class="pay-new-card">\n <input checked id="new" class="card_selected" name="card_selected" type="radio"/>\n <label class="card-item-label-new" for="new">\n <img class="card-image" src="${l("XXXX")}" />\n <div class="card-number">Pagar con tarjeta</div>\n </label>\n </div>\n `}\n <div class="container-form">\n <div id="${n.holderName}" class="empty-div"></div>\n <div id="${n.cardNumber}" class="empty-div"></div>\n <div class="collect-row">\n <div id="${n.expirationMonth}" class="empty-div"></div>\n <div id="${n.expirationYear}" class="expiration-year"></div>\n <div id="${n.cvv}" class="empty-div"></div>\n </div>\n ${!e&&(null===(s=null===(a=o.customization)||void 0===a?void 0:a.saveCards)||void 0===s?void 0:s.showSaveCardOption)?'\n <div class="checkbox">\n <input id="save-checkout-card" type="checkbox">\n <label for="save-checkout-card">\n Guardar tarjeta para futuros pagos\n </label>\n </div>\n ':""}\n <div id="${n.msgError}"></div>\n <div id="${n.msgNotification}"></div>\n </div>\n ${e?"":'\n <div id="apmsListContainer" class="apms-list-container"></div>\n '}\n <div class="container-pay-button">\n <button id="${n.tonderPayButton}" class="pay-button">Pagar</button>\n ${e?`\n <button id="${n.tonderSaveCardButton?n.tonderSaveCardButton:""}" class="save-card-button">Guardar</button>\n `:""} </div>\n</div>\n\n${t?"":`<style>\n\n@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n\n.error-custom-inputs-tonder {\n background-color: white;\n position: absolute;\n left: 0px;\n bottom: -1px;\n width: 100%;\n font-size: 12px;\n color: red;\n font-family: "Inter", sans-serif !important;\n}\n\n.container-form {\n padding: 25px 21px 0px 21px;\n}\n\n.expiration-year .error-custom-inputs-tonder {\n background-color: white;\n position: absolute;\n left: 0px;\n bottom: 3px;\n width: 100%;\n font-size: 12px;\n color: red;\n font-family: "Inter", sans-serif !important;\n}\n\n.container-tonder {\n background-color: #F9F9F9;\n margin: 0 auto !important;\n padding: 30px 0px 30px 0px;\n overflow: hidden;\n transition: max-height 0.5s ease-out;\n max-width: 600px;\n border: solid 1px #e3e3e3;\n}\n\n.container-pay-button{\n padding: ${o.renderPaymentButton?"30px 30px":""};\n}\n\n.collect-row {\n display: flex !important;\n justify-content: space-between !important;\n width: 100% !important;\n}\n\n.collect-row > :first-child {\n min-width: 120px; !important\n}\n\n.expiration-year {\n position: relative !important;\n padding-top: 24px !important;\n}\n\n.empty-div {\n position: relative;\n height: 80px !important;\n margin-top: 2px;\n margin-bottom: 4px;\n margin-left: 10px !important;\n margin-right: 10px !important;\n}\n\n.error-container{\n color: red !important;\n background-color: #FFDBDB !important;\n margin-bottom: 13px !important;\n font-size: 80% !important;\n padding: 8px 10px !important;\n border-radius: 10px !important;\n text-align: left !important;\n}\n\n.message-container{\n color: #3bc635 !important;\n background-color: #DAFCE4 !important;\n margin-bottom: 13px !important;\n font-size: 80% !important;\n padding: 8px 10px !important;\n border-radius: 10px !important;\n text-align: left !important;\n}\n\n.pay-button {\n font-size: 16px;\n font-weight: bold;\n min-height: 2.3rem;\n border-radius: 0.5rem;\n cursor: pointer;\n width: 100%;\n padding: 1rem;\n text-align: center;\n border: none;\n background-color: #000;\n color: #fff;\n margin-bottom: 10px;\n display: none;\n font-family: "Inter", sans-serif !important;\n}\n\n.pay-button:disabled, pay-button[disabled] {\n background-color: #B9B9B9;\n}\n\n.save-card-button {\n font-size: 16px;\n font-weight: bold;\n min-height: 2.3rem;\n border-radius: 0.5rem;\n cursor: pointer;\n width: 100%;\n padding: 1rem;\n text-align: center;\n border: none;\n background-color: #000;\n color: #fff;\n margin-bottom: 10px;\n margin-top: 25px;\n display: none;\n font-family: "Inter", sans-serif !important;\n}\n\n.save-card-button:disabled, save-card-button[disabled] {\n background-color: #B9B9B9;\n}\n\n.lds-dual-ring {\n display: inline-block;\n width: 14px;\n height: 14px;\n}\n\n.lds-dual-ring:after {\n content: " ";\n display: block;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n border: 6px solid #fff;\n border-color: #fff transparent #fff transparent;\n animation: lds-dual-ring 1.2s linear infinite;\n}\n\n@keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@media screen and (max-width: 600px) {\n .payment_method_zplit {\n font-size: 16px !important;\n width: 100% !important;\n }\n\n .payment_method_zplit label img {\n display: none !important;\n }\n}\n\n.cards-list-container {\n display: flex;\n flex-direction: column;\n padding: 0px;\n gap: 33% 20px;\n}\n\n.apms-list-container {\n display: flex;\n flex-direction: column;\n gap: 33% 20px;\n max-height: 300px;\n overflow-y: auto;\n}\n\n.checkbox label {\n margin-left: 10px;\n font-size: 12px;\n font-weight: 500;\n color: #1D1D1D;\n font-family: "Inter", sans-serif !important;\n}\n\n.checkbox {\n margin-top: 10px;\n margin-bottom: 20px;\n margin-left: 10px !important;\n margin-right: 10px !important;\n width: 100%;\n text-align: left;\n}\n\n.pay-new-card {\n display: flex;\n justify-content: start;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 15px;\n margin-top: 10px;\n margin-bottom: 10px;\n padding: 0px 30px;\n width: 100%;\n position: relative;\n}\n\n.pay-new-card .card-number {\n font-size: 16px;\n font-family: "Inter", sans-serif !important;\n}\n\n.card-image {\n width: 39px;\n height: 24px;\n text-align: left;\n}\n\n.card-item-label-new {\n display: flex;\n justify-content: start;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 20px;\n margin-top: 10px;\n margin-bottom: 10px;\n width: 100%;\n}\n\n.card_selected {\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n border: 1px #3bc635 solid;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 0;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:checked {\n border: 1px #3bc635 solid;\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:checked:before {\n content: "";\n border: 1px #3bc635 solid;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 50;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:hover:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n opacity: 10;\n}\n\n</style>\n`}`})(!!this.customStyles,this.collectorIds,this.isEnrollmentCard,{renderPaymentButton:this.renderPaymentButton,customization:this.customization}),yield r(this,y,"m",S).call(this),clearInterval(t),this.injected=!0)}))),500)}))}removeCheckout(){this.injected=!1,this.cardsInjected=!1,this.apmsInjected=!1,this.abortController.abort(),this.abortController=new AbortController,clearInterval(this.injectInterval),console.log("InlineCheckout removed from DOM and cleaned up.")}saveCard(){return i(this,void 0,void 0,(function*(){return new Promise(((t,n)=>i(this,void 0,void 0,(function*(){try{yield r(this,y,"m",T).call(this,!0,"Guardando..."),yield r(this,y,"m",k).call(this),yield r(this,y,"m",T).call(this,!1),t("Tarjeta registrada con éxito")}catch(t){n(t)}}))))}))}_setCartTotal(t){this.cartTotal=t,r(this,y,"m",x).call(this)}_checkout(){return i(this,void 0,void 0,(function*(){try{try{const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);t&&(t.disabled=!0,t.innerHTML="Cargando...")}catch(t){}if(this.merchantData){if("openpay_keys"in this.merchantData){const{business:t}=this.merchantData;let n;n="new"===this.radioChecked||void 0===this.radioChecked?r(this,y,"m",M).call(this,this.collectorIds.tonderPayButton):{skyflow_id:this.radioChecked};const e=yield this._getCustomer(),{auth_token:o}=e;o&&this.customer.email&&(yield r(this,y,"m",L).call(this,o,t.pk,n));const i=this.apmsData?this.apmsData.find((t=>t.pk===this.radioChecked)):null,a=yield this._handleCheckout(Object.assign(Object.assign({},i&&Object.keys(i).length>0?{payment_method:i.payment_method}:{card:n}),{customer:e}));if(a){try{const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);t&&(t.disabled=!1)}catch(t){}return a}return s("No se ha podido procesar el pago",this.collectorIds.msgError,this.collectorIds.tonderPayButton),!1}}else s("No se han configurado los datos del proveedor de servicio",this.collectorIds.msgError,this.collectorIds.tonderPayButton)}catch(t){throw console.log(t),s("Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderPayButton),t}}))}}y=new WeakSet,g=function(t){var n;return i(this,void 0,void 0,(function*(){if(this.cardsInjected||!(null===(n=this.customization.saveCards)||void 0===n?void 0:n.showSaved))return;this.cardsInjected=!1;const e=yield this._getCustomerCards(t,this.merchantData.business.pk);let o=[];if("cards"in e){o=e.cards.map(c);const n=setInterval((()=>{const e=document.querySelector(`#${this.collectorIds.cardsListContainer}`);e&&this.injected&&(e.innerHTML=((t,n)=>`\n ${n.reduce(((t,n)=>`${t}\n <div class="card-item" id="card_container-${n.skyflow_id}">\n <input id="${n.skyflow_id}" class="card_selected" name="card_selected" type="radio"/>\n <label class="card-item-label" for="${n.skyflow_id}">\n <img class="card-image" src="${l(n.card_scheme)}" />\n <div class="card-number">${n.card_number}</div>\n <div class="card-expiration">Exp. ${n.expiration_month}/${n.expiration_year}</div>\n <div class="card-delete-icon">\n <button id="delete_button_${n.skyflow_id}" class="card-delete-button">\n <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px">\n <path fill="currentColor" d="M292.309-140.001q-30.308 0-51.308-21t-21-51.308V-720h-40v-59.999H360v-35.384h240v35.384h179.999V-720h-40v507.691q0 30.308-21 51.308t-51.308 21H292.309ZM376.155-280h59.999v-360h-59.999v360Zm147.691 0h59.999v-360h-59.999v360Z"/>\n </svg>\n </button>\n </div>\n </label>\n </div>`),"")}\n ${t?"":'\n <style>\n\n @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n\n .card-item-label {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 20px;\n margin-top: 15px;\n margin-bottom: 15px;\n width: 100%;\n }\n\n .card-item {\n position: relative;\n display: flex;\n justify-content: start;\n align-items: center;\n gap: 33% 15px;\n border-bottom: 1px solid #e2e8f0;\n padding: 0px 30px;\n }\n\n .card-item .card-number {\n font-size: 16px;\n font-family: "Inter", sans-serif !important;\n }\n\n .card-item .card-expiration {\n font-size: 16px;\n font-family: "Inter", sans-serif !important;\n }\n\n .card-image {\n width: 39px;\n height: 24px;\n text-align: left;\n }\n\n .card-delete-button {\n background-color: transparent !important;\n color: #000000 !important;\n }\n\n .card-delete-button:hover {\n background-color: transparent !important;\n color: #D91C1C !important;\n }\n\n .card_selected {\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n border: 1px #3bc635 solid;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 0;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked {\n border: 1px #3bc635 solid;\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked:before {\n content: "";\n border: 1px #3bc635 solid;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 50;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:hover:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n opacity: 10;\n }\n\n </style>\n '}\n `)(!!this.customStyles,o),clearInterval(n),r(this,y,"m",E).call(this,t),this.cardsInjected=!0)}),500)}}))},b=function(){if(!this.renderPaymentButton)return;const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);if(!t)return void console.error("Pay button not found");t.style.display="block";const n=Intl.NumberFormat("en-Latn-US",{minimumFractionDigits:2}).format(Number(this.cartTotal||0));t.textContent=`Pagar $${n}`,t.onclick=n=>i(this,void 0,void 0,(function*(){n.preventDefault(),yield r(this,y,"m",f).call(this,t)}))},f=function(t){return i(this,void 0,void 0,(function*(){const n=t.innerHTML;t.innerHTML='<div class="lds-dual-ring"></div>';try{const t=yield this.payment(this.paymentData);this.callBack(t)}catch(t){console.error("Payment error:",t)}finally{t.innerHTML=n}}))},v=function(){if(!this.renderSaveCardButton)return;const t=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);t?(t.style.display="block",t.textContent="Guardar",t.onclick=n=>i(this,void 0,void 0,(function*(){n.preventDefault(),yield r(this,y,"m",A).call(this,t)}))):console.error("Save button not found")},A=function(t){return i(this,void 0,void 0,(function*(){const n=t.innerHTML;t.innerHTML='<div class="lds-dual-ring"></div>';try{const t=yield this.saveCard();this.callBack(t)}catch(t){console.error("Save card error:",t)}finally{t.innerHTML=n}}))},x=function(){const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);t&&(t.textContent=`Pagar $${this.cartTotal}`)},E=function(t=""){const n=document.getElementsByName("card_selected");for(const t of n)t.style.display="block",t.onclick=n=>i(this,void 0,void 0,(function*(){yield r(this,y,"m",I).call(this,t)}));const e=document.getElementsByClassName("card-delete-button");for(const n of e)n.addEventListener("click",(e=>i(this,void 0,void 0,(function*(){e.preventDefault(),e.stopImmediatePropagation(),yield r(this,y,"m",C).call(this,t,n)}))),!1)},C=function(t,n){var e,o;return i(this,void 0,void 0,(function*(){const i=n.attributes.getNamedItem("id"),a=null===(o=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.split("_"))||void 0===o?void 0:o[2];if(a){const n=document.querySelector(`#card_container-${a}`);n&&(n.style.display="none"),yield this._removeCustomerCard(t,this.merchantData.business.pk,a),yield r(this,y,"m",g).call(this,t)}}))},I=function(t){return i(this,void 0,void 0,(function*(){const n=document.querySelector(".container-form");n&&(n.style.display="new"===t.id?"block":"none"),"new"===t.id?this.radioChecked!==t.id&&(yield r(this,y,"m",j).call(this)):r(this,y,"m",N).call(this),this.radioChecked=t.id}))},O=function(){return i(this,void 0,void 0,(function*(){try{const t=yield this._fetchCustomerPaymentMethods();t&&t.results&&t.results.length>0&&(this.apmsData=t.results,r(this,y,"m",_).call(this,t.results))}catch(t){console.warn("Error getting APMS")}}))},_=function(t){if(this.apmsInjected)return;const n=setInterval((()=>{const e=document.querySelector(`#${this.collectorIds.apmsListContainer}`);e&&this.injected&&(e.innerHTML=m(!!this.customStyles,t),clearInterval(n),r(this,y,"m",E).call(this),this.apmsInjected=!0)}),500)},S=function(){return i(this,void 0,void 0,(function*(){this.isEnrollmentCard?r(this,y,"m",v).call(this):r(this,y,"m",b).call(this),yield this._initializeCheckout();const{vault_id:t,vault_url:n}=this.merchantData;if(t){if(this.customer.email&&!this.isEnrollmentCard){const t=yield this._getCustomer();if("auth_token"in t){const{auth_token:n}=t;yield r(this,y,"m",g).call(this,n)}}this.isEnrollmentCard||(yield r(this,y,"m",O).call(this)),this.collectContainer=yield h(t,n,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder)}}))},N=function(){this.injected=!1,this.collectContainer&&("unmount"in this.collectContainer.elements.cardHolderNameElement&&this.collectContainer.elements.cardHolderNameElement.unmount(),"unmount"in this.collectContainer.elements.cardNumberElement&&this.collectContainer.elements.cardNumberElement.unmount(),"unmount"in this.collectContainer.elements.expiryYearElement&&this.collectContainer.elements.expiryYearElement.unmount(),"unmount"in this.collectContainer.elements.expiryMonthElement&&this.collectContainer.elements.expiryMonthElement.unmount(),"unmount"in this.collectContainer.elements.cvvElement&&this.collectContainer.elements.cvvElement.unmount())},j=function(){return i(this,void 0,void 0,(function*(){yield this._initializeCheckout();const{vault_id:t,vault_url:n}=this.merchantData;t&&(this.collectContainer=yield h(t,n,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder))}))},M=function(t){var n;return i(this,void 0,void 0,(function*(){if(this.collectContainer&&"container"in this.collectContainer&&"collect"in this.collectContainer.container)try{const t=yield null===(n=this.collectContainer)||void 0===n?void 0:n.container.collect();return yield t.records[0].fields}catch(n){throw s("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,t),n}else s("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,t)}))},T=function(t=!1,n="Guardar"){return i(this,void 0,void 0,(function*(){try{const e=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);e&&(e.disabled=t,e.innerHTML=n)}catch(t){}}))},k=function(){return i(this,void 0,void 0,(function*(){if(this.customer.email)try{if(this.merchantData&&"openpay_keys"in this.merchantData){const t=yield r(this,y,"m",M).call(this,this.collectorIds.tonderSaveCardButton),n=yield this._getCustomer();if("auth_token"in n){const{auth_token:e}=n;yield this._saveCustomerCard(e,this.merchantData.business.pk,{skyflow_id:t.skyflow_id}),d("Tarjeta registrada con éxito",this.collectorIds.msgNotification)}}else s("No se han configurado los datos del proveedor de servicio",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}catch(t){throw s("object"==typeof t&&null!==t&&"message"in t?null==t?void 0:t.message:"Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton),t}}))},L=function(t,n,e){var o;return i(this,void 0,void 0,(function*(){const i=document.getElementById("save-checkout-card");if(i&&"checked"in i&&i.checked||(null===(o=this.customization.saveCards)||void 0===o?void 0:o.autoSave))try{yield this._saveCustomerCard(t,n,e),yield r(this,y,"m",g).call(this,t),d("Tarjeta registrada con éxito",this.collectorIds.msgNotification)}catch(t){"object"==typeof t&&null!==t&&"message"in t&&"Error"!==(null==t?void 0:t.message)&&s(null==t?void 0:t.message,this.collectorIds.msgError,this.collectorIds.tonderPayButton)}}))};export{o as Checkout,B as InlineCheckout};
|
|
1
|
+
import{AES as t}from"crypto-js";import n from"skyflow-js";import{BaseInlineCheckout as e}from"@tonder.io/ionic-lite-sdk";class o{constructor({apiKey:n,type:e="payment",backgroundColor:o="#141414",color:i="#EBEBEB",cb:r=(()=>{}),url:a="http://checkout.tonder.io/#/"}){this.generateButton=t=>{this.buttonText=t||this.buttonText,this.tonderButton=document.createElement("button"),this.tonderButton.innerHTML=this.buttonText,this.stylishButton(this.tonderButton),this.tonderButton.onclick=this.openCheckout},this.getButton=({buttonText:t})=>(this.generateButton(t),this.tonderButton),this.mountButton=({buttonText:t})=>{this.generateButton(t);const n=document.getElementById("tonder-checkout");try{n&&(n.innerHTML="",n.append(this.tonderButton))}catch(t){console.error(t)}},this.stylishButton=t=>{t.style.backgroundColor=this.backgroundColor,t.style.color=this.color,t.style.display="flex",t.style.justifyContent="center",t.style.border="none",t.style.padding="1rem",t.style.borderRadius="10px",t.style.fontSize="1rem",t.style.width="100%",t.style.boxShadow="0 3px 6px 0 rgba(0,0,0,0.16)"},this.setOrder=({products:t,email:n,shippingCost:e})=>{let o={};return t&&(o.products=t),n&&(o.email=n),e&&(o.shippingCost=e),this.order=Object.assign(Object.assign({},this.order),o),this.order},this.openTabListener=(t,n)=>{const e=setInterval((()=>{t.closed&&(clearInterval(e),n.disabled=!1,n.innerHTML=this.buttonText)}),500)},this.openCheckout=()=>{const n=this.getUrlParams(),e=t.encrypt(n,"url-params-encrypt").toString(),o=encodeURIComponent(e);this.params="?"+o;const i=window.open(this.url+this.params,"_blank","width=1200,height=$800,left=0,top=0");this.tonderButton.disabled=!0,this.tonderButton.innerHTML=`\n <div class="loader"></div>\n <style>\n .loader {\n border: 4px solid ${this.color};\n border-radius: 50%;\n border-top: 4px solid ${this.backgroundColor};\n width: 0.625rem;\n height: 0.625rem;\n -webkit-animation: spin 2s linear infinite; /* Safari */\n animation: spin 2s linear infinite;\n }\n\n /* Safari */\n @-webkit-keyframes spin {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n </style>\n `,this.openTabListener(i,this.tonderButton)},this.getUrlParams=()=>{const t=Object.assign(Object.assign({apiKey:this.apiKey},this.order),{type:this.type});t.products&&(t.products=JSON.stringify(t.products));return new URLSearchParams(t).toString()},this.url=a,this.apiKey=n,this.type=e,this.backgroundColor=o,this.color=i,this.params="",this.order={},this.buttonText="Proceder al pago",this.cb=r,window.addEventListener("message",this.receiveMessage.bind(this),!1)}receiveMessage(t){try{const n=JSON.parse(t.data);this.cb(n)}catch(n){this.cb(t.data)}}}function i(t,n,e,o){return new(e||(e=Promise))((function(i,r){function a(t){try{d(o.next(t))}catch(t){r(t)}}function s(t){try{d(o.throw(t))}catch(t){r(t)}}function d(t){var n;t.done?i(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,s)}d((o=o.apply(t,n||[])).next())}))}function r(t,n,e,o){if("a"===e&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof n?t!==n||!o:!n.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?o:"a"===e?o.call(t):o?o.value:n.get(t)}var a;function s(t,n,e){const o=document.getElementById(`${n}`);o&&(o.classList.add("error-container"),o.innerHTML=t,setTimeout((function(){try{document.querySelector(`#${e}`).disabled=!1}catch(t){}o.classList.remove("error-container"),o.innerHTML=""}),3e3))}function d(t,n){const e=document.getElementById(`${n}`);e&&(e.classList.add("message-container"),e.innerHTML=t,setTimeout((function(){e.classList.remove("message-container"),e.innerHTML=""}),3e3))}"function"==typeof SuppressedError&&SuppressedError,function(t){t.SORIANA="SORIANA",t.OXXO="OXXO",t.SPEI="SPEI",t.CODI="CODI",t.MERCADOPAGO="MERCADOPAGO",t.PAYPAL="PAYPAL",t.COMERCIALMEXICANA="COMERCIALMEXICANA",t.BANCOMER="BANCOMER",t.WALMART="WALMART",t.BODEGA="BODEGA",t.SAMSCLUB="SAMSCLUB",t.SUPERAMA="SUPERAMA",t.CALIMAX="CALIMAX",t.EXTRA="EXTRA",t.CIRCULOK="CIRCULOK",t.SEVEN11="7ELEVEN",t.TELECOMM="TELECOMM",t.BANORTE="BANORTE",t.BENAVIDES="BENAVIDES",t.DELAHORRO="DELAHORRO",t.ELASTURIANO="ELASTURIANO",t.WALDOS="WALDOS",t.ALSUPER="ALSUPER",t.KIOSKO="KIOSKO",t.STAMARIA="STAMARIA",t.LAMASBARATA="LAMASBARATA",t.FARMROMA="FARMROMA",t.FARMUNION="FARMUNION",t.FARMATODO="FARMATODO",t.SFDEASIS="SFDEASIS",t.FARM911="FARM911",t.FARMECONOMICAS="FARMECONOMICAS",t.FARMMEDICITY="FARMMEDICITY",t.RIANXEIRA="RIANXEIRA",t.WESTERNUNION="WESTERNUNION",t.ZONAPAGO="ZONAPAGO",t.CAJALOSANDES="CAJALOSANDES",t.CAJAPAITA="CAJAPAITA",t.CAJASANTA="CAJASANTA",t.CAJASULLANA="CAJASULLANA",t.CAJATRUJILLO="CAJATRUJILLO",t.EDPYME="EDPYME",t.KASNET="KASNET",t.NORANDINO="NORANDINO",t.QAPAQ="QAPAQ",t.RAIZ="RAIZ",t.PAYSER="PAYSER",t.WUNION="WUNION",t.BANCOCONTINENTAL="BANCOCONTINENTAL",t.GMONEY="GMONEY",t.GOPAY="GOPAY",t.WU="WU",t.PUNTOSHEY="PUNTOSHEY",t.AMPM="AMPM",t.JUMBOMARKET="JUMBOMARKET",t.SMELPUEBLO="SMELPUEBLO",t.BAM="BAM",t.REFACIL="REFACIL",t.ACYVALORES="ACYVALORES"}(a||(a={}));const l=t=>"Visa"===t?"https://d35a75syrgujp0.cloudfront.net/cards/visa.png":"Mastercard"===t?"https://d35a75syrgujp0.cloudfront.net/cards/mastercard.png":"American Express"===t?"https://d35a75syrgujp0.cloudfront.net/cards/american_express.png":"https://d35a75syrgujp0.cloudfront.net/cards/default_card.png",c=t=>{const n=Object.assign({},t.fields),e=n.card_number.split("-"),o=e[e.length-1];return n.card_number=`••••${o}`,n},p=t=>t.trim().replace(/\s+/g,""),m=(t,n)=>`\n ${n.reduce(((t,n)=>{const e=(t=>{const n=p(t.toUpperCase());return{[a.SORIANA]:{label:"Soriana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/soriana.png"},[a.OXXO]:{label:"Oxxo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/oxxo.png"},[a.CODI]:{label:"CoDi",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/codi.png"},[a.SPEI]:{label:"SPEI",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/spei.png"},[a.PAYPAL]:{label:"Paypal",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/paypal.png"},[a.COMERCIALMEXICANA]:{label:"Comercial Mexicana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/comercial_exicana.png"},[a.BANCOMER]:{label:"Bancomer",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bancomer.png"},[a.WALMART]:{label:"Walmart",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/walmart.png"},[a.BODEGA]:{label:"Bodega Aurrera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bodega_aurrera.png"},[a.SAMSCLUB]:{label:"Sam´s Club",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/sams_club.png"},[a.SUPERAMA]:{label:"Superama",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/superama.png"},[a.CALIMAX]:{label:"Calimax",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/calimax.png"},[a.EXTRA]:{label:"Tiendas Extra",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/tiendas_extra.png"},[a.CIRCULOK]:{label:"Círculo K",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/circulo_k.png"},[a.SEVEN11]:{label:"7 Eleven",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/7_eleven.png"},[a.TELECOMM]:{label:"Telecomm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/telecomm.png"},[a.BANORTE]:{label:"Banorte",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/banorte.png"},[a.BENAVIDES]:{label:"Farmacias Benavides",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_benavides.png"},[a.DELAHORRO]:{label:"Farmacias del Ahorro",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_ahorro.png"},[a.ELASTURIANO]:{label:"El Asturiano",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/asturiano.png"},[a.WALDOS]:{label:"Waldos",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/waldos.png"},[a.ALSUPER]:{label:"Alsuper",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/al_super.png"},[a.KIOSKO]:{label:"Kiosko",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/kiosko.png"},[a.STAMARIA]:{label:"Farmacias Santa María",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_santa_maria.png"},[a.LAMASBARATA]:{label:"Farmacias la más barata",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_barata.png"},[a.FARMROMA]:{label:"Farmacias Roma",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_roma.png"},[a.FARMUNION]:{label:"Pago en Farmacias Unión",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_union.png"},[a.FARMATODO]:{label:"Pago en Farmacias Farmatodo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_farmatodo.png\t"},[a.SFDEASIS]:{label:"Pago en Farmacias San Francisco de Asís",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_san_francisco.png"},[a.FARM911]:{label:"Farmacias 911",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.FARMECONOMICAS]:{label:"Farmacias Economicas",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.FARMMEDICITY]:{label:"Farmacias Medicity",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.RIANXEIRA]:{label:"Rianxeira",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.WESTERNUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.ZONAPAGO]:{label:"Zona Pago",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJALOSANDES]:{label:"Caja Los Andes",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJAPAITA]:{label:"Caja Paita",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJASANTA]:{label:"Caja Santa",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJASULLANA]:{label:"Caja Sullana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.CAJATRUJILLO]:{label:"Caja Trujillo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.EDPYME]:{label:"Edpyme",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.KASNET]:{label:"KasNet",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.NORANDINO]:{label:"Norandino",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.QAPAQ]:{label:"Qapaq",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.RAIZ]:{label:"Raiz",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.PAYSER]:{label:"Paysera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.WUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.BANCOCONTINENTAL]:{label:"Banco Continental",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.GMONEY]:{label:"Go money",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.GOPAY]:{label:"Go pay",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.WU]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.PUNTOSHEY]:{label:"Puntoshey",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.AMPM]:{label:"Ampm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.JUMBOMARKET]:{label:"Jumbomarket",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.SMELPUEBLO]:{label:"Smelpueblo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.BAM]:{label:"Bam",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.REFACIL]:{label:"Refacil",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[a.ACYVALORES]:{label:"Acyvalores",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"}}[n]||{icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png",label:""}})(n.payment_method);return`\n ${t}\n <div class="apm-item" id="card_container-${n.pk}">\n <input id="${n.pk}" class="card_selected" name="card_selected" type="radio"/>\n <label class="apm-item-label" for="${n.pk}">\n <div class="apm-image">\n <div class="apm-image-border"></div>\n <img src="${e.icon}" />\n </div>\n <div class="apm-name">${e.label}</div>\n </label>\n </div>`}),"")}\n ${t?"":'\n <style>\n .apm-item-label {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 10px;\n margin-top: 15px;\n margin-bottom: 15px;\n width: 100%;\n }\n\n .apm-item {\n position: relative;\n display: flex;\n justify-content: start;\n align-items: center;\n gap: 33% 15px;\n border-bottom: 1px solid #e2e8f0;\n padding: 0px 30px;\n }\n\n .apm-item:first-child {\n border-top: 1px solid #e2e8f0;\n }\n\n .apm-item .apm-name {\n font-size: 16px;\n }\n .apm-image {\n width: 30px;\n height: 30px;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .apm-image img {\n width: auto;\n height: 30px;\n }\n .apm-image-border{\n position: absolute;\n border: 1px solid #bababa36;\n border-radius: 4px;\n pointer-events: none;\n box-sizing: border-box;\n width: 100%;\n height: 97%;\n }\n\n .card_selected {\n position: relative;\n width: 16px;\n min-width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n border: 1px #bababa solid;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 0;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked {\n border: 1px #3bc635 solid;\n position: relative;\n width: 16px;\n height: 16px;\n min-width: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked:before {\n content: "";\n border: 1px #3bc635 solid;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 50;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:hover:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n opacity: 10;\n }\n\n </style>\n '}\n `,u={inputStyles:{base:{border:"1px solid #e0e0e0",padding:"10px 7px",borderRadius:"5px",color:"#1d1d1d",marginTop:"2px",backgroundColor:"white",fontFamily:'"Inter", sans-serif',fontSize:"16px","&::placeholder":{color:"#ccc"}},cardIcon:{position:"absolute",left:"6px",bottom:"calc(50% - 12px)"},complete:{color:"#4caf50"},empty:{},focus:{},invalid:{border:"1px solid #f44336"},global:{"@import":'url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap")'}},labelStyles:{base:{fontSize:"12px",fontWeight:"500",fontFamily:'"Inter", sans-serif'}},errorTextStyles:{base:{fontSize:"12px",fontWeight:"500",color:"#f44336",fontFamily:'"Inter", sans-serif'}},labels:{cardLabel:"",cvvLabel:"",expiryMonthLabel:"",expiryYearLabel:""},placeholders:{cardPlaceholder:"",cvvPlaceholder:"",expiryMonthPlaceholder:"",expiryYearPlaceholder:""}};function h(t,e,o,r,a={},s,d){return i(this,void 0,void 0,(function*(){const l=yield n.init({vaultID:t,vaultURL:e,getBearerToken:()=>i(this,void 0,void 0,(function*(){const t=yield fetch(`${o}/api/v1/vault-token/`,{method:"GET",headers:{Authorization:`Token ${d}`},signal:r});if(t.ok){return(yield t.json()).token}throw new Error("Failed to retrieve bearer token")})),options:{logLevel:n.LogLevel.ERROR,env:n.Env.DEV}}),c=yield l.container(n.ContainerType.COLLECT);var p=0===Object.keys(a).length?u:a;const m=Object.assign({},p.inputStyles.base);m.textIndent="44px";const h={type:n.ValidationRuleType.LENGTH_MATCH_RULE,params:{max:70,error:"El campo nombre del titular debe tener menos de 70 caracteres"}},y=RegExp("^(?!s*$).+"),g={type:n.ValidationRuleType.REGEX_MATCH_RULE,params:{regex:y,error:"El campo es requerido"}},b=yield c.create(Object.assign(Object.assign({table:"cards",column:"cardholder_name"},p),{label:"Titular de la tarjeta",placeholder:"Nombre como aparece en la tarjeta",type:n.ElementType.CARDHOLDER_NAME,validations:[h,g]}));"on"in b&&(b.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorCardHolderIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),b.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.holderName),e=document.getElementById("errorCardHolderIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCardHolderIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo titular de la tarjeta es inválido",null==n||n.appendChild(e)}})));const f=yield c.create(Object.assign(Object.assign({table:"cards",column:"card_number"},p),{inputStyles:Object.assign(Object.assign({},p.inputStyles),{base:m}),label:"Número de tarjeta",placeholder:"1234 1234 1234 1234",type:n.ElementType.CARD_NUMBER,validations:[g]}));"on"in f&&(f.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorCardNumberIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),f.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.cardNumber),e=document.getElementById("errorCardNumberIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCardNumberIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo número de tarjeta es inválido",null==n||n.appendChild(e)}})));const v=yield c.create(Object.assign(Object.assign({table:"cards",column:"cvv"},p),{label:"CVC/CVV",placeholder:"3-4 dígitos",type:n.ElementType.CVV,validations:[g]}));"on"in v&&(v.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorCvvIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),v.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.cvv),e=document.getElementById("errorCvvIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCvvIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo es inválido",null==n||n.appendChild(e)}})));const A=yield c.create(Object.assign(Object.assign({table:"cards",column:"expiration_month"},p),{label:"Fecha de expiración",placeholder:"MM",type:n.ElementType.EXPIRATION_MONTH,validations:[g]}));"on"in A&&(A.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorExpiryMonthIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),A.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.expirationMonth),e=document.getElementById("errorExpiryMonthIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorExpiryMonthIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo es inválido",null==n||n.appendChild(e)}})));const x=yield c.create(Object.assign(Object.assign({table:"cards",column:"expiration_year"},p),{label:"",placeholder:"AA",type:n.ElementType.EXPIRATION_YEAR,validations:[g]}));return"on"in x&&(x.on(n.EventName.CHANGE,(t=>{let n=document.getElementById("errorExpiryYearIdTonder");n&&t.isValid&&!t.isEmpty&&n.remove()})),x.on(n.EventName.BLUR,(t=>{let n=document.getElementById(s.expirationYear),e=document.getElementById("errorExpiryYearIdTonder");if(e&&e.remove(),!t.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorExpiryYearIdTonder",e.textContent=t.isEmpty?"El campo es requerido":"El campo es inválido",null==n||n.appendChild(e)}}))),yield function(t,n,e,o,r){return i(this,void 0,void 0,(function*(){t.element.mount(`#${t.id}`),n.element.mount(`#${n.id}`),e.element.mount(`#${e.id}`),o.element.mount(`#${o.id}`),r.element.mount(`#${r.id}`)}))}({id:s.cardNumber,element:f},{id:s.cvv,element:v},{id:s.expirationMonth,element:A},{id:s.expirationYear,element:x},{id:s.holderName,element:b}),{container:c,elements:{cardHolderNameElement:b,cardNumberElement:f,cvvElement:v,expiryMonthElement:A,expiryYearElement:x}}}))}var y,g,b,f,v,A,x,E,C,I,O,_,S,N,j,M,T,k,L;class B extends e{constructor({apiKey:t,returnUrl:n,renderPaymentButton:e=!1,callBack:o=(()=>{}),styles:i,containerId:r,collectorIds:a,isOpenPaySandbox:s,isEnrollmentCard:d,renderSaveCardButton:l,mode:c="stage",customization:p}){super({apiKey:t,returnUrl:n,mode:c,callBack:o}),y.add(this),this.paymentData={},this.apmsInjected=!1,this.apmsData=[],this.isOpenPaySandbox=!0,this.isEnrollmentCard=!1,this.customization={saveCards:{showSaveCardOption:!0,showSaved:!0,autoSave:!1}},this.renderPaymentButton=e,this.renderSaveCardButton=l,this.customStyles=i,this.customization=Object.assign(Object.assign(Object.assign({},this.customization),p||{}),{saveCards:Object.assign(Object.assign({},this.customization.saveCards),(null==p?void 0:p.saveCards)||{})}),this.containerId=r||"tonder-checkout",this.injected=!1,this.cardsInjected=!1,this.collectorIds=a||{cardsListContainer:"cardsListContainer",holderName:"collectCardholderName",cardNumber:"collectCardNumber",expirationMonth:"collectExpirationMonth",expirationYear:"collectExpirationYear",cvv:"collectCvv",tonderPayButton:"tonderPayButton",msgError:"msgError",msgNotification:"msgNotification",tonderSaveCardButton:"tonderSaveCardButton",apmsListContainer:"apmsListContainer"},this.radioChecked="new",this.collectContainer=null,this.isOpenPaySandbox=void 0===s||s,this.isEnrollmentCard=void 0!==d&&d}setCustomerEmail(t){this.customer=Object.assign(Object.assign({},this.customer),{email:t})}setPaymentData(t){t&&(this.paymentData=t)}injectCheckout(){return i(this,void 0,void 0,(function*(){if(this.injected)return;const t=setInterval((()=>i(this,void 0,void 0,(function*(){const n=document.querySelector(`#${this.containerId}`);n&&(n.innerHTML=((t,n,e=!1,o={})=>{var i,r,a,s;return`\n<div class="container-tonder">\n ${(null===(r=null===(i=o.customization)||void 0===i?void 0:i.saveCards)||void 0===r?void 0:r.showSaved)?`<div id="${n.cardsListContainer}" class="cards-list-container"></div>`:""}\n ${e?"":`\n <div class="pay-new-card">\n <input checked id="new" class="card_selected" name="card_selected" type="radio"/>\n <label class="card-item-label-new" for="new">\n <img class="card-image" src="${l("XXXX")}" />\n <div class="card-number">Pagar con tarjeta</div>\n </label>\n </div>\n `}\n <div class="container-form">\n <div id="${n.holderName}" class="empty-div"></div>\n <div id="${n.cardNumber}" class="empty-div"></div>\n <div class="collect-row">\n <div id="${n.expirationMonth}" class="empty-div"></div>\n <div id="${n.expirationYear}" class="expiration-year"></div>\n <div id="${n.cvv}" class="empty-div"></div>\n </div>\n ${!e&&(null===(s=null===(a=o.customization)||void 0===a?void 0:a.saveCards)||void 0===s?void 0:s.showSaveCardOption)?'\n <div class="checkbox">\n <input id="save-checkout-card" type="checkbox">\n <label for="save-checkout-card">\n Guardar tarjeta para futuros pagos\n </label>\n </div>\n ':""}\n <div id="${n.msgError}"></div>\n <div id="${n.msgNotification}"></div>\n </div>\n ${e?"":'\n <div id="apmsListContainer" class="apms-list-container"></div>\n '}\n <div class="container-pay-button">\n <button id="${n.tonderPayButton}" class="pay-button">Pagar</button>\n ${e?`\n <button id="${n.tonderSaveCardButton?n.tonderSaveCardButton:""}" class="save-card-button">Guardar</button>\n `:""} </div>\n</div>\n\n${t?"":`<style>\n\n@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n\n.error-custom-inputs-tonder {\n background-color: white;\n position: absolute;\n left: 0px;\n bottom: -1px;\n width: 100%;\n font-size: 12px;\n color: red;\n font-family: "Inter", sans-serif !important;\n}\n\n.container-form {\n padding: 25px 21px 0px 21px;\n}\n\n.expiration-year .error-custom-inputs-tonder {\n background-color: white;\n position: absolute;\n left: 0px;\n bottom: 3px;\n width: 100%;\n font-size: 12px;\n color: red;\n font-family: "Inter", sans-serif !important;\n}\n\n.container-tonder {\n background-color: #F9F9F9;\n margin: 0 auto !important;\n padding: 30px 0px 30px 0px;\n overflow: hidden;\n transition: max-height 0.5s ease-out;\n max-width: 600px;\n border: solid 1px #e3e3e3;\n}\n\n.container-pay-button{\n padding: ${o.renderPaymentButton?"30px 30px":""};\n}\n\n.collect-row {\n display: flex !important;\n justify-content: space-between !important;\n width: 100% !important;\n}\n\n.collect-row > :first-child {\n min-width: 120px; !important\n}\n\n.expiration-year {\n position: relative !important;\n padding-top: 24px !important;\n}\n\n.empty-div {\n position: relative;\n height: 80px !important;\n margin-top: 2px;\n margin-bottom: 4px;\n margin-left: 10px !important;\n margin-right: 10px !important;\n}\n\n.error-container{\n color: red !important;\n background-color: #FFDBDB !important;\n margin-bottom: 13px !important;\n font-size: 80% !important;\n padding: 8px 10px !important;\n border-radius: 10px !important;\n text-align: left !important;\n}\n\n.message-container{\n color: #3bc635 !important;\n background-color: #DAFCE4 !important;\n margin-bottom: 13px !important;\n font-size: 80% !important;\n padding: 8px 10px !important;\n border-radius: 10px !important;\n text-align: left !important;\n}\n\n.pay-button {\n font-size: 16px;\n font-weight: bold;\n min-height: 2.3rem;\n border-radius: 0.5rem;\n cursor: pointer;\n width: 100%;\n padding: 1rem;\n text-align: center;\n border: none;\n background-color: #000;\n color: #fff;\n margin-bottom: 10px;\n display: none;\n font-family: "Inter", sans-serif !important;\n}\n\n.pay-button:disabled, pay-button[disabled] {\n background-color: #B9B9B9;\n}\n\n.save-card-button {\n font-size: 16px;\n font-weight: bold;\n min-height: 2.3rem;\n border-radius: 0.5rem;\n cursor: pointer;\n width: 100%;\n padding: 1rem;\n text-align: center;\n border: none;\n background-color: #000;\n color: #fff;\n margin-bottom: 10px;\n margin-top: 25px;\n display: none;\n font-family: "Inter", sans-serif !important;\n}\n\n.save-card-button:disabled, save-card-button[disabled] {\n background-color: #B9B9B9;\n}\n\n.lds-dual-ring {\n display: inline-block;\n width: 14px;\n height: 14px;\n}\n\n.lds-dual-ring:after {\n content: " ";\n display: block;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n border: 6px solid #fff;\n border-color: #fff transparent #fff transparent;\n animation: lds-dual-ring 1.2s linear infinite;\n}\n\n@keyframes lds-dual-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@media screen and (max-width: 600px) {\n .payment_method_zplit {\n font-size: 16px !important;\n width: 100% !important;\n }\n\n .payment_method_zplit label img {\n display: none !important;\n }\n}\n\n.cards-list-container {\n display: flex;\n flex-direction: column;\n padding: 0px;\n gap: 33% 20px;\n}\n\n.apms-list-container {\n display: flex;\n flex-direction: column;\n gap: 33% 20px;\n max-height: 300px;\n overflow-y: auto;\n}\n\n.checkbox label {\n margin-left: 10px;\n font-size: 12px;\n font-weight: 500;\n color: #1D1D1D;\n font-family: "Inter", sans-serif !important;\n}\n\n.checkbox {\n margin-top: 10px;\n margin-bottom: 20px;\n margin-left: 10px !important;\n margin-right: 10px !important;\n width: 100%;\n text-align: left;\n}\n\n.pay-new-card {\n display: flex;\n justify-content: start;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 15px;\n margin-top: 10px;\n margin-bottom: 10px;\n padding: 0px 30px;\n width: 100%;\n position: relative;\n}\n\n.pay-new-card .card-number {\n font-size: 16px;\n font-family: "Inter", sans-serif !important;\n}\n\n.card-image {\n width: 39px;\n height: 24px;\n text-align: left;\n}\n\n.card-item-label-new {\n display: flex;\n justify-content: start;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 20px;\n margin-top: 10px;\n margin-bottom: 10px;\n width: 100%;\n}\n\n.card_selected {\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n border: 1px #3bc635 solid;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 0;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:checked {\n border: 1px #3bc635 solid;\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:checked:before {\n content: "";\n border: 1px #3bc635 solid;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 50;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.card_selected:hover:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n opacity: 10;\n}\n\n</style>\n`}`})(!!this.customStyles,this.collectorIds,this.isEnrollmentCard,{renderPaymentButton:this.renderPaymentButton,customization:this.customization}),yield r(this,y,"m",S).call(this),clearInterval(t),this.injected=!0)}))),500)}))}removeCheckout(){this.injected=!1,this.cardsInjected=!1,this.apmsInjected=!1,this.abortController.abort(),this.abortController=new AbortController,clearInterval(this.injectInterval),console.log("InlineCheckout removed from DOM and cleaned up.")}saveCard(){return i(this,void 0,void 0,(function*(){return new Promise(((t,n)=>i(this,void 0,void 0,(function*(){try{yield r(this,y,"m",T).call(this,!0,"Guardando..."),yield r(this,y,"m",k).call(this),yield r(this,y,"m",T).call(this,!1),t("Tarjeta registrada con éxito")}catch(t){n(t)}}))))}))}_setCartTotal(t){this.cartTotal=t,r(this,y,"m",x).call(this)}setCartTotal(t){this.cartTotal=t,r(this,y,"m",x).call(this)}_checkout(){return i(this,void 0,void 0,(function*(){try{try{const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);t&&(t.disabled=!0,t.innerHTML="Cargando...")}catch(t){}if(this.merchantData){if("openpay_keys"in this.merchantData){const{business:t}=this.merchantData;let n;n="new"===this.radioChecked||void 0===this.radioChecked?r(this,y,"m",M).call(this,this.collectorIds.tonderPayButton):{skyflow_id:this.radioChecked};const e=yield this._getCustomer(),{auth_token:o}=e;o&&this.customer.email&&(yield r(this,y,"m",L).call(this,o,t.pk,n));const i=this.apmsData?this.apmsData.find((t=>t.pk===this.radioChecked)):null,a=yield this._handleCheckout(Object.assign(Object.assign({},i&&Object.keys(i).length>0?{payment_method:i.payment_method}:{card:n}),{customer:e}));if(a){try{const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);t&&(t.disabled=!1)}catch(t){}return a}return s("No se ha podido procesar el pago",this.collectorIds.msgError,this.collectorIds.tonderPayButton),!1}}else s("No se han configurado los datos del proveedor de servicio",this.collectorIds.msgError,this.collectorIds.tonderPayButton)}catch(t){throw console.log(t),s("Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderPayButton),t}}))}}y=new WeakSet,g=function(t){var n;return i(this,void 0,void 0,(function*(){if(this.cardsInjected||!(null===(n=this.customization.saveCards)||void 0===n?void 0:n.showSaved))return;this.cardsInjected=!1;const e=yield this._getCustomerCards(t,this.merchantData.business.pk);let o=[];if("cards"in e){o=e.cards.map(c);const n=setInterval((()=>{const e=document.querySelector(`#${this.collectorIds.cardsListContainer}`);e&&this.injected&&(e.innerHTML=((t,n)=>`\n ${n.reduce(((t,n)=>`${t}\n <div class="card-item" id="card_container-${n.skyflow_id}">\n <input id="${n.skyflow_id}" class="card_selected" name="card_selected" type="radio"/>\n <label class="card-item-label" for="${n.skyflow_id}">\n <img class="card-image" src="${l(n.card_scheme)}" />\n <div class="card-number">${n.card_number}</div>\n <div class="card-expiration">Exp. ${n.expiration_month}/${n.expiration_year}</div>\n <div class="card-delete-icon">\n <button id="delete_button_${n.skyflow_id}" class="card-delete-button">\n <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px">\n <path fill="currentColor" d="M292.309-140.001q-30.308 0-51.308-21t-21-51.308V-720h-40v-59.999H360v-35.384h240v35.384h179.999V-720h-40v507.691q0 30.308-21 51.308t-51.308 21H292.309ZM376.155-280h59.999v-360h-59.999v360Zm147.691 0h59.999v-360h-59.999v360Z"/>\n </svg>\n </button>\n </div>\n </label>\n </div>`),"")}\n ${t?"":'\n <style>\n\n @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n\n .card-item-label {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #1D1D1D;\n gap: 33% 20px;\n margin-top: 15px;\n margin-bottom: 15px;\n width: 100%;\n }\n\n .card-item {\n position: relative;\n display: flex;\n justify-content: start;\n align-items: center;\n gap: 33% 15px;\n border-bottom: 1px solid #e2e8f0;\n padding: 0px 30px;\n }\n\n .card-item .card-number {\n font-size: 16px;\n font-family: "Inter", sans-serif !important;\n }\n\n .card-item .card-expiration {\n font-size: 16px;\n font-family: "Inter", sans-serif !important;\n }\n\n .card-image {\n width: 39px;\n height: 24px;\n text-align: left;\n }\n\n .card-delete-button {\n background-color: transparent !important;\n color: #000000 !important;\n }\n\n .card-delete-button:hover {\n background-color: transparent !important;\n color: #D91C1C !important;\n }\n\n .card_selected {\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n border: 1px #3bc635 solid;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 0;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked {\n border: 1px #3bc635 solid;\n position: relative;\n width: 16px;\n height: 16px;\n appearance: none;\n cursor: pointer;\n border-radius: 100%;\n color: #3bc635;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:checked:before {\n content: "";\n border: 1px #3bc635 solid;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n opacity: 50;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n \n .card_selected:hover:before {\n width: 8px;\n height: 8px;\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n transform: translate(-50%, -50%);\n border-radius: 100%;\n background-color: #3bc635;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n opacity: 10;\n }\n\n </style>\n '}\n `)(!!this.customStyles,o),clearInterval(n),r(this,y,"m",E).call(this,t),this.cardsInjected=!0)}),500)}}))},b=function(){if(!this.renderPaymentButton)return;const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);if(!t)return void console.error("Pay button not found");t.style.display="block";const n=Intl.NumberFormat("en-Latn-US",{minimumFractionDigits:2}).format(Number(this.cartTotal||0));t.textContent=`Pagar $${n}`,t.onclick=n=>i(this,void 0,void 0,(function*(){n.preventDefault(),yield r(this,y,"m",f).call(this,t)}))},f=function(t){return i(this,void 0,void 0,(function*(){const n=t.innerHTML;t.innerHTML='<div class="lds-dual-ring"></div>';try{const t=yield this.payment(this.paymentData);this.callBack(t)}catch(t){console.error("Payment error:",t)}finally{t.innerHTML=n}}))},v=function(){if(!this.renderSaveCardButton)return;const t=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);t?(t.style.display="block",t.textContent="Guardar",t.onclick=n=>i(this,void 0,void 0,(function*(){n.preventDefault(),yield r(this,y,"m",A).call(this,t)}))):console.error("Save button not found")},A=function(t){return i(this,void 0,void 0,(function*(){const n=t.innerHTML;t.innerHTML='<div class="lds-dual-ring"></div>';try{const t=yield this.saveCard();this.callBack({message:t})}catch(t){console.error("Save card error:",t)}finally{t.innerHTML=n}}))},x=function(){const t=document.querySelector(`#${this.collectorIds.tonderPayButton}`);t&&(t.textContent=`Pagar $${this.cartTotal}`)},E=function(t=""){const n=document.getElementsByName("card_selected");for(const t of n)t.style.display="block",t.onclick=n=>i(this,void 0,void 0,(function*(){yield r(this,y,"m",I).call(this,t)}));const e=document.getElementsByClassName("card-delete-button");for(const n of e)n.addEventListener("click",(e=>i(this,void 0,void 0,(function*(){e.preventDefault(),e.stopImmediatePropagation(),yield r(this,y,"m",C).call(this,t,n)}))),!1)},C=function(t,n){var e,o;return i(this,void 0,void 0,(function*(){const i=n.attributes.getNamedItem("id"),a=null===(o=null===(e=null==i?void 0:i.value)||void 0===e?void 0:e.split("_"))||void 0===o?void 0:o[2];if(a){const n=document.querySelector(`#card_container-${a}`);n&&(n.style.display="none"),yield this._removeCustomerCard(t,this.merchantData.business.pk,a),yield r(this,y,"m",g).call(this,t)}}))},I=function(t){return i(this,void 0,void 0,(function*(){const n=document.querySelector(".container-form");n&&(n.style.display="new"===t.id?"block":"none"),"new"===t.id?this.radioChecked!==t.id&&(yield r(this,y,"m",j).call(this)):r(this,y,"m",N).call(this),this.radioChecked=t.id}))},O=function(){return i(this,void 0,void 0,(function*(){try{const t=yield this._fetchCustomerPaymentMethods();t&&t.results&&t.results.length>0&&(this.apmsData=t.results,r(this,y,"m",_).call(this,t.results))}catch(t){console.warn("Error getting APMS")}}))},_=function(t){if(this.apmsInjected)return;const n=setInterval((()=>{const e=document.querySelector(`#${this.collectorIds.apmsListContainer}`);e&&this.injected&&(e.innerHTML=m(!!this.customStyles,t),clearInterval(n),r(this,y,"m",E).call(this),this.apmsInjected=!0)}),500)},S=function(){return i(this,void 0,void 0,(function*(){this.isEnrollmentCard?r(this,y,"m",v).call(this):r(this,y,"m",b).call(this),yield this._initializeCheckout();const{vault_id:t,vault_url:n}=this.merchantData;if(t){if(this.customer.email&&!this.isEnrollmentCard){const t=yield this._getCustomer();if("auth_token"in t){const{auth_token:n}=t;yield r(this,y,"m",g).call(this,n)}}this.isEnrollmentCard||(yield r(this,y,"m",O).call(this)),this.collectContainer=yield h(t,n,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder)}}))},N=function(){this.injected=!1,this.collectContainer&&("unmount"in this.collectContainer.elements.cardHolderNameElement&&this.collectContainer.elements.cardHolderNameElement.unmount(),"unmount"in this.collectContainer.elements.cardNumberElement&&this.collectContainer.elements.cardNumberElement.unmount(),"unmount"in this.collectContainer.elements.expiryYearElement&&this.collectContainer.elements.expiryYearElement.unmount(),"unmount"in this.collectContainer.elements.expiryMonthElement&&this.collectContainer.elements.expiryMonthElement.unmount(),"unmount"in this.collectContainer.elements.cvvElement&&this.collectContainer.elements.cvvElement.unmount())},j=function(){return i(this,void 0,void 0,(function*(){yield this._initializeCheckout();const{vault_id:t,vault_url:n}=this.merchantData;t&&(this.collectContainer=yield h(t,n,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder))}))},M=function(t){var n;return i(this,void 0,void 0,(function*(){if(this.collectContainer&&"container"in this.collectContainer&&"collect"in this.collectContainer.container)try{const t=yield null===(n=this.collectContainer)||void 0===n?void 0:n.container.collect();return yield t.records[0].fields}catch(n){throw s("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,t),n}else s("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,t)}))},T=function(t=!1,n="Guardar"){return i(this,void 0,void 0,(function*(){try{const e=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);e&&(e.disabled=t,e.innerHTML=n)}catch(t){}}))},k=function(){return i(this,void 0,void 0,(function*(){if(this.customer.email)try{if(this.merchantData&&"openpay_keys"in this.merchantData){const t=yield r(this,y,"m",M).call(this,this.collectorIds.tonderSaveCardButton),n=yield this._getCustomer();if("auth_token"in n){const{auth_token:e}=n;yield this._saveCustomerCard(e,this.merchantData.business.pk,{skyflow_id:t.skyflow_id}),d("Tarjeta registrada con éxito",this.collectorIds.msgNotification)}}else s("No se han configurado los datos del proveedor de servicio",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}catch(t){throw s("object"==typeof t&&null!==t&&"message"in t?null==t?void 0:t.message:"Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton),t}}))},L=function(t,n,e){var o;return i(this,void 0,void 0,(function*(){const i=document.getElementById("save-checkout-card");if(i&&"checked"in i&&i.checked||(null===(o=this.customization.saveCards)||void 0===o?void 0:o.autoSave))try{yield this._saveCustomerCard(t,n,e),yield r(this,y,"m",g).call(this,t),d("Tarjeta registrada con éxito",this.collectorIds.msgNotification)}catch(t){"object"==typeof t&&null!==t&&"message"in t&&"Error"!==(null==t?void 0:t.message)&&s(null==t?void 0:t.message,this.collectorIds.msgError,this.collectorIds.tonderPayButton)}}))};export{o as Checkout,B as InlineCheckout};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonder.io/ionic-full-sdk",
|
|
3
|
-
"version": "0.0.38-beta.
|
|
3
|
+
"version": "0.0.38-beta.4",
|
|
4
4
|
"description": "Tonder ionic full SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@rollup/plugin-commonjs": "^26.0.1",
|
|
14
14
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
15
|
-
"@tonder.io/ionic-lite-sdk": "^0.0.35-beta.
|
|
15
|
+
"@tonder.io/ionic-lite-sdk": "^0.0.35-beta.23",
|
|
16
16
|
"crypto-js": "^4.1.1",
|
|
17
17
|
"skyflow-js": "^1.34.1"
|
|
18
18
|
},
|
|
@@ -144,6 +144,13 @@ export class InlineCheckout extends BaseInlineCheckout {
|
|
|
144
144
|
this.#updatePayButton()
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
// TODO: DEPRECATED
|
|
148
|
+
setCartTotal(total: string) {
|
|
149
|
+
this.cartTotal = total
|
|
150
|
+
this.#updatePayButton()
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
|
|
147
154
|
async #loadCardsList (customerToken: string) {
|
|
148
155
|
if(this.cardsInjected || !this.customization.saveCards?.showSaved) return;
|
|
149
156
|
this.cardsInjected = false
|
|
@@ -229,7 +236,7 @@ export class InlineCheckout extends BaseInlineCheckout {
|
|
|
229
236
|
saveButton.innerHTML = `<div class="lds-dual-ring"></div>`;
|
|
230
237
|
try {
|
|
231
238
|
const response = await this.saveCard();
|
|
232
|
-
this.callBack!(response);
|
|
239
|
+
this.callBack!({message: response});
|
|
233
240
|
} catch (error) {
|
|
234
241
|
console.error("Save card error:", error);
|
|
235
242
|
} finally {
|
|
@@ -66,11 +66,27 @@ export class InlineCheckout {
|
|
|
66
66
|
*/
|
|
67
67
|
setPaymentData(data: IProcessPaymentRequest): void;
|
|
68
68
|
|
|
69
|
+
/**
|
|
70
|
+
* Saves a card to a customer's account. This method can be used to add a new card
|
|
71
|
+
* or update an existing one.
|
|
72
|
+
* @returns {Record<string, any>}
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
saveCard(): Promise<Record<string, any>>;
|
|
76
|
+
|
|
69
77
|
/**
|
|
70
78
|
* @deprecated This method is deprecated and will be removed in a future release.
|
|
71
79
|
* Use the {@link configureCheckout} method
|
|
72
80
|
*/
|
|
73
81
|
setCustomerEmail
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated This method is deprecated and will be removed in a future release.
|
|
85
|
+
* It is no longer necessary to use this method; it is now handled automatically during the payment process
|
|
86
|
+
* using the information from the setPaymentData or payment functions.
|
|
87
|
+
*/
|
|
88
|
+
setCartTotal(total: string)
|
|
89
|
+
|
|
74
90
|
}
|
|
75
91
|
|
|
76
92
|
export type CustomizationOptions = {
|