@tonder.io/ionic-full-sdk 0.0.47-beta.develop.5dfc93a → 0.0.47
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/helpers/template.d.ts +8 -2
- package/dist/helpers/utils.d.ts +16 -0
- package/dist/index.js +1 -1
- package/package.json +3 -1
- package/src/classes/inlineCheckout.ts +17 -14
- package/src/helpers/skyflow.ts +2 -1
- package/src/helpers/template.ts +130 -56
- package/src/helpers/utils.ts +57 -2
|
@@ -22,12 +22,18 @@ export type Card = {
|
|
|
22
22
|
expiration_year: string;
|
|
23
23
|
skyflow_id: string;
|
|
24
24
|
};
|
|
25
|
-
export declare const cardTemplate: (
|
|
25
|
+
export declare const cardTemplate: (data?: {
|
|
26
26
|
renderPaymentButton?: boolean;
|
|
27
27
|
customization?: CustomizationOptions;
|
|
28
|
+
collectorIds: CollectorIds;
|
|
29
|
+
isEnrollmentCard?: boolean;
|
|
30
|
+
customStyles?: any;
|
|
28
31
|
}) => string;
|
|
29
|
-
export declare const cardItemsTemplate: (
|
|
32
|
+
export declare const cardItemsTemplate: (data: {
|
|
33
|
+
cards: Card[];
|
|
30
34
|
collectorIds: CollectorIds;
|
|
31
35
|
renderPaymentButton: boolean;
|
|
36
|
+
acId: string;
|
|
37
|
+
customStyles: any;
|
|
32
38
|
}) => string;
|
|
33
39
|
export declare const apmItemsTemplate: (external: boolean, apms: ITonderPaymentMethod[]) => string;
|
package/dist/helpers/utils.d.ts
CHANGED
|
@@ -31,4 +31,20 @@ export declare const getPaymentMethodDetails: (scheme_data: string) => {
|
|
|
31
31
|
icon: string;
|
|
32
32
|
label: string;
|
|
33
33
|
};
|
|
34
|
+
export declare function generateRandomString(length: number): string;
|
|
35
|
+
export declare function getCardFormLabels(customStyles: any): {
|
|
36
|
+
labels: {
|
|
37
|
+
nameLabel: any;
|
|
38
|
+
cardLabel: any;
|
|
39
|
+
cvvLabel: any;
|
|
40
|
+
expiryDateLabel: any;
|
|
41
|
+
};
|
|
42
|
+
placeholders: {
|
|
43
|
+
namePlaceholder: any;
|
|
44
|
+
cardPlaceholder: any;
|
|
45
|
+
cvvPlaceholder: any;
|
|
46
|
+
expiryMonthPlaceholder: any;
|
|
47
|
+
expiryYearPlaceholder: any;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
34
50
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{AES as n}from"crypto-js";import t from"skyflow-js";import{BaseInlineCheckout as e}from"@tonder.io/ionic-lite-sdk";import o from"accordion-js";class i{constructor({apiKey:t,type:e="payment",backgroundColor:o="#141414",color:i="#EBEBEB",cb:r=()=>{},url:a="http://checkout.tonder.io/#/"}){this.generateButton=n=>{this.buttonText=n||this.buttonText,this.tonderButton=document.createElement("button"),this.tonderButton.innerHTML=this.buttonText,this.stylishButton(this.tonderButton),this.tonderButton.onclick=this.openCheckout},this.getButton=({buttonText:n})=>(this.generateButton(n),this.tonderButton),this.mountButton=({buttonText:n})=>{this.generateButton(n);const t=document.getElementById("tonder-checkout");try{t&&(t.innerHTML="",t.append(this.tonderButton))}catch(n){console.error(n)}},this.stylishButton=n=>{n.style.backgroundColor=this.backgroundColor,n.style.color=this.color,n.style.display="flex",n.style.justifyContent="center",n.style.border="none",n.style.padding="1rem",n.style.borderRadius="10px",n.style.fontSize="1rem",n.style.width="100%",n.style.boxShadow="0 3px 6px 0 rgba(0,0,0,0.16)"},this.setOrder=({products:n,email:t,shippingCost:e})=>{let o={};return n&&(o.products=n),t&&(o.email=t),e&&(o.shippingCost=e),this.order=Object.assign(Object.assign({},this.order),o),this.order},this.openTabListener=(n,t)=>{const e=setInterval((()=>{n.closed&&(clearInterval(e),t.disabled=!1,t.innerHTML=this.buttonText)}),500)},this.openCheckout=()=>{const t=this.getUrlParams(),e=n.encrypt(t,"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 n=Object.assign(Object.assign({apiKey:this.apiKey},this.order),{type:this.type});n.products&&(n.products=JSON.stringify(n.products));return new URLSearchParams(n).toString()},this.url=a,this.apiKey=t,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(n){try{const t=JSON.parse(n.data);this.cb(t)}catch(t){this.cb(n.data)}}}function r(n,t,e,o){return new(e||(e=Promise))((function(i,r){function a(n){try{s(o.next(n))}catch(n){r(n)}}function l(n){try{s(o.throw(n))}catch(n){r(n)}}function s(n){var t;n.done?i(n.value):(t=n.value,t instanceof e?t:new e((function(n){n(t)}))).then(a,l)}s((o=o.apply(n,t||[])).next())}))}function a(n,t,e,o){if("a"===e&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?n!==t||!o:!t.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?o:"a"===e?o.call(n):o?o.value:t.get(n)}var l;function s(n,t,e){const o=document.getElementById(`${t}`);o&&(o.classList.add("error-container"),o.innerHTML=n,setTimeout((function(){try{document.querySelector(`#${e}`).disabled=!1}catch(n){}o.classList.remove("error-container"),o.innerHTML=""}),3e3))}function d(n,t){const e=document.getElementById(`${t}`);e&&(e.classList.add("message-container"),e.innerHTML=n,setTimeout((function(){e.classList.remove("message-container"),e.innerHTML=""}),3e3))}"function"==typeof SuppressedError&&SuppressedError,function(n){n.SORIANA="SORIANA",n.OXXO="OXXO",n.SPEI="SPEI",n.CODI="CODI",n.MERCADOPAGO="MERCADOPAGO",n.PAYPAL="PAYPAL",n.COMERCIALMEXICANA="COMERCIALMEXICANA",n.BANCOMER="BANCOMER",n.WALMART="WALMART",n.BODEGA="BODEGA",n.SAMSCLUB="SAMSCLUB",n.SUPERAMA="SUPERAMA",n.CALIMAX="CALIMAX",n.EXTRA="EXTRA",n.CIRCULOK="CIRCULOK",n.SEVEN11="7ELEVEN",n.TELECOMM="TELECOMM",n.BANORTE="BANORTE",n.BENAVIDES="BENAVIDES",n.DELAHORRO="DELAHORRO",n.ELASTURIANO="ELASTURIANO",n.WALDOS="WALDOS",n.ALSUPER="ALSUPER",n.KIOSKO="KIOSKO",n.STAMARIA="STAMARIA",n.LAMASBARATA="LAMASBARATA",n.FARMROMA="FARMROMA",n.FARMUNION="FARMUNION",n.FARMATODO="FARMATODO",n.SFDEASIS="SFDEASIS",n.FARM911="FARM911",n.FARMECONOMICAS="FARMECONOMICAS",n.FARMMEDICITY="FARMMEDICITY",n.RIANXEIRA="RIANXEIRA",n.WESTERNUNION="WESTERNUNION",n.ZONAPAGO="ZONAPAGO",n.CAJALOSANDES="CAJALOSANDES",n.CAJAPAITA="CAJAPAITA",n.CAJASANTA="CAJASANTA",n.CAJASULLANA="CAJASULLANA",n.CAJATRUJILLO="CAJATRUJILLO",n.EDPYME="EDPYME",n.KASNET="KASNET",n.NORANDINO="NORANDINO",n.QAPAQ="QAPAQ",n.RAIZ="RAIZ",n.PAYSER="PAYSER",n.WUNION="WUNION",n.BANCOCONTINENTAL="BANCOCONTINENTAL",n.GMONEY="GMONEY",n.GOPAY="GOPAY",n.WU="WU",n.PUNTOSHEY="PUNTOSHEY",n.AMPM="AMPM",n.JUMBOMARKET="JUMBOMARKET",n.SMELPUEBLO="SMELPUEBLO",n.BAM="BAM",n.REFACIL="REFACIL",n.ACYVALORES="ACYVALORES"}(l||(l={}));const c=n=>"Visa"===n?"https://d35a75syrgujp0.cloudfront.net/cards/visa.png":"Mastercard"===n?"https://d35a75syrgujp0.cloudfront.net/cards/mastercard.png":"American Express"===n?"https://d35a75syrgujp0.cloudfront.net/cards/american_express.png":"https://d35a75syrgujp0.cloudfront.net/cards/default_card.png",p=n=>{const t=Object.assign({},n.fields),e=t.card_number.split("-"),o=e[e.length-1];return t.card_number=`••••${o}`,t},u=n=>n.trim().replace(/\s+/g,""),m=(n,t,e=!1,o={})=>{var i,r,a,l;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="${t.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="${c("XXXX")}" />\n <div class="card-number">Pagar con tarjeta</div>\n </label>\n </div>\n `}\n <div class="container-form">\n <div id="${t.holderName}" class="empty-div"></div>\n <div id="${t.cardNumber}" class="empty-div"></div>\n <div class="collect-row">\n <div id="${t.expirationMonth}" class="empty-div"></div>\n <div id="${t.expirationYear}" class="expiration-year"></div>\n <div id="${t.cvv}" class="empty-div"></div>\n </div>\n ${!e&&(null===(l=null===(a=o.customization)||void 0===a?void 0:a.saveCards)||void 0===l?void 0:l.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="${t.msgError}"></div>\n <div id="${t.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="${t.tonderPayButton}" class="pay-button hidden">Pagar</button>\n ${e?`\n <button id="${t.tonderSaveCardButton?t.tonderSaveCardButton:""}" class="save-card-button">Guardar</button>\n `:""} </div>\n <iframe class="tds-iframe" allowtransparency="true" id="${t.tdsIframe}"></iframe>\n</div>\n\n<style>\n\n@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n\n.tds-iframe {\n border: none;\n width: 100vw;\n height: 100vh;\n z-index: 30;\n background-color: transparent;\n}\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#${t.tdsIframe} {\n display: none;\n position: fixed;\n width: 100vw;\n height: 100vh;\n inset: 0px;\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 font-family: "Inter", sans-serif !important;\n}\n.hidden{\n display: none;\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`},h=(n,t)=>`\n ${t.reduce(((n,t)=>{const e=(n=>{const t=u(n.toUpperCase());return{[l.SORIANA]:{label:"Soriana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/soriana.png"},[l.OXXO]:{label:"Oxxo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/oxxo.png"},[l.CODI]:{label:"CoDi",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/codi.png"},[l.SPEI]:{label:"SPEI",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/spei.png"},[l.PAYPAL]:{label:"Paypal",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/paypal.png"},[l.COMERCIALMEXICANA]:{label:"Comercial Mexicana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/comercial_exicana.png"},[l.BANCOMER]:{label:"Bancomer",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bancomer.png"},[l.WALMART]:{label:"Walmart",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/walmart.png"},[l.BODEGA]:{label:"Bodega Aurrera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bodega_aurrera.png"},[l.SAMSCLUB]:{label:"Sam´s Club",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/sams_club.png"},[l.SUPERAMA]:{label:"Superama",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/superama.png"},[l.CALIMAX]:{label:"Calimax",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/calimax.png"},[l.EXTRA]:{label:"Tiendas Extra",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/tiendas_extra.png"},[l.CIRCULOK]:{label:"Círculo K",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/circulo_k.png"},[l.SEVEN11]:{label:"7 Eleven",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/7_eleven.png"},[l.TELECOMM]:{label:"Telecomm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/telecomm.png"},[l.BANORTE]:{label:"Banorte",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/banorte.png"},[l.BENAVIDES]:{label:"Farmacias Benavides",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_benavides.png"},[l.DELAHORRO]:{label:"Farmacias del Ahorro",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_ahorro.png"},[l.ELASTURIANO]:{label:"El Asturiano",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/asturiano.png"},[l.WALDOS]:{label:"Waldos",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/waldos.png"},[l.ALSUPER]:{label:"Alsuper",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/al_super.png"},[l.KIOSKO]:{label:"Kiosko",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/kiosko.png"},[l.STAMARIA]:{label:"Farmacias Santa María",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_santa_maria.png"},[l.LAMASBARATA]:{label:"Farmacias la más barata",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_barata.png"},[l.FARMROMA]:{label:"Farmacias Roma",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_roma.png"},[l.FARMUNION]:{label:"Pago en Farmacias Unión",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_union.png"},[l.FARMATODO]:{label:"Pago en Farmacias Farmatodo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_farmatodo.png\t"},[l.SFDEASIS]:{label:"Pago en Farmacias San Francisco de Asís",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_san_francisco.png"},[l.FARM911]:{label:"Farmacias 911",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.FARMECONOMICAS]:{label:"Farmacias Economicas",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.FARMMEDICITY]:{label:"Farmacias Medicity",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.RIANXEIRA]:{label:"Rianxeira",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.WESTERNUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.ZONAPAGO]:{label:"Zona Pago",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.CAJALOSANDES]:{label:"Caja Los Andes",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.CAJAPAITA]:{label:"Caja Paita",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.CAJASANTA]:{label:"Caja Santa",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.CAJASULLANA]:{label:"Caja Sullana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.CAJATRUJILLO]:{label:"Caja Trujillo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.EDPYME]:{label:"Edpyme",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.KASNET]:{label:"KasNet",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.NORANDINO]:{label:"Norandino",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.QAPAQ]:{label:"Qapaq",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.RAIZ]:{label:"Raiz",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.PAYSER]:{label:"Paysera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.WUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.BANCOCONTINENTAL]:{label:"Banco Continental",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.GMONEY]:{label:"Go money",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.GOPAY]:{label:"Go pay",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.WU]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.PUNTOSHEY]:{label:"Puntoshey",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.AMPM]:{label:"Ampm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.JUMBOMARKET]:{label:"Jumbomarket",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.SMELPUEBLO]:{label:"Smelpueblo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.BAM]:{label:"Bam",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.REFACIL]:{label:"Refacil",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[l.ACYVALORES]:{label:"Acyvalores",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"}}[t]||{icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png",label:""}})(t.payment_method);return`\n ${n}\n <div class="apm-item" id="card_container-${t.pk}">\n <input id="${t.pk}" class="card_selected" name="card_selected" type="radio"/>\n <label class="apm-item-label" for="${t.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 \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 `,v={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:{nameLabel:"Titular de la tarjeta",cardLabel:"Número de tarjeta",cvvLabel:"CVC/CVV",expiryDateLabel:"Fecha de expiración"},placeholders:{namePlaceholder:"Nombre como aparece en la tarjeta",cardPlaceholder:"1234 1234 1234 1234",cvvPlaceholder:"3-4 dígitos",expiryMonthPlaceholder:"MM",expiryYearPlaceholder:"AA"}};function y(n,e,o,i){return r(this,arguments,void 0,(function*(n,e,o,i,r={},a,l){var s,d,c,p,u,m,h,y,f,C,E,A,I,L,_,O,P,w,S,j,k,N,M,B,T,R,D,$,U,Y,z,F,H,G,V,K;const q=(yield b(n,e,o,l,i)).container(t.ContainerType.COLLECT);var X=0===Object.keys(r).length?v:Object.assign(Object.assign({},r),{labels:{nameLabel:(null===(s=null==r?void 0:r.labels)||void 0===s?void 0:s.nameLabel)&&""!==(null===(d=null==r?void 0:r.labels)||void 0===d?void 0:d.nameLabel)?null===(c=null==r?void 0:r.labels)||void 0===c?void 0:c.nameLabel:v.labels.nameLabel,cardLabel:(null===(p=null==r?void 0:r.labels)||void 0===p?void 0:p.cardLabel)&&""!==(null===(u=null==r?void 0:r.labels)||void 0===u?void 0:u.cardLabel)?null===(m=null==r?void 0:r.labels)||void 0===m?void 0:m.cardLabel:v.labels.cardLabel,cvvLabel:(null===(h=null==r?void 0:r.labels)||void 0===h?void 0:h.cvvLabel)&&""!==(null===(y=null==r?void 0:r.labels)||void 0===y?void 0:y.cvvLabel)?null===(f=null==r?void 0:r.labels)||void 0===f?void 0:f.cvvLabel:v.labels.cvvLabel,expiryDateLabel:(null===(C=null==r?void 0:r.labels)||void 0===C?void 0:C.expiryDateLabel)&&""!==(null===(E=null==r?void 0:r.labels)||void 0===E?void 0:E.expiryDateLabel)?null===(A=null==r?void 0:r.labels)||void 0===A?void 0:A.expiryDateLabel:v.labels.expiryDateLabel},placeholders:{namePlaceholder:(null===(I=null==r?void 0:r.placeholders)||void 0===I?void 0:I.namePlaceholder)&&""!==(null===(L=null==r?void 0:r.placeholders)||void 0===L?void 0:L.namePlaceholder)?null===(_=null==r?void 0:r.placeholders)||void 0===_?void 0:_.namePlaceholder:v.placeholders.namePlaceholder,cardPlaceholder:(null===(O=null==r?void 0:r.placeholders)||void 0===O?void 0:O.cardPlaceholder)&&""!==(null===(P=null==r?void 0:r.placeholders)||void 0===P?void 0:P.cardPlaceholder)?null===(w=null==r?void 0:r.placeholders)||void 0===w?void 0:w.cardPlaceholder:v.placeholders.cardPlaceholder,cvvPlaceholder:(null===(S=null==r?void 0:r.placeholders)||void 0===S?void 0:S.cvvPlaceholder)&&""!==(null===(j=null==r?void 0:r.placeholders)||void 0===j?void 0:j.cvvPlaceholder)?null===(k=null==r?void 0:r.placeholders)||void 0===k?void 0:k.cvvPlaceholder:v.placeholders.cvvPlaceholder,expiryMonthPlaceholder:(null===(N=null==r?void 0:r.placeholders)||void 0===N?void 0:N.expiryMonthPlaceholder)&&""!==(null===(M=null==r?void 0:r.placeholders)||void 0===M?void 0:M.expiryMonthPlaceholder)?null===(B=null==r?void 0:r.placeholders)||void 0===B?void 0:B.expiryMonthPlaceholder:v.placeholders.expiryMonthPlaceholder,expiryYearPlaceholder:(null===(T=null==r?void 0:r.placeholders)||void 0===T?void 0:T.expiryYearPlaceholder)&&""!==(null===(R=null==r?void 0:r.placeholders)||void 0===R?void 0:R.expiryYearPlaceholder)?null===(D=null==r?void 0:r.placeholders)||void 0===D?void 0:D.expiryYearPlaceholder:v.placeholders.expiryYearPlaceholder}});const J=Object.assign({},X.inputStyles.base);J.textIndent="44px";const W={type:t.ValidationRuleType.LENGTH_MATCH_RULE,params:{max:70,error:"El campo nombre del titular debe tener menos de 70 caracteres"}},Z=q.create(Object.assign(Object.assign({table:"cards",column:"cardholder_name"},X),{label:null===($=null==X?void 0:X.labels)||void 0===$?void 0:$.nameLabel,placeholder:null===(U=null==X?void 0:X.placeholders)||void 0===U?void 0:U.namePlaceholder,type:t.ElementType.CARDHOLDER_NAME,validations:[W,x]}));"on"in Z&&(Z.on(t.EventName.CHANGE,(n=>{let t=document.getElementById("errorCardHolderIdTonder");t&&n.isValid&&!n.isEmpty&&t.remove()})),Z.on(t.EventName.BLUR,(n=>{let t=document.getElementById(a.holderName),e=document.getElementById("errorCardHolderIdTonder");if(e&&e.remove(),!n.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCardHolderIdTonder",e.textContent=n.isEmpty?"El campo es requerido":"El campo titular de la tarjeta es inválido",null==t||t.appendChild(e)}})));const Q=q.create(Object.assign(Object.assign({table:"cards",column:"card_number"},X),{inputStyles:Object.assign(Object.assign({},X.inputStyles),{base:J}),label:null===(Y=X.labels)||void 0===Y?void 0:Y.cardLabel,placeholder:null===(z=X.placeholders)||void 0===z?void 0:z.cardPlaceholder,type:t.ElementType.CARD_NUMBER,validations:[x]}));"on"in Q&&(Q.on(t.EventName.CHANGE,(n=>{let t=document.getElementById("errorCardNumberIdTonder");t&&n.isValid&&!n.isEmpty&&t.remove()})),Q.on(t.EventName.BLUR,(n=>{let t=document.getElementById(a.cardNumber),e=document.getElementById("errorCardNumberIdTonder");if(e&&e.remove(),!n.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCardNumberIdTonder",e.textContent=n.isEmpty?"El campo es requerido":"El campo número de tarjeta es inválido",null==t||t.appendChild(e)}})));const nn=q.create(Object.assign(Object.assign({table:"cards",column:"cvv"},X),{label:null===(F=X.labels)||void 0===F?void 0:F.cvvLabel,placeholder:null===(H=X.placeholders)||void 0===H?void 0:H.cvvPlaceholder,type:t.ElementType.CVV,validations:[x]}));"on"in nn&&(nn.on(t.EventName.CHANGE,(n=>{let t=document.getElementById("errorCvvIdTonder");t&&n.isValid&&!n.isEmpty&&t.remove()})),nn.on(t.EventName.BLUR,(n=>{let t=document.getElementById(a.cvv),e=document.getElementById("errorCvvIdTonder");if(e&&e.remove(),!n.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorCvvIdTonder",e.textContent=n.isEmpty?"El campo es requerido":"El campo es inválido",null==t||t.appendChild(e)}})));const tn=q.create(Object.assign(Object.assign({table:"cards",column:"expiration_month"},X),{label:null===(G=X.labels)||void 0===G?void 0:G.expiryDateLabel,placeholder:null===(V=X.placeholders)||void 0===V?void 0:V.expiryMonthPlaceholder,type:t.ElementType.EXPIRATION_MONTH,validations:[x]}));"on"in tn&&(tn.on(t.EventName.CHANGE,(n=>{let t=document.getElementById("errorExpiryMonthIdTonder");t&&n.isValid&&!n.isEmpty&&t.remove()})),tn.on(t.EventName.BLUR,(n=>{let t=document.getElementById(a.expirationMonth),e=document.getElementById("errorExpiryMonthIdTonder");if(e&&e.remove(),!n.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorExpiryMonthIdTonder",e.textContent=n.isEmpty?"El campo es requerido":"El campo es inválido",null==t||t.appendChild(e)}}))),console.log("collectStylesOptions ====",X);const en=q.create(Object.assign(Object.assign({table:"cards",column:"expiration_year"},X),{label:"",placeholder:null===(K=X.placeholders)||void 0===K?void 0:K.expiryYearPlaceholder,type:t.ElementType.EXPIRATION_YEAR,validations:[x]}));"on"in en&&(en.on(t.EventName.CHANGE,(n=>{let t=document.getElementById("errorExpiryYearIdTonder");t&&n.isValid&&!n.isEmpty&&t.remove()})),en.on(t.EventName.BLUR,(n=>{let t=document.getElementById(a.expirationYear),e=document.getElementById("errorExpiryYearIdTonder");if(e&&e.remove(),!n.isValid){let e=document.createElement("div");e.classList.add("error-custom-inputs-tonder"),e.id="errorExpiryYearIdTonder",e.textContent=n.isEmpty?"El campo es requerido":"El campo es inválido",null==t||t.appendChild(e)}})));const on={cardNumber:{element:Q,container:`#${a.cardNumber}`},cvv:{element:nn,container:`#${a.cvv}`},expiryMonth:{element:tn,container:`#${a.expirationMonth}`},expiryYear:{element:en,container:`#${a.expirationYear}`},cardHolderName:{element:Z,container:`#${a.holderName}`}};return yield g(on),{container:q,elements:{cardHolderNameElement:Z,cardNumberElement:Q,cvvElement:nn,expiryMonthElement:tn,expiryYearElement:en}}}))}function b(n,e,o,i,a){return r(this,void 0,void 0,(function*(){return t.init({vaultID:n,vaultURL:e,getBearerToken:()=>r(this,void 0,void 0,(function*(){const n=yield fetch(`${o}/api/v1/vault-token/`,{method:"GET",headers:{Authorization:`Token ${i}`},signal:a});if(n.ok){return(yield n.json()).token}throw new Error("Failed to retrieve bearer token")})),options:{logLevel:t.LogLevel.ERROR,env:t.Env.DEV}})}))}function g(n){return r(this,void 0,void 0,(function*(){if("object"!=typeof n||null===n)throw new Error("Invalid configuration object");for(const[t,{element:e,container:o}]of Object.entries(n))e&&o?e.mount(o):console.warn(`Skipping mount for '${t}' due to missing element or container.`)}))}const f=RegExp("^(?!s*$).+"),x={type:t.ValidationRuleType.REGEX_MATCH_RULE,params:{regex:f,error:"El campo es requerido"}};var C,E,A,I,L,_,O,P,w,S,j,k,N,M,B,T,R,D,$,U,Y,z,F;class H extends e{constructor({apiKey:n,returnUrl:t,renderPaymentButton:e=!1,callBack:o=()=>{},styles:i,containerId:r,collectorIds:a,isOpenPaySandbox:l,isEnrollmentCard:s,renderSaveCardButton:d,mode:c="stage",customization:p}){super({apiKey:n,returnUrl:t,mode:c,callBack:o,customization:p,tdsIframeId:a&&"tdsIframe"in a?null==a?void 0:a.tdsIframe:"tdsIframe",tonderPayButtonId:a?null==a?void 0:a.tonderPayButton:"tonderPayButton"}),C.add(this),this.paymentData={},this.deletingCards=[],this.accordionC=null,this.apmsInjected=!1,this.apmsData=[],this.isOpenPaySandbox=!0,this.isEnrollmentCard=!1,this.renderPaymentButton=e||!1,this.renderSaveCardButton=d,this.customStyles=i,this.abortRefreshCardsController=new AbortController,this.containerId=r||"tonder-checkout",this.injected=!1,this.cardsInjected=!1,this.collectorIds={cardsListContainer:"cardsListContainer",holderName:"collectCardholderName",cardNumber:"collectCardNumber",expirationMonth:"collectExpirationMonth",expirationYear:"collectExpirationYear",cvv:"collectCvv",tonderPayButton:"tonderPayButton",msgError:"msgError",msgNotification:"msgNotification",tonderSaveCardButton:"tonderSaveCardButton",apmsListContainer:"apmsListContainer",tdsIframe:"tdsIframe"},this.collectorIds=a?Object.assign(Object.assign({},this.collectorIds),a):this.collectorIds,this.radioChecked="new",this.collectContainer=null,this.updateCollectContainer=null,this.isOpenPaySandbox=void 0===l||l,this.isEnrollmentCard=void 0!==s&&s}setCustomerEmail(n){this.customer=Object.assign(Object.assign({},this.customer),{email:n})}setPaymentData(n){var t;n&&(this.paymentData=n,this.setCartTotal((null===(t=n.cart)||void 0===t?void 0:t.total)||"0"))}injectCheckout(){return r(this,void 0,void 0,(function*(){if(this.injected)return;const n=document.querySelector(`#${this.containerId}`);if(n)return n.innerHTML=m(this.customStyles,this.collectorIds,this.isEnrollmentCard,{renderPaymentButton:this.renderPaymentButton,customization:this.customization}),yield a(this,C,"m",R).call(this),void(this.injected=!0);const t=new MutationObserver(((n,t)=>r(this,void 0,void 0,(function*(){const n=document.querySelector(`#${this.containerId}`);n&&(n.innerHTML=m(this.customStyles,this.collectorIds,this.isEnrollmentCard,{renderPaymentButton:this.renderPaymentButton,customization:this.customization}),yield a(this,C,"m",R).call(this),this.injected=!0,t.disconnect())}))));t.observe(document.body,{childList:!0,subtree:!0,attributeFilter:["id"]})}))}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 r(this,void 0,void 0,(function*(){return new Promise(((n,t)=>r(this,void 0,void 0,(function*(){try{yield a(this,C,"m",Y).call(this,!0,"Guardando..."),yield a(this,C,"m",z).call(this),yield a(this,C,"m",Y).call(this,!1),n("Tarjeta registrada con éxito")}catch(n){t(n)}}))))}))}_setCartTotal(n){this.cartTotal=n,a(this,C,"m",w).call(this)}setCartTotal(n){this.cartTotal=n,a(this,C,"m",w).call(this)}_checkout(){return r(this,void 0,void 0,(function*(){try{if(a(this,C,"m",w).call(this,{textContent:"Cargando...",disabled:!0}),this.merchantData){if("openpay_keys"in this.merchantData){const{business:n}=this.merchantData;let t;"new"===this.radioChecked||void 0===this.radioChecked?t=yield a(this,C,"m",U).call(this,this.collectorIds.tonderPayButton,this.radioChecked):(a(this,C,"m",w).call(this,{cardId:this.radioChecked,textContent:"Cargando...",disabled:!0}),yield a(this,C,"m",U).call(this,this.collectorIds.tonderPayButton,this.radioChecked),t={skyflow_id:this.radioChecked});const e=yield this._getCustomer(),{auth_token:o}=e;o&&this.customer.email&&(yield a(this,C,"m",F).call(this,o,n.pk,t));const i=this.apmsData?this.apmsData.find((n=>n.pk===this.radioChecked)):null,r=yield this._handleCheckout(Object.assign(Object.assign({},i&&Object.keys(i).length>0?{payment_method:i.payment_method}:{card:t}),{customer:e}));return a(this,C,"m",w).call(this,{cardId:this.radioChecked,disabled:!1}),r||(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(n){throw console.log(n),s("Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderPayButton),n}}))}}C=new WeakSet,E=function(n){return r(this,void 0,void 0,(function*(){var t;if(this.cardsInjected||!(null===(t=this.customization.saveCards)||void 0===t?void 0:t.showSaved))return;this.cardsInjected=!1;const e=yield this._getCustomerCards(n,this.merchantData.business.pk);let o=[];if("cards"in e){o=e.cards.map(p);const t=setInterval((()=>{const e=document.querySelector(`#${this.collectorIds.cardsListContainer}`);e&&this.injected&&(e.innerHTML=((n,t,e)=>`\n <div class="accordion-container">\n ${t.reduce(((n,t)=>`${n}\n <div class="ac" id="card_container-${t.skyflow_id}">\n <div class="card-item">\n <input id="${t.skyflow_id}" class="card_selected" name="card_selected" type="radio"/>\n <label class="card-item-label" for="${t.skyflow_id}">\n <img class="card-image" src="${c(t.card_scheme)}" />\n <div class="card-number">${t.card_number}</div>\n <div class="card-expiration">Exp. ${t.expiration_month}/${t.expiration_year}</div>\n <div class="card-delete-icon">\n <button id="delete_button_${t.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 <div class="ac-panel">\n <div class="ac-card-panel-container" id="acContainer${t.skyflow_id}">\n <div class="cvvContainer" id="cvvContainer${t.skyflow_id}">\n <div id="${e.collectorIds.cvv}${t.skyflow_id}" class="empty-div"></div>\n <svg class="cvvIcon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="24" viewBox="0 0 270 178">\n <defs>\n <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">\n <stop offset="0" stop-color="#386bbf"/>\n <stop offset="1" stop-color="#032ea3"/>\n </linearGradient>\n <linearGradient id="linear-gradient-2" x1="0.5" y1="0.115" x2="0.5" y2="1" gradientUnits="objectBoundingBox">\n <stop offset="0" stop-color="#1c1c1c"/>\n <stop offset="1" stop-color="#151515"/>\n </linearGradient>\n </defs>\n <g id="Grupo_3" data-name="Grupo 3" transform="translate(-69 -312)">\n <g id="Grupo_2" data-name="Grupo 2">\n <rect id="Rectángulo_58" data-name="Rectángulo 58" width="253" height="165" rx="25" transform="translate(69 312)" fill="url(#linear-gradient)"/>\n <rect id="Rectángulo_61" data-name="Rectángulo 61" width="68" height="8" rx="4" transform="translate(86 437)" fill="#fff" opacity="0.877"/>\n <rect id="Rectángulo_66" data-name="Rectángulo 66" width="253" height="24" transform="translate(69 347)" fill="url(#linear-gradient-2)"/>\n <g id="Elipse_4" data-name="Elipse 4" transform="translate(221 374)" fill="#fff" stroke="#191919" stroke-width="1">\n <ellipse cx="59" cy="58" rx="59" ry="58" stroke="none"/>\n <ellipse cx="59" cy="58" rx="58.5" ry="57.5" fill="none"/>\n </g>\n </g>\n <text id="_123" data-name="123" transform="translate(240 448)" font-size="45" font-family="Menlo-Regular, Menlo"><tspan x="0" y="0">123</tspan></text>\n </g>\n </svg>\n </div>\n ${(null==e?void 0:e.renderPaymentButton)?`<div class="container-card-pay-button">\n <button id="${e.collectorIds.tonderPayButton?e.collectorIds.tonderPayButton:""}${t.skyflow_id}" class="card-pay-button pay-button">Pagar</button>\n </div> `:""}\n </div>\n </div>\n </div>`),"")}\n </div>\n \n <style>\n @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n .ac {\n border: none;\n background-color: transparent;\n box-sizing: border-box;\n margin-bottom: 0;\n border-bottom: 1px solid #e2e8f0;\n }\n .ac-card-panel-container{\n padding: ${(null==e?void 0:e.renderPaymentButton)?"20px 32px 0px 32px":"20px 32px 20px 32px"};\n }\n .cvvContainer{\n max-width: 60%; \n position: relative;\n padding: 0px 19px 0px 19px;\n }\n .cvvIcon {\n position: absolute;\n right: 12%;\n top: 43%;\n opacity: 0;\n transform: translateY(10px);\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n .cvvContainer.show .cvvIcon,\n .ac-card-panel-container.show .card-pay-button {\n opacity: 1;\n transform: translateY(0);\n transition-delay: 0.3s;\n }\n .container-card-pay-button{\n margin: 20px 0px;\n }\n .card-pay-button{\n display: block;\n opacity: 0;\n transform: translateY(10px);\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n \n .ac .ac-header {\n margin: 0;\n padding: 0;\n }\n \n .ac .ac-trigger {\n font:\n bold 16px "Arial",\n sans-serif;\n color: var(--color-black);\n text-align: left;\n width: 100%;\n padding: 8px 32px 8px 8px;\n display: block;\n cursor: pointer;\n background-color: transparent;\n transition: color 0.25s ease;\n position: relative;\n text-decoration: none;\n margin: 0;\n border: 0;\n }\n \n .ac .ac-trigger::after {\n content: "+";\n text-align: center;\n width: 15px;\n transform: translate(0, -50%);\n position: absolute;\n right: 10px;\n top: 50%;\n }\n \n .ac .ac-trigger:focus {\n color: var(--color-grey);\n }\n \n .ac .ac-panel {\n overflow: hidden;\n transition-property: height, visibility;\n transition-timing-function: ease;\n }\n \n .ac .ac-panel .ac-text {\n font:\n 15px/24px "Arial",\n sans-serif;\n color: var(--color-black);\n padding: 8px;\n margin: 0;\n }\n \n .ac.js-enabled .ac-panel {\n visibility: hidden;\n }\n \n .ac.is-active .ac-panel {\n visibility: visible;\n }\n \n .ac.is-active > .ac-header .ac-trigger::after {\n content: "\\2013";\n }\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 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 @media screen and (max-width: 768px) {\n .cvvContainer {\n max-width: 70%;\n }\n }\n \n @media screen and (max-width: 480px) {\n .cvvContainer {\n max-width: 100%;\n }\n }\n </style>\n \n `)(this.customStyles,o,{collectorIds:this.collectorIds,renderPaymentButton:this.renderPaymentButton}),clearInterval(t),a(this,C,"m",A).call(this),a(this,C,"m",S).call(this,n),this.cardsInjected=!0)}),500)}}))},A=function(){this.accordionC=new o(".accordion-container",{triggerClass:"card-item-label",duration:300,collapse:!0,showMultiple:!1,onOpen:n=>r(this,void 0,void 0,(function*(){yield a(this,C,"m",I).call(this,n)}))})},I=function(n){return r(this,void 0,void 0,(function*(){var e,o;const{vault_id:i,vault_url:l}=this.merchantData,s=n.id.replace("card_container-","");this.updateCollectContainer&&"unmount"in(null===(o=null===(e=this.updateCollectContainer)||void 0===e?void 0:e.elements)||void 0===o?void 0:o.cvvElement)&&this.updateCollectContainer.elements.cvvElement.unmount(),document.querySelectorAll(".cvvContainer").forEach((n=>{n.classList.remove("show")}));const d=document.getElementById(s);d&&(d.checked=!0);try{this.updateCollectContainer=yield function(n,e,o,i,a){return r(this,arguments,void 0,(function*(n,e,o,i,r,a={},l,s){var d,c,p,u,m,h,y,f,C,E,A,I,L,_,O,P,w,S,j,k,N,M,B,T,R,D,$,U,Y;const z=yield b(e,o,i,s,r);var F=0===Object.keys(a).length?v:Object.assign(Object.assign({},a),{labels:{nameLabel:(null===(d=null==a?void 0:a.labels)||void 0===d?void 0:d.nameLabel)&&""!==(null===(c=null==a?void 0:a.labels)||void 0===c?void 0:c.nameLabel)?null===(p=null==a?void 0:a.labels)||void 0===p?void 0:p.nameLabel:v.labels.nameLabel,cardLabel:(null===(u=null==a?void 0:a.labels)||void 0===u?void 0:u.cardLabel)&&""!==(null===(m=null==a?void 0:a.labels)||void 0===m?void 0:m.cardLabel)?null===(h=null==a?void 0:a.labels)||void 0===h?void 0:h.cardLabel:v.labels.cardLabel,cvvLabel:(null===(y=null==a?void 0:a.labels)||void 0===y?void 0:y.cvvLabel)&&""!==(null===(f=null==a?void 0:a.labels)||void 0===f?void 0:f.cvvLabel)?null===(C=null==a?void 0:a.labels)||void 0===C?void 0:C.cvvLabel:v.labels.cvvLabel,expiryDateLabel:(null===(E=null==a?void 0:a.labels)||void 0===E?void 0:E.expiryDateLabel)&&""!==(null===(A=null==a?void 0:a.labels)||void 0===A?void 0:A.expiryDateLabel)?null===(I=null==a?void 0:a.labels)||void 0===I?void 0:I.expiryDateLabel:v.labels.expiryDateLabel},placeholders:{namePlaceholder:(null===(L=null==a?void 0:a.placeholders)||void 0===L?void 0:L.namePlaceholder)&&""!==(null===(_=null==a?void 0:a.placeholders)||void 0===_?void 0:_.namePlaceholder)?null===(O=null==a?void 0:a.placeholders)||void 0===O?void 0:O.namePlaceholder:v.placeholders.namePlaceholder,cardPlaceholder:(null===(P=null==a?void 0:a.placeholders)||void 0===P?void 0:P.cardPlaceholder)&&""!==(null===(w=null==a?void 0:a.placeholders)||void 0===w?void 0:w.cardPlaceholder)?null===(S=null==a?void 0:a.placeholders)||void 0===S?void 0:S.cardPlaceholder:v.placeholders.cardPlaceholder,cvvPlaceholder:(null===(j=null==a?void 0:a.placeholders)||void 0===j?void 0:j.cvvPlaceholder)&&""!==(null===(k=null==a?void 0:a.placeholders)||void 0===k?void 0:k.cvvPlaceholder)?null===(N=null==a?void 0:a.placeholders)||void 0===N?void 0:N.cvvPlaceholder:v.placeholders.cvvPlaceholder,expiryMonthPlaceholder:(null===(M=null==a?void 0:a.placeholders)||void 0===M?void 0:M.expiryMonthPlaceholder)&&""!==(null===(B=null==a?void 0:a.placeholders)||void 0===B?void 0:B.expiryMonthPlaceholder)?null===(T=null==a?void 0:a.placeholders)||void 0===T?void 0:T.expiryMonthPlaceholder:v.placeholders.expiryMonthPlaceholder,expiryYearPlaceholder:(null===(R=null==a?void 0:a.placeholders)||void 0===R?void 0:R.expiryYearPlaceholder)&&""!==(null===(D=null==a?void 0:a.placeholders)||void 0===D?void 0:D.expiryYearPlaceholder)?null===($=null==a?void 0:a.placeholders)||void 0===$?void 0:$.expiryYearPlaceholder:v.placeholders.expiryYearPlaceholder}});const H=z.container(t.ContainerType.COLLECT),G=H.create(Object.assign(Object.assign({table:"cards",column:"cvv"},F),{label:null===(U=F.labels)||void 0===U?void 0:U.cvvLabel,placeholder:null===(Y=F.placeholders)||void 0===Y?void 0:Y.cvvPlaceholder,type:t.ElementType.CVV,validations:[x],skyflowID:n}));"on"in G&&(G.on(t.EventName.CHANGE,(t=>{let e=document.getElementById(`errorCvvIdTonder${n}`);e&&t.isValid&&!t.isEmpty&&e.remove()})),G.on(t.EventName.BLUR,(t=>{let e=document.getElementById(l.cvv+n),o=document.getElementById("errorCvvIdTonder"+n);if(o&&o.remove(),!t.isValid){let o=document.createElement("div");o.classList.add("error-custom-inputs-tonder"),o.id="errorCvvIdTonder"+n,o.textContent=t.isEmpty?"El campo es requerido":"El campo es inválido",null==e||e.appendChild(o)}})));const V={cvv:{element:G,container:`#${l.cvv}${n}`}};return yield g(V),{container:H,elements:{cvvElement:G}}}))}(s,i,l,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder),setTimeout((()=>{const n=document.querySelector(`#cvvContainer${s}`);n&&n.classList.add("show")}),5),a(this,C,"m",L).call(this,s)}catch(n){console.error("Ha ocurrido un error",n)}d&&(yield a(this,C,"m",N).call(this,d))}))},L=function(n=""){if(!this.renderPaymentButton)return;const t=`#${this.collectorIds.tonderPayButton}${n}`,e=document.querySelector(t),o=`#acContainer${n}`,i=document.querySelector(o);if(!e)return void console.error("Pay button not found");if(""!==n){const n=document.querySelector(`#${this.collectorIds.tonderPayButton}`);n&&(n.style.display="none")}e.style.display="block";const l=Intl.NumberFormat("en-Latn-US",{minimumFractionDigits:2}).format(Number(this.cartTotal||0));e.textContent=`Pagar $${l}`,document.querySelectorAll(".ac-card-panel-container").forEach((n=>{n.classList.remove("show")})),i&&i.classList.add("show"),e.onclick=n=>r(this,void 0,void 0,(function*(){n.preventDefault(),yield a(this,C,"m",_).call(this,e)}))},_=function(n){return r(this,void 0,void 0,(function*(){const t=n.innerHTML;n.innerHTML='<div class="lds-dual-ring"></div>';try{yield this.payment({})}catch(n){console.error("Payment error:",n)}finally{n.innerHTML=t}}))},O=function(){if(!this.renderSaveCardButton)return;const n=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);n?(n.style.display="block",n.textContent="Guardar",n.onclick=t=>r(this,void 0,void 0,(function*(){t.preventDefault(),yield a(this,C,"m",P).call(this,n)}))):console.error("Save button not found")},P=function(n){return r(this,void 0,void 0,(function*(){const t=n.innerHTML;n.innerHTML='<div class="lds-dual-ring"></div>';try{const n=yield this.saveCard();this.callBack({message:n})}catch(n){console.error("Save card error:",n)}finally{n.innerHTML=t}}))},w=function(n){try{const t=(null==n?void 0:n.cardId)?`#${this.collectorIds.tonderPayButton}${n.cardId}`:`#${this.collectorIds.tonderPayButton}`,e=(null==n?void 0:n.updatedTextContent)||!0,o=(null==n?void 0:n.textContent)||`Pagar $${this.cartTotal}`,i=null==n?void 0:n.disabled,r=document.querySelector(t);if(!r)return;e&&(r.textContent=o),void 0!==i&&"disabled"in r&&(r.disabled=i)}catch(n){console.error("Pay button not found due to update",n)}},S=function(n=""){const t=document.getElementsByName("card_selected");for(const n of t)n.style.display="block",n.onclick=e=>r(this,void 0,void 0,(function*(){const e=Array.from(t).indexOf(n);yield a(this,C,"m",N).call(this,n,e)}));const e=document.getElementsByClassName("card-delete-button");for(const t of e)t.addEventListener("click",(e=>r(this,void 0,void 0,(function*(){e.preventDefault(),e.stopImmediatePropagation(),yield a(this,C,"m",j).call(this,n,t)}))),!1)},j=function(n,t){return r(this,void 0,void 0,(function*(){var e,o;const i=t.attributes.getNamedItem("id"),r=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(r){const t=document.querySelector(`#card_container-${r}`);t&&(t.style.display="none");try{this.deletingCards.push(r),this.abortRefreshCardsController&&(this.abortRefreshCardsController.abort(),this.abortRefreshCardsController=new AbortController),yield this._removeCustomerCard(n,this.merchantData.business.pk,r)}catch(n){}finally{this.deletingCards=this.deletingCards.filter((n=>n!==r)),yield a(this,C,"m",k).call(this,n)}}}))},k=function(n){return r(this,void 0,void 0,(function*(){this.deletingCards.length>0||(this.cardsInjected=!1,yield a(this,C,"m",E).call(this,n))}))},N=function(n){return r(this,arguments,void 0,(function*(n,t=null){const e=document.querySelector(".container-form");e&&(e.style.display="new"===n.id?"block":"none"),"new"===n.id?(a(this,C,"m",M).call(this,null,!0),this.radioChecked!==n.id&&(yield a(this,C,"m",$).call(this),a(this,C,"m",L).call(this))):(a(this,C,"m",M).call(this,t,null!==t),a(this,C,"m",D).call(this)),this.radioChecked=n.id}))},M=function(n=null,t=!1){t&&this.accordionC&&"closeAll"in this.accordionC&&this.accordionC.closeAll(),null!==n&&this.accordionC&&"open"in this.accordionC&&this.accordionC.open(n)},B=function(){return r(this,void 0,void 0,(function*(){try{const n=yield this._fetchCustomerPaymentMethods();n&&n.results&&n.results.length>0&&(this.apmsData=n.results,a(this,C,"m",T).call(this,n.results))}catch(n){console.warn("Error getting APMS")}}))},T=function(n){if(this.apmsInjected)return;const t=setInterval((()=>{const e=document.querySelector(`#${this.collectorIds.apmsListContainer}`);e&&this.injected&&(e.innerHTML=h(this.customStyles,n),clearInterval(t),a(this,C,"m",S).call(this),this.apmsInjected=!0)}),500)},R=function(){return r(this,void 0,void 0,(function*(){this.isEnrollmentCard?a(this,C,"m",O).call(this):a(this,C,"m",L).call(this),yield this._initializeCheckout();const{vault_id:n,vault_url:t}=this.merchantData;if(n){if(this.customer.email&&!this.isEnrollmentCard){const n=yield this._getCustomer();if("auth_token"in n){const{auth_token:t}=n;yield a(this,C,"m",E).call(this,t)}}this.isEnrollmentCard||(yield a(this,C,"m",B).call(this)),this.collectContainer=yield y(n,t,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder)}}))},D=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())},$=function(){return r(this,void 0,void 0,(function*(){yield this._initializeCheckout();const{vault_id:n,vault_url:t}=this.merchantData;n&&(this.collectContainer=yield y(n,t,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder))}))},U=function(n){return r(this,arguments,void 0,(function*(n,t=null){var e,o;try{const i=t&&"new"!==t?null===(e=this.updateCollectContainer)||void 0===e?void 0:e.container:null===(o=this.collectContainer)||void 0===o?void 0:o.container;if(i&&"collect"in i){const n=yield i.collect();return yield n.records[0].fields}s("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,n)}catch(t){throw s("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,n),t}}))},Y=function(){return r(this,arguments,void 0,(function*(n=!1,t="Guardar"){try{const e=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);e&&(e.disabled=n,e.innerHTML=t)}catch(n){}}))},z=function(){return r(this,void 0,void 0,(function*(){if(this.customer.email)try{if(this.merchantData&&"openpay_keys"in this.merchantData){const n=yield a(this,C,"m",U).call(this,this.collectorIds.tonderSaveCardButton),t=yield this._getCustomer();if("auth_token"in t&&this.secureToken){const{auth_token:e}=t;yield this._saveCustomerCard(e,this.merchantData.business.pk,{skyflow_id:n.skyflow_id}),d("Tarjeta registrada con éxito",this.collectorIds.msgNotification)}else s("No se han configurado los datos de seguridad para guardar tarjeta",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}else s("No se han configurado los datos del proveedor de servicio",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}catch(n){throw s("object"==typeof n&&null!==n&&"message"in n?null==n?void 0:n.message:"Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton),n}}))},F=function(n,t,e){return r(this,void 0,void 0,(function*(){var o;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{this.secureToken?(yield this._saveCustomerCard(n,t,e),this.cardsInjected=!1,yield a(this,C,"m",E).call(this,n),d("Tarjeta registrada con éxito",this.collectorIds.msgNotification)):s("No se han configurado los datos de seguridad para guardar tarjeta",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}catch(n){"object"==typeof n&&null!==n&&"message"in n&&"Error"!==(null==n?void 0:n.message)&&s(null==n?void 0:n.message,this.collectorIds.msgError,this.collectorIds.tonderPayButton)}}))};export{i as Checkout,H as InlineCheckout};
|
|
1
|
+
import{AES as n}from"crypto-js";import e from"lodash.get";import t from"skyflow-js";import{BaseInlineCheckout as o}from"@tonder.io/ionic-lite-sdk";import i from"accordion-js";class l{constructor({apiKey:e,type:t="payment",backgroundColor:o="#141414",color:i="#EBEBEB",cb:l=()=>{},url:a="http://checkout.tonder.io/#/"}){this.generateButton=n=>{this.buttonText=n||this.buttonText,this.tonderButton=document.createElement("button"),this.tonderButton.innerHTML=this.buttonText,this.stylishButton(this.tonderButton),this.tonderButton.onclick=this.openCheckout},this.getButton=({buttonText:n})=>(this.generateButton(n),this.tonderButton),this.mountButton=({buttonText:n})=>{this.generateButton(n);const e=document.getElementById("tonder-checkout");try{e&&(e.innerHTML="",e.append(this.tonderButton))}catch(n){console.error(n)}},this.stylishButton=n=>{n.style.backgroundColor=this.backgroundColor,n.style.color=this.color,n.style.display="flex",n.style.justifyContent="center",n.style.border="none",n.style.padding="1rem",n.style.borderRadius="10px",n.style.fontSize="1rem",n.style.width="100%",n.style.boxShadow="0 3px 6px 0 rgba(0,0,0,0.16)"},this.setOrder=({products:n,email:e,shippingCost:t})=>{let o={};return n&&(o.products=n),e&&(o.email=e),t&&(o.shippingCost=t),this.order=Object.assign(Object.assign({},this.order),o),this.order},this.openTabListener=(n,e)=>{const t=setInterval((()=>{n.closed&&(clearInterval(t),e.disabled=!1,e.innerHTML=this.buttonText)}),500)},this.openCheckout=()=>{const e=this.getUrlParams(),t=n.encrypt(e,"url-params-encrypt").toString(),o=encodeURIComponent(t);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 n=Object.assign(Object.assign({apiKey:this.apiKey},this.order),{type:this.type});n.products&&(n.products=JSON.stringify(n.products));return new URLSearchParams(n).toString()},this.url=a,this.apiKey=e,this.type=t,this.backgroundColor=o,this.color=i,this.params="",this.order={},this.buttonText="Proceder al pago",this.cb=l,window.addEventListener("message",this.receiveMessage.bind(this),!1)}receiveMessage(n){try{const e=JSON.parse(n.data);this.cb(e)}catch(e){this.cb(n.data)}}}function a(n,e,t,o){return new(t||(t=Promise))((function(i,l){function a(n){try{s(o.next(n))}catch(n){l(n)}}function r(n){try{s(o.throw(n))}catch(n){l(n)}}function s(n){var e;n.done?i(n.value):(e=n.value,e instanceof t?e:new t((function(n){n(e)}))).then(a,r)}s((o=o.apply(n,e||[])).next())}))}function r(n,e,t,o){if("a"===t&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?n!==e||!o:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?o:"a"===t?o.call(n):o?o.value:e.get(n)}var s;"function"==typeof SuppressedError&&SuppressedError,function(n){n.SORIANA="SORIANA",n.OXXO="OXXO",n.SPEI="SPEI",n.CODI="CODI",n.MERCADOPAGO="MERCADOPAGO",n.PAYPAL="PAYPAL",n.COMERCIALMEXICANA="COMERCIALMEXICANA",n.BANCOMER="BANCOMER",n.WALMART="WALMART",n.BODEGA="BODEGA",n.SAMSCLUB="SAMSCLUB",n.SUPERAMA="SUPERAMA",n.CALIMAX="CALIMAX",n.EXTRA="EXTRA",n.CIRCULOK="CIRCULOK",n.SEVEN11="7ELEVEN",n.TELECOMM="TELECOMM",n.BANORTE="BANORTE",n.BENAVIDES="BENAVIDES",n.DELAHORRO="DELAHORRO",n.ELASTURIANO="ELASTURIANO",n.WALDOS="WALDOS",n.ALSUPER="ALSUPER",n.KIOSKO="KIOSKO",n.STAMARIA="STAMARIA",n.LAMASBARATA="LAMASBARATA",n.FARMROMA="FARMROMA",n.FARMUNION="FARMUNION",n.FARMATODO="FARMATODO",n.SFDEASIS="SFDEASIS",n.FARM911="FARM911",n.FARMECONOMICAS="FARMECONOMICAS",n.FARMMEDICITY="FARMMEDICITY",n.RIANXEIRA="RIANXEIRA",n.WESTERNUNION="WESTERNUNION",n.ZONAPAGO="ZONAPAGO",n.CAJALOSANDES="CAJALOSANDES",n.CAJAPAITA="CAJAPAITA",n.CAJASANTA="CAJASANTA",n.CAJASULLANA="CAJASULLANA",n.CAJATRUJILLO="CAJATRUJILLO",n.EDPYME="EDPYME",n.KASNET="KASNET",n.NORANDINO="NORANDINO",n.QAPAQ="QAPAQ",n.RAIZ="RAIZ",n.PAYSER="PAYSER",n.WUNION="WUNION",n.BANCOCONTINENTAL="BANCOCONTINENTAL",n.GMONEY="GMONEY",n.GOPAY="GOPAY",n.WU="WU",n.PUNTOSHEY="PUNTOSHEY",n.AMPM="AMPM",n.JUMBOMARKET="JUMBOMARKET",n.SMELPUEBLO="SMELPUEBLO",n.BAM="BAM",n.REFACIL="REFACIL",n.ACYVALORES="ACYVALORES"}(s||(s={}));const d={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:{nameLabel:"Titular de la tarjeta",cardLabel:"Número de tarjeta",cvvLabel:"CVC/CVV",expiryDateLabel:"Fecha de expiración"},placeholders:{namePlaceholder:"Nombre como aparece en la tarjeta",cardPlaceholder:"1234 1234 1234 1234",cvvPlaceholder:"3-4 dígitos",expiryMonthPlaceholder:"MM",expiryYearPlaceholder:"AA"}};function c(n,e,t){const o=document.getElementById(`${e}`);o&&(o.classList.add("error-container"),o.innerHTML=n,setTimeout((function(){try{document.querySelector(`#${t}`).disabled=!1}catch(n){}o.classList.remove("error-container"),o.innerHTML=""}),3e3))}function p(n,e){const t=document.getElementById(`${e}`);t&&(t.classList.add("message-container"),t.innerHTML=n,setTimeout((function(){t.classList.remove("message-container"),t.innerHTML=""}),3e3))}const u=n=>"Visa"===n?"https://d35a75syrgujp0.cloudfront.net/cards/visa.png":"Mastercard"===n?"https://d35a75syrgujp0.cloudfront.net/cards/mastercard.png":"American Express"===n?"https://d35a75syrgujp0.cloudfront.net/cards/american_express.png":"https://d35a75syrgujp0.cloudfront.net/cards/default_card.png",m=n=>{const e=Object.assign({},n.fields),t=e.card_number.split("-"),o=t[t.length-1];return e.card_number=`••••${o}`,e},h=n=>n.trim().replace(/\s+/g,"");const v=(n={isEnrollmentCard:!1,collectorIds:{}})=>{var e,t,o,i,l,a,r,s,c,p,m,h,v,y,b,g,f,x,C,E,A,I,S,L,P,_,w,O,j,k,N,M,B,T,R,D,$,U,z,F,Y,H,G,V,W,K,q,X,J,Z,Q,nn,en,tn,on,ln,an,rn,sn,dn,cn,pn,un,mn,hn,vn,yn,bn,gn,fn;return`\n<div class="container-tonder">\n ${(null===(t=null===(e=n.customization)||void 0===e?void 0:e.saveCards)||void 0===t?void 0:t.showSaved)?`<div id="${n.collectorIds.cardsListContainer}" class="cards-list-container"></div>`:""}\n ${n.isEnrollmentCard?"":`\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="${u("XXXX")}" />\n <div class="card-number">Pagar con tarjeta</div>\n </label>\n </div>\n `}\n <div class="container-form">\n <div id="${n.collectorIds.holderName}" class="empty-div empty-div-card"></div>\n <div id="${n.collectorIds.cardNumber}" class="empty-div empty-div-card"></div>\n <div class="collect-row">\n <div id="${n.collectorIds.expirationMonth}" class="empty-div empty-div-card"></div>\n <div id="${n.collectorIds.expirationYear}" class="expiration-year"></div>\n <div id="${n.collectorIds.cvv}" class="empty-div empty-div-card"></div>\n </div>\n ${!n.isEnrollmentCard&&(null===(i=null===(o=n.customization)||void 0===o?void 0:o.saveCards)||void 0===i?void 0:i.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.collectorIds.msgError}"></div>\n <div id="${n.collectorIds.msgNotification}"></div>\n </div>\n ${n.isEnrollmentCard?"":'\n <div id="apmsListContainer" class="apms-list-container"></div>\n '}\n <div class="container-pay-button">\n <button id="${n.collectorIds.tonderPayButton}" class="pay-button hidden">Pagar</button>\n ${n.isEnrollmentCard?`\n <button id="${n.collectorIds.tonderSaveCardButton?n.collectorIds.tonderSaveCardButton:""}" class="save-card-button">Guardar</button>\n `:""} </div>\n <iframe class="tds-iframe" allowtransparency="true" id="${n.collectorIds.tdsIframe}"></iframe>\n</div>\n\n<style>\n\n@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n\n.tds-iframe {\n border: none;\n width: 100vw;\n height: 100vh;\n z-index: 30;\n background-color: transparent;\n}\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 30px 0px 30px;\n}\n\n#${n.collectorIds.tdsIframe} {\n display: none;\n position: fixed;\n width: 100vw;\n height: 100vh;\n inset: 0px;\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: ${n.renderPaymentButton?"30px 30px":""};\n}\n\n.collect-row {\n display: flex !important;\n justify-content: space-between !important;\n width: 100% !important;\n gap: 16px;\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 margin-top: 2px;\n margin-bottom: 4px;\n}\n.empty-div-card {\n height: 80px !important;\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 font-family: "Inter", sans-serif !important;\n}\n.hidden{\n display: none;\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 .tndr-simulate-input-cvv-container{\n height: 100%;\n width: 100%;\n position: absolute;\n pointer-events: none;\n \n }\n .tndr-simulate-input-cvv {\n width: 100%;\n pointer-events: none;\n position: relative;\n }\n .tndr-simulate-input-cvv-container label{\n line-height: ${(null===(r=null===(a=null===(l=null==n?void 0:n.customStyles)||void 0===l?void 0:l.labelStyles)||void 0===a?void 0:a.base)||void 0===r?void 0:r.lineHeight)?null===(p=null===(c=null===(s=null==n?void 0:n.customStyles)||void 0===s?void 0:s.labelStyles)||void 0===c?void 0:c.base)||void 0===p?void 0:p.lineHeight:""};\n color: transparent;\n font-size: ${(null===(v=null===(h=null===(m=null==n?void 0:n.customStyles)||void 0===m?void 0:m.labelStyles)||void 0===h?void 0:h.base)||void 0===v?void 0:v.fontSize)?null===(g=null===(b=null===(y=null==n?void 0:n.customStyles)||void 0===y?void 0:y.labelStyles)||void 0===b?void 0:b.base)||void 0===g?void 0:g.fontSize:d.labelStyles.base.fontSize};\n font-family: ${(null===(C=null===(x=null===(f=null==n?void 0:n.customStyles)||void 0===f?void 0:f.labelStyles)||void 0===x?void 0:x.base)||void 0===C?void 0:C.fontFamily)?null===(I=null===(A=null===(E=null==n?void 0:n.customStyles)||void 0===E?void 0:E.labelStyles)||void 0===A?void 0:A.base)||void 0===I?void 0:I.fontFamily:d.labelStyles.base.fontFamily};\n font-weight: ${(null===(P=null===(L=null===(S=null==n?void 0:n.customStyles)||void 0===S?void 0:S.labelStyles)||void 0===L?void 0:L.base)||void 0===P?void 0:P.fontWeight)?null===(O=null===(w=null===(_=null==n?void 0:n.customStyles)||void 0===_?void 0:_.labelStyles)||void 0===w?void 0:w.base)||void 0===O?void 0:O.fontWeight:d.labelStyles.base.fontWeight};\n text-align: ${(null===(N=null===(k=null===(j=null==n?void 0:n.customStyles)||void 0===j?void 0:j.labelStyles)||void 0===k?void 0:k.base)||void 0===N?void 0:N.textAlign)?null===(T=null===(B=null===(M=null==n?void 0:n.customStyles)||void 0===M?void 0:M.labelStyles)||void 0===B?void 0:B.base)||void 0===T?void 0:T.textAlign:d.labelStyles.base.textAlign};\n pointer-events: none;\n }\n .tndr-simulate-input-cvv input {\n width: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n min-height: 44px;\n background-color: transparent;\n pointer-events: none;\n }\n .tndr-form-label{\n line-height: ${(null===($=null===(D=null===(R=null==n?void 0:n.customStyles)||void 0===R?void 0:R.labelStyles)||void 0===D?void 0:D.base)||void 0===$?void 0:$.lineHeight)?null===(F=null===(z=null===(U=null==n?void 0:n.customStyles)||void 0===U?void 0:U.labelStyles)||void 0===z?void 0:z.base)||void 0===F?void 0:F.lineHeight:"22px"};\n color: ${(null===(G=null===(H=null===(Y=null==n?void 0:n.customStyles)||void 0===Y?void 0:Y.labelStyles)||void 0===H?void 0:H.base)||void 0===G?void 0:G.color)?null===(K=null===(W=null===(V=null==n?void 0:n.customStyles)||void 0===V?void 0:V.labelStyles)||void 0===W?void 0:W.base)||void 0===K?void 0:K.color:d.labelStyles.base.color};\n font-size: ${(null===(J=null===(X=null===(q=null==n?void 0:n.customStyles)||void 0===q?void 0:q.labelStyles)||void 0===X?void 0:X.base)||void 0===J?void 0:J.fontSize)?null===(nn=null===(Q=null===(Z=null==n?void 0:n.customStyles)||void 0===Z?void 0:Z.labelStyles)||void 0===Q?void 0:Q.base)||void 0===nn?void 0:nn.fontSize:d.labelStyles.base.fontSize};\n font-family: ${(null===(on=null===(tn=null===(en=null==n?void 0:n.customStyles)||void 0===en?void 0:en.labelStyles)||void 0===tn?void 0:tn.base)||void 0===on?void 0:on.fontFamily)?null===(rn=null===(an=null===(ln=null==n?void 0:n.customStyles)||void 0===ln?void 0:ln.labelStyles)||void 0===an?void 0:an.base)||void 0===rn?void 0:rn.fontFamily:d.labelStyles.base.fontFamily};\n font-weight: ${(null===(cn=null===(dn=null===(sn=null==n?void 0:n.customStyles)||void 0===sn?void 0:sn.labelStyles)||void 0===dn?void 0:dn.base)||void 0===cn?void 0:cn.fontWeight)?null===(mn=null===(un=null===(pn=null==n?void 0:n.customStyles)||void 0===pn?void 0:pn.labelStyles)||void 0===un?void 0:un.base)||void 0===mn?void 0:mn.fontWeight:d.labelStyles.base.fontWeight};\n text-align: ${(null===(yn=null===(vn=null===(hn=null==n?void 0:n.customStyles)||void 0===hn?void 0:hn.labelStyles)||void 0===vn?void 0:vn.base)||void 0===yn?void 0:yn.textAlign)?null===(fn=null===(gn=null===(bn=null==n?void 0:n.customStyles)||void 0===bn?void 0:bn.labelStyles)||void 0===gn?void 0:gn.base)||void 0===fn?void 0:fn.textAlign:d.labelStyles.base.textAlign};\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`},y=n=>{const t=n.cards.reduce(((t,o)=>{const{cvvLabel:i}=(l=n.customStyles,{labels:{nameLabel:e(l,"labels.nameLabel",d.labels.nameLabel),cardLabel:e(l,"labels.cardLabel",d.labels.cardLabel),cvvLabel:e(l,"labels.cvvLabel",d.labels.cvvLabel),expiryDateLabel:e(l,"labels.expiryDateLabel",d.labels.expiryDateLabel)},placeholders:{namePlaceholder:e(l,"placeholders.namePlaceholder",d.placeholders.namePlaceholder),cardPlaceholder:e(l,"placeholders.cardPlaceholder",d.placeholders.cardPlaceholder),cvvPlaceholder:e(l,"placeholders.cvvPlaceholder",d.placeholders.cvvPlaceholder),expiryMonthPlaceholder:e(l,"placeholders.expiryMonthPlaceholder",d.placeholders.expiryMonthPlaceholder),expiryYearPlaceholder:e(l,"placeholders.expiryYearPlaceholder",d.placeholders.expiryYearPlaceholder)}}).labels;var l;return`${t}\n <div class="ac" id="card_container-${o.skyflow_id}">\n <div class="card-item">\n <input id="${o.skyflow_id}" class="card_selected" name="card_selected" type="radio"/>\n <label class="card-item-label" for="${o.skyflow_id}">\n <img class="card-image" src="${u(o.card_scheme)}" />\n <div class="card-number">${o.card_number}</div>\n <div class="card-expiration">Exp. ${o.expiration_month}/${o.expiration_year}</div>\n <div class="card-delete-icon">\n <button id="delete_button_${o.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 <div class="ac-panel">\n <div class="ac-card-panel-container" id="acContainer${o.skyflow_id}">\n \n <div class="cvvContainer" id="cvvContainer${o.skyflow_id}">\n <label class="tndr-form-label label-cvv-cards">${i}</label>\n <div id="${n.collectorIds.cvv}${o.skyflow_id}" class="empty-div">\n <div class="tndr-simulate-input-cvv-container">\n <div class="tndr-simulate-input-cvv">\n <svg class="cvvIcon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="24" viewBox="0 0 270 178">\n <defs>\n <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">\n <stop offset="0" stop-color="#386bbf"/>\n <stop offset="1" stop-color="#032ea3"/>\n </linearGradient>\n <linearGradient id="linear-gradient-2" x1="0.5" y1="0.115" x2="0.5" y2="1" gradientUnits="objectBoundingBox">\n <stop offset="0" stop-color="#1c1c1c"/>\n <stop offset="1" stop-color="#151515"/>\n </linearGradient>\n </defs>\n <g id="Grupo_3" data-name="Grupo 3" transform="translate(-69 -312)">\n <g id="Grupo_2" data-name="Grupo 2">\n <rect id="Rectángulo_58" data-name="Rectángulo 58" width="253" height="165" rx="25" transform="translate(69 312)" fill="url(#linear-gradient)"/>\n <rect id="Rectángulo_61" data-name="Rectángulo 61" width="68" height="8" rx="4" transform="translate(86 437)" fill="#fff" opacity="0.877"/>\n <rect id="Rectángulo_66" data-name="Rectángulo 66" width="253" height="24" transform="translate(69 347)" fill="url(#linear-gradient-2)"/>\n <g id="Elipse_4" data-name="Elipse 4" transform="translate(221 374)" fill="#fff" stroke="#191919" stroke-width="1">\n <ellipse cx="59" cy="58" rx="59" ry="58" stroke="none"/>\n <ellipse cx="59" cy="58" rx="58.5" ry="57.5" fill="none"/>\n </g>\n </g>\n <text id="_123" data-name="123" transform="translate(240 448)" font-size="45" font-family="Menlo-Regular, Menlo"><tspan x="0" y="0">123</tspan></text>\n </g>\n </svg>\n <input tabindex="-1"/>\n </div>\n </div>\n \n </div>\n </div>\n ${(null==n?void 0:n.renderPaymentButton)?`<div class="container-card-pay-button">\n <button id="${n.collectorIds.tonderPayButton?n.collectorIds.tonderPayButton:""}${o.skyflow_id}" class="card-pay-button pay-button">Pagar</button>\n </div> `:""}\n </div>\n </div>\n </div>`}),""),o=`\n <style>\n @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap");\n .ac {\n border: none;\n background-color: transparent;\n box-sizing: border-box;\n margin-bottom: 0;\n border-bottom: 1px solid #e2e8f0;\n }\n .ac-card-panel-container{\n padding: ${(null==n?void 0:n.renderPaymentButton)?"20px 32px 0px 32px":"20px 32px 20px 32px"};\n }\n .cvvContainer{\n max-width: 60%; \n position: relative;\n padding: 0 0 0 29px;\n }\n .cvvIcon {\n position: absolute;\n right: 8px;\n top: 12px;\n opacity: 0;\n transform: translateY(10px);\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n .label-cvv-cards {\n opacity: 0;\n }\n .cvvContainer.show .label-cvv-cards{\n opacity: 1;\n transition-delay: 0.3s;\n }\n .cvvContainer.show .cvvIcon,\n .ac-card-panel-container.show .card-pay-button {\n opacity: 1;\n transform: translateY(0);\n transition-delay: 0.3s;\n }\n .error-custom-inputs-tonder-cards{\n bottom: 2px !important;\n }\n .container-card-pay-button{\n margin: 20px 0px;\n }\n .card-pay-button{\n display: block;\n opacity: 0;\n transform: translateY(10px);\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n \n .ac .ac-header {\n margin: 0;\n padding: 0;\n }\n \n .ac .ac-trigger {\n font:\n bold 16px "Arial",\n sans-serif;\n color: var(--color-black);\n text-align: left;\n width: 100%;\n padding: 8px 32px 8px 8px;\n display: block;\n cursor: pointer;\n background-color: transparent;\n transition: color 0.25s ease;\n position: relative;\n text-decoration: none;\n margin: 0;\n border: 0;\n }\n \n .ac .ac-trigger::after {\n content: "+";\n text-align: center;\n width: 15px;\n transform: translate(0, -50%);\n position: absolute;\n right: 10px;\n top: 50%;\n }\n \n .ac .ac-trigger:focus {\n color: var(--color-grey);\n }\n \n .ac .ac-panel {\n overflow: hidden;\n transition-property: height, visibility;\n transition-timing-function: ease;\n }\n \n .ac .ac-panel .ac-text {\n font:\n 15px/24px "Arial",\n sans-serif;\n color: var(--color-black);\n padding: 8px;\n margin: 0;\n }\n \n .ac.js-enabled .ac-panel {\n visibility: hidden;\n }\n \n .ac.is-active .ac-panel {\n visibility: visible;\n }\n \n .ac.is-active > .ac-header .ac-trigger::after {\n content: "\\2013";\n }\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 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 @media screen and (max-width: 768px) {\n .cvvContainer {\n max-width: 70%;\n }\n }\n \n @media screen and (max-width: 480px) {\n .cvvContainer {\n max-width: 100%;\n }\n }\n </style>\n `;return`\n <div class="accordion-container${n.acId}">\n ${t}\n </div>\n ${o}\n `},b=(n,e)=>`\n ${e.reduce(((n,e)=>{const t=(n=>{const e=h(n.toUpperCase());return{[s.SORIANA]:{label:"Soriana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/soriana.png"},[s.OXXO]:{label:"Oxxo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/oxxo.png"},[s.CODI]:{label:"CoDi",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/codi.png"},[s.SPEI]:{label:"SPEI",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/spei.png"},[s.PAYPAL]:{label:"Paypal",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/paypal.png"},[s.COMERCIALMEXICANA]:{label:"Comercial Mexicana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/comercial_exicana.png"},[s.BANCOMER]:{label:"Bancomer",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bancomer.png"},[s.WALMART]:{label:"Walmart",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/walmart.png"},[s.BODEGA]:{label:"Bodega Aurrera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/bodega_aurrera.png"},[s.SAMSCLUB]:{label:"Sam´s Club",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/sams_club.png"},[s.SUPERAMA]:{label:"Superama",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/superama.png"},[s.CALIMAX]:{label:"Calimax",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/calimax.png"},[s.EXTRA]:{label:"Tiendas Extra",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/tiendas_extra.png"},[s.CIRCULOK]:{label:"Círculo K",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/circulo_k.png"},[s.SEVEN11]:{label:"7 Eleven",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/7_eleven.png"},[s.TELECOMM]:{label:"Telecomm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/telecomm.png"},[s.BANORTE]:{label:"Banorte",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/banorte.png"},[s.BENAVIDES]:{label:"Farmacias Benavides",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_benavides.png"},[s.DELAHORRO]:{label:"Farmacias del Ahorro",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_ahorro.png"},[s.ELASTURIANO]:{label:"El Asturiano",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/asturiano.png"},[s.WALDOS]:{label:"Waldos",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/waldos.png"},[s.ALSUPER]:{label:"Alsuper",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/al_super.png"},[s.KIOSKO]:{label:"Kiosko",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/kiosko.png"},[s.STAMARIA]:{label:"Farmacias Santa María",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_santa_maria.png"},[s.LAMASBARATA]:{label:"Farmacias la más barata",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_barata.png"},[s.FARMROMA]:{label:"Farmacias Roma",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_roma.png"},[s.FARMUNION]:{label:"Pago en Farmacias Unión",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_union.png"},[s.FARMATODO]:{label:"Pago en Farmacias Farmatodo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_farmatodo.png\t"},[s.SFDEASIS]:{label:"Pago en Farmacias San Francisco de Asís",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/farmacias_san_francisco.png"},[s.FARM911]:{label:"Farmacias 911",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.FARMECONOMICAS]:{label:"Farmacias Economicas",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.FARMMEDICITY]:{label:"Farmacias Medicity",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.RIANXEIRA]:{label:"Rianxeira",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.WESTERNUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.ZONAPAGO]:{label:"Zona Pago",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.CAJALOSANDES]:{label:"Caja Los Andes",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.CAJAPAITA]:{label:"Caja Paita",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.CAJASANTA]:{label:"Caja Santa",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.CAJASULLANA]:{label:"Caja Sullana",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.CAJATRUJILLO]:{label:"Caja Trujillo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.EDPYME]:{label:"Edpyme",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.KASNET]:{label:"KasNet",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.NORANDINO]:{label:"Norandino",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.QAPAQ]:{label:"Qapaq",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.RAIZ]:{label:"Raiz",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.PAYSER]:{label:"Paysera",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.WUNION]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.BANCOCONTINENTAL]:{label:"Banco Continental",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.GMONEY]:{label:"Go money",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.GOPAY]:{label:"Go pay",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.WU]:{label:"Western Union",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.PUNTOSHEY]:{label:"Puntoshey",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.AMPM]:{label:"Ampm",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.JUMBOMARKET]:{label:"Jumbomarket",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.SMELPUEBLO]:{label:"Smelpueblo",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.BAM]:{label:"Bam",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.REFACIL]:{label:"Refacil",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"},[s.ACYVALORES]:{label:"Acyvalores",icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png"}}[e]||{icon:"https://d35a75syrgujp0.cloudfront.net/payment_methods/store.png",label:""}})(e.payment_method);return`\n ${n}\n <div class="apm-item" id="card_container-${e.pk}">\n <input id="${e.pk}" class="card_selected" name="card_selected" type="radio"/>\n <label class="apm-item-label" for="${e.pk}">\n <div class="apm-image">\n <div class="apm-image-border"></div>\n <img src="${t.icon}" />\n </div>\n <div class="apm-name">${t.label}</div>\n </label>\n </div>`}),"")}\n \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 `;function g(n,e,o,i){return a(this,arguments,void 0,(function*(n,e,o,i,l={},a,r){var s,c,p,u,m,h,v,y,b,g,C,A,I,S,L,P,_,w,O,j,k,N,M,B,T,R,D,$,U,z,F,Y,H,G,V,W;const K=(yield f(n,e,o,r,i)).container(t.ContainerType.COLLECT);var q=0===Object.keys(l).length?d:Object.assign(Object.assign({},l),{labels:{nameLabel:(null===(s=null==l?void 0:l.labels)||void 0===s?void 0:s.nameLabel)&&""!==(null===(c=null==l?void 0:l.labels)||void 0===c?void 0:c.nameLabel)?null===(p=null==l?void 0:l.labels)||void 0===p?void 0:p.nameLabel:d.labels.nameLabel,cardLabel:(null===(u=null==l?void 0:l.labels)||void 0===u?void 0:u.cardLabel)&&""!==(null===(m=null==l?void 0:l.labels)||void 0===m?void 0:m.cardLabel)?null===(h=null==l?void 0:l.labels)||void 0===h?void 0:h.cardLabel:d.labels.cardLabel,cvvLabel:(null===(v=null==l?void 0:l.labels)||void 0===v?void 0:v.cvvLabel)&&""!==(null===(y=null==l?void 0:l.labels)||void 0===y?void 0:y.cvvLabel)?null===(b=null==l?void 0:l.labels)||void 0===b?void 0:b.cvvLabel:d.labels.cvvLabel,expiryDateLabel:(null===(g=null==l?void 0:l.labels)||void 0===g?void 0:g.expiryDateLabel)&&""!==(null===(C=null==l?void 0:l.labels)||void 0===C?void 0:C.expiryDateLabel)?null===(A=null==l?void 0:l.labels)||void 0===A?void 0:A.expiryDateLabel:d.labels.expiryDateLabel},placeholders:{namePlaceholder:(null===(I=null==l?void 0:l.placeholders)||void 0===I?void 0:I.namePlaceholder)&&""!==(null===(S=null==l?void 0:l.placeholders)||void 0===S?void 0:S.namePlaceholder)?null===(L=null==l?void 0:l.placeholders)||void 0===L?void 0:L.namePlaceholder:d.placeholders.namePlaceholder,cardPlaceholder:(null===(P=null==l?void 0:l.placeholders)||void 0===P?void 0:P.cardPlaceholder)&&""!==(null===(_=null==l?void 0:l.placeholders)||void 0===_?void 0:_.cardPlaceholder)?null===(w=null==l?void 0:l.placeholders)||void 0===w?void 0:w.cardPlaceholder:d.placeholders.cardPlaceholder,cvvPlaceholder:(null===(O=null==l?void 0:l.placeholders)||void 0===O?void 0:O.cvvPlaceholder)&&""!==(null===(j=null==l?void 0:l.placeholders)||void 0===j?void 0:j.cvvPlaceholder)?null===(k=null==l?void 0:l.placeholders)||void 0===k?void 0:k.cvvPlaceholder:d.placeholders.cvvPlaceholder,expiryMonthPlaceholder:(null===(N=null==l?void 0:l.placeholders)||void 0===N?void 0:N.expiryMonthPlaceholder)&&""!==(null===(M=null==l?void 0:l.placeholders)||void 0===M?void 0:M.expiryMonthPlaceholder)?null===(B=null==l?void 0:l.placeholders)||void 0===B?void 0:B.expiryMonthPlaceholder:d.placeholders.expiryMonthPlaceholder,expiryYearPlaceholder:(null===(T=null==l?void 0:l.placeholders)||void 0===T?void 0:T.expiryYearPlaceholder)&&""!==(null===(R=null==l?void 0:l.placeholders)||void 0===R?void 0:R.expiryYearPlaceholder)?null===(D=null==l?void 0:l.placeholders)||void 0===D?void 0:D.expiryYearPlaceholder:d.placeholders.expiryYearPlaceholder}});const X=Object.assign({},q.inputStyles.base);X.textIndent="44px";const J={type:t.ValidationRuleType.LENGTH_MATCH_RULE,params:{max:70,error:"El campo nombre del titular debe tener menos de 70 caracteres"}},Z=K.create(Object.assign(Object.assign({table:"cards",column:"cardholder_name"},q),{label:null===($=null==q?void 0:q.labels)||void 0===$?void 0:$.nameLabel,placeholder:null===(U=null==q?void 0:q.placeholders)||void 0===U?void 0:U.namePlaceholder,type:t.ElementType.CARDHOLDER_NAME,validations:[J,E]}));"on"in Z&&(Z.on(t.EventName.CHANGE,(n=>{let e=document.getElementById("errorCardHolderIdTonder");e&&n.isValid&&!n.isEmpty&&e.remove()})),Z.on(t.EventName.BLUR,(n=>{let e=document.getElementById(a.holderName),t=document.getElementById("errorCardHolderIdTonder");if(t&&t.remove(),!n.isValid){let t=document.createElement("div");t.classList.add("error-custom-inputs-tonder"),t.id="errorCardHolderIdTonder",t.textContent=n.isEmpty?"El campo es requerido":"El campo titular de la tarjeta es inválido",null==e||e.appendChild(t)}})));const Q=K.create(Object.assign(Object.assign({table:"cards",column:"card_number"},q),{inputStyles:Object.assign(Object.assign({},q.inputStyles),{base:X}),label:null===(z=q.labels)||void 0===z?void 0:z.cardLabel,placeholder:null===(F=q.placeholders)||void 0===F?void 0:F.cardPlaceholder,type:t.ElementType.CARD_NUMBER,validations:[E]}));"on"in Q&&(Q.on(t.EventName.CHANGE,(n=>{let e=document.getElementById("errorCardNumberIdTonder");e&&n.isValid&&!n.isEmpty&&e.remove()})),Q.on(t.EventName.BLUR,(n=>{let e=document.getElementById(a.cardNumber),t=document.getElementById("errorCardNumberIdTonder");if(t&&t.remove(),!n.isValid){let t=document.createElement("div");t.classList.add("error-custom-inputs-tonder"),t.id="errorCardNumberIdTonder",t.textContent=n.isEmpty?"El campo es requerido":"El campo número de tarjeta es inválido",null==e||e.appendChild(t)}})));const nn=K.create(Object.assign(Object.assign({table:"cards",column:"cvv"},q),{label:null===(Y=q.labels)||void 0===Y?void 0:Y.cvvLabel,placeholder:null===(H=q.placeholders)||void 0===H?void 0:H.cvvPlaceholder,type:t.ElementType.CVV,validations:[E]}));"on"in nn&&(nn.on(t.EventName.CHANGE,(n=>{let e=document.getElementById("errorCvvIdTonder");e&&n.isValid&&!n.isEmpty&&e.remove()})),nn.on(t.EventName.BLUR,(n=>{let e=document.getElementById(a.cvv),t=document.getElementById("errorCvvIdTonder");if(t&&t.remove(),!n.isValid){let t=document.createElement("div");t.classList.add("error-custom-inputs-tonder"),t.id="errorCvvIdTonder",t.textContent=n.isEmpty?"El campo es requerido":"El campo es inválido",null==e||e.appendChild(t)}})));const en=K.create(Object.assign(Object.assign({table:"cards",column:"expiration_month"},q),{label:null===(G=q.labels)||void 0===G?void 0:G.expiryDateLabel,placeholder:null===(V=q.placeholders)||void 0===V?void 0:V.expiryMonthPlaceholder,type:t.ElementType.EXPIRATION_MONTH,validations:[E]}));"on"in en&&(en.on(t.EventName.CHANGE,(n=>{let e=document.getElementById("errorExpiryMonthIdTonder");e&&n.isValid&&!n.isEmpty&&e.remove()})),en.on(t.EventName.BLUR,(n=>{let e=document.getElementById(a.expirationMonth),t=document.getElementById("errorExpiryMonthIdTonder");if(t&&t.remove(),!n.isValid){let t=document.createElement("div");t.classList.add("error-custom-inputs-tonder"),t.id="errorExpiryMonthIdTonder",t.textContent=n.isEmpty?"El campo es requerido":"El campo es inválido",null==e||e.appendChild(t)}}))),console.log("collectStylesOptions ====",q);const tn=K.create(Object.assign(Object.assign({table:"cards",column:"expiration_year"},q),{label:"",placeholder:null===(W=q.placeholders)||void 0===W?void 0:W.expiryYearPlaceholder,type:t.ElementType.EXPIRATION_YEAR,validations:[E]}));"on"in tn&&(tn.on(t.EventName.CHANGE,(n=>{let e=document.getElementById("errorExpiryYearIdTonder");e&&n.isValid&&!n.isEmpty&&e.remove()})),tn.on(t.EventName.BLUR,(n=>{let e=document.getElementById(a.expirationYear),t=document.getElementById("errorExpiryYearIdTonder");if(t&&t.remove(),!n.isValid){let t=document.createElement("div");t.classList.add("error-custom-inputs-tonder"),t.id="errorExpiryYearIdTonder",t.textContent=n.isEmpty?"El campo es requerido":"El campo es inválido",null==e||e.appendChild(t)}})));const on={cardNumber:{element:Q,container:`#${a.cardNumber}`},cvv:{element:nn,container:`#${a.cvv}`},expiryMonth:{element:en,container:`#${a.expirationMonth}`},expiryYear:{element:tn,container:`#${a.expirationYear}`},cardHolderName:{element:Z,container:`#${a.holderName}`}};return yield x(on),{container:K,elements:{cardHolderNameElement:Z,cardNumberElement:Q,cvvElement:nn,expiryMonthElement:en,expiryYearElement:tn}}}))}function f(n,e,o,i,l){return a(this,void 0,void 0,(function*(){return t.init({vaultID:n,vaultURL:e,getBearerToken:()=>a(this,void 0,void 0,(function*(){const n=yield fetch(`${o}/api/v1/vault-token/`,{method:"GET",headers:{Authorization:`Token ${i}`},signal:l});if(n.ok){return(yield n.json()).token}throw new Error("Failed to retrieve bearer token")})),options:{logLevel:t.LogLevel.ERROR,env:t.Env.DEV}})}))}function x(n){return a(this,void 0,void 0,(function*(){if("object"!=typeof n||null===n)throw new Error("Invalid configuration object");for(const[e,{element:t,container:o}]of Object.entries(n))t&&o?t.mount(o):console.warn(`Skipping mount for '${e}' due to missing element or container.`)}))}const C=RegExp("^(?!s*$).+"),E={type:t.ValidationRuleType.REGEX_MATCH_RULE,params:{regex:C,error:"El campo es requerido"}};var A,I,S,L,P,_,w,O,j,k,N,M,B,T,R,D,$,U,z,F,Y,H,G;class V extends o{constructor({apiKey:n,returnUrl:e,renderPaymentButton:t=!1,callBack:o=()=>{},styles:i,containerId:l,collectorIds:a,isOpenPaySandbox:r,isEnrollmentCard:s,renderSaveCardButton:d,mode:c="stage",customization:p}){super({apiKey:n,returnUrl:e,mode:c,callBack:o,customization:p,tdsIframeId:a&&"tdsIframe"in a?null==a?void 0:a.tdsIframe:"tdsIframe",tonderPayButtonId:a?null==a?void 0:a.tonderPayButton:"tonderPayButton"}),A.add(this),this.paymentData={},this.deletingCards=[],this.accordionC=null,this.apmsInjected=!1,this.apmsData=[],this.isOpenPaySandbox=!0,this.isEnrollmentCard=!1,this.renderPaymentButton=t||!1,this.renderSaveCardButton=d,this.customStyles=i,this.abortRefreshCardsController=new AbortController,this.containerId=l||"tonder-checkout",this.injected=!1,this.cardsInjected=!1,this.collectorIds={cardsListContainer:"cardsListContainer",holderName:"collectCardholderName",cardNumber:"collectCardNumber",expirationMonth:"collectExpirationMonth",expirationYear:"collectExpirationYear",cvv:"collectCvv",tonderPayButton:"tonderPayButton",msgError:"msgError",msgNotification:"msgNotification",tonderSaveCardButton:"tonderSaveCardButton",apmsListContainer:"apmsListContainer",tdsIframe:"tdsIframe"},this.collectorIds=a?Object.assign(Object.assign({},this.collectorIds),a):this.collectorIds,this.radioChecked="new",this.collectContainer=null,this.updateCollectContainer=null,this.isOpenPaySandbox=void 0===r||r,this.isEnrollmentCard=void 0!==s&&s}setCustomerEmail(n){this.customer=Object.assign(Object.assign({},this.customer),{email:n})}setPaymentData(n){var e;n&&(this.paymentData=n,this.setCartTotal((null===(e=n.cart)||void 0===e?void 0:e.total)||"0"))}injectCheckout(){return a(this,void 0,void 0,(function*(){if(this.injected)return;const n=document.querySelector(`#${this.containerId}`);if(n)return n.innerHTML=v({collectorIds:this.collectorIds,customStyles:this.customStyles,isEnrollmentCard:this.isEnrollmentCard,renderPaymentButton:this.renderPaymentButton,customization:this.customization}),yield r(this,A,"m",$).call(this),void(this.injected=!0);const e=new MutationObserver(((n,e)=>a(this,void 0,void 0,(function*(){const n=document.querySelector(`#${this.containerId}`);n&&(n.innerHTML=v({collectorIds:this.collectorIds,customStyles:this.customStyles,isEnrollmentCard:this.isEnrollmentCard,renderPaymentButton:this.renderPaymentButton,customization:this.customization}),yield r(this,A,"m",$).call(this),this.injected=!0,e.disconnect())}))));e.observe(document.body,{childList:!0,subtree:!0,attributeFilter:["id"]})}))}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 a(this,void 0,void 0,(function*(){return new Promise(((n,e)=>a(this,void 0,void 0,(function*(){try{yield r(this,A,"m",Y).call(this,!0,"Guardando..."),yield r(this,A,"m",H).call(this),yield r(this,A,"m",Y).call(this,!1),n("Tarjeta registrada con éxito")}catch(n){e(n)}}))))}))}_setCartTotal(n){this.cartTotal=n,r(this,A,"m",j).call(this)}setCartTotal(n){this.cartTotal=n,r(this,A,"m",j).call(this)}_checkout(){return a(this,void 0,void 0,(function*(){try{if(r(this,A,"m",j).call(this,{cardId:this.radioChecked,textContent:"Cargando...",disabled:!0}),this.merchantData){if("openpay_keys"in this.merchantData){const{business:n}=this.merchantData;let e;"new"===this.radioChecked||void 0===this.radioChecked?e=yield r(this,A,"m",F).call(this,this.collectorIds.tonderPayButton,this.radioChecked):(yield r(this,A,"m",F).call(this,this.collectorIds.tonderPayButton,this.radioChecked),e={skyflow_id:this.radioChecked});const t=yield this._getCustomer(),{auth_token:o}=t;o&&this.customer.email&&(yield r(this,A,"m",G).call(this,o,n.pk,e));const i=this.apmsData?this.apmsData.find((n=>n.pk===this.radioChecked)):null,l=yield this._handleCheckout(Object.assign(Object.assign({},i&&Object.keys(i).length>0?{payment_method:i.payment_method}:{card:e}),{customer:t}));return r(this,A,"m",j).call(this,{cardId:this.radioChecked,disabled:!1}),l||(c("No se ha podido procesar el pago",this.collectorIds.msgError,this.collectorIds.tonderPayButton),!1)}}else c("No se han configurado los datos del proveedor de servicio",this.collectorIds.msgError,this.collectorIds.tonderPayButton)}catch(n){throw console.log(n),c("Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderPayButton),n}finally{r(this,A,"m",j).call(this,{cardId:this.radioChecked,disabled:!1})}}))}}A=new WeakSet,I=function(n){return a(this,void 0,void 0,(function*(){var e;if(this.cardsInjected||!(null===(e=this.customization.saveCards)||void 0===e?void 0:e.showSaved))return;this.cardsInjected=!1;const t=yield this._getCustomerCards(n,this.merchantData.business.pk);let o=[];if("cards"in t){o=t.cards.map(m);const e=setInterval((()=>{const t=document.querySelector(`#${this.collectorIds.cardsListContainer}`);if(t&&this.injected){const i=function(n){const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let o=0;o<n;o++)t+=e[Math.floor(52*Math.random())];return t}(10);t.innerHTML=y({cards:o,acId:i,collectorIds:this.collectorIds,renderPaymentButton:this.renderPaymentButton,customStyles:this.customStyles}),clearInterval(e),r(this,A,"m",S).call(this,i),r(this,A,"m",k).call(this,n),this.cardsInjected=!0}}),500)}}))},S=function(n){this.accordionC=new i(`.accordion-container${n}`,{triggerClass:"card-item-label",duration:300,collapse:!0,showMultiple:!1,onOpen:n=>a(this,void 0,void 0,(function*(){yield r(this,A,"m",L).call(this,n)}))})},L=function(n){return a(this,void 0,void 0,(function*(){var e,o;const{vault_id:i,vault_url:l}=this.merchantData,s=n.id.replace("card_container-","");this.updateCollectContainer&&"unmount"in(null===(o=null===(e=this.updateCollectContainer)||void 0===e?void 0:e.elements)||void 0===o?void 0:o.cvvElement)&&this.updateCollectContainer.elements.cvvElement.unmount(),document.querySelectorAll(".cvvContainer").forEach((n=>{n.classList.remove("show")}));const c=document.getElementById(s);c&&(c.checked=!0);try{this.updateCollectContainer=yield function(n,e,o,i,l){return a(this,arguments,void 0,(function*(n,e,o,i,l,a={},r,s){var c,p,u,m,h,v,y,b,g,C,A,I,S,L,P,_,w,O,j,k,N,M,B,T,R,D,$,U;const z=yield f(e,o,i,s,l);var F=0===Object.keys(a).length?d:Object.assign(Object.assign({},a),{labels:{nameLabel:(null===(c=null==a?void 0:a.labels)||void 0===c?void 0:c.nameLabel)&&""!==(null===(p=null==a?void 0:a.labels)||void 0===p?void 0:p.nameLabel)?null===(u=null==a?void 0:a.labels)||void 0===u?void 0:u.nameLabel:d.labels.nameLabel,cardLabel:(null===(m=null==a?void 0:a.labels)||void 0===m?void 0:m.cardLabel)&&""!==(null===(h=null==a?void 0:a.labels)||void 0===h?void 0:h.cardLabel)?null===(v=null==a?void 0:a.labels)||void 0===v?void 0:v.cardLabel:d.labels.cardLabel,cvvLabel:(null===(y=null==a?void 0:a.labels)||void 0===y?void 0:y.cvvLabel)&&""!==(null===(b=null==a?void 0:a.labels)||void 0===b?void 0:b.cvvLabel)?null===(g=null==a?void 0:a.labels)||void 0===g?void 0:g.cvvLabel:d.labels.cvvLabel,expiryDateLabel:(null===(C=null==a?void 0:a.labels)||void 0===C?void 0:C.expiryDateLabel)&&""!==(null===(A=null==a?void 0:a.labels)||void 0===A?void 0:A.expiryDateLabel)?null===(I=null==a?void 0:a.labels)||void 0===I?void 0:I.expiryDateLabel:d.labels.expiryDateLabel},placeholders:{namePlaceholder:(null===(S=null==a?void 0:a.placeholders)||void 0===S?void 0:S.namePlaceholder)&&""!==(null===(L=null==a?void 0:a.placeholders)||void 0===L?void 0:L.namePlaceholder)?null===(P=null==a?void 0:a.placeholders)||void 0===P?void 0:P.namePlaceholder:d.placeholders.namePlaceholder,cardPlaceholder:(null===(_=null==a?void 0:a.placeholders)||void 0===_?void 0:_.cardPlaceholder)&&""!==(null===(w=null==a?void 0:a.placeholders)||void 0===w?void 0:w.cardPlaceholder)?null===(O=null==a?void 0:a.placeholders)||void 0===O?void 0:O.cardPlaceholder:d.placeholders.cardPlaceholder,cvvPlaceholder:(null===(j=null==a?void 0:a.placeholders)||void 0===j?void 0:j.cvvPlaceholder)&&""!==(null===(k=null==a?void 0:a.placeholders)||void 0===k?void 0:k.cvvPlaceholder)?null===(N=null==a?void 0:a.placeholders)||void 0===N?void 0:N.cvvPlaceholder:d.placeholders.cvvPlaceholder,expiryMonthPlaceholder:(null===(M=null==a?void 0:a.placeholders)||void 0===M?void 0:M.expiryMonthPlaceholder)&&""!==(null===(B=null==a?void 0:a.placeholders)||void 0===B?void 0:B.expiryMonthPlaceholder)?null===(T=null==a?void 0:a.placeholders)||void 0===T?void 0:T.expiryMonthPlaceholder:d.placeholders.expiryMonthPlaceholder,expiryYearPlaceholder:(null===(R=null==a?void 0:a.placeholders)||void 0===R?void 0:R.expiryYearPlaceholder)&&""!==(null===(D=null==a?void 0:a.placeholders)||void 0===D?void 0:D.expiryYearPlaceholder)?null===($=null==a?void 0:a.placeholders)||void 0===$?void 0:$.expiryYearPlaceholder:d.placeholders.expiryYearPlaceholder}});const Y=z.container(t.ContainerType.COLLECT),H=Y.create(Object.assign(Object.assign({table:"cards",column:"cvv"},F),{label:"",placeholder:null===(U=F.placeholders)||void 0===U?void 0:U.cvvPlaceholder,type:t.ElementType.CVV,validations:[E],skyflowID:n}));"on"in H&&(H.on(t.EventName.CHANGE,(e=>{let t=document.getElementById(`errorCvvIdTonder${n}`);t&&e.isValid&&!e.isEmpty&&t.remove()})),H.on(t.EventName.BLUR,(e=>{let t=document.getElementById(r.cvv+n),o=document.getElementById("errorCvvIdTonder"+n);if(o&&o.remove(),!e.isValid){let o=document.createElement("div");o.classList.add("error-custom-inputs-tonder-cards"),o.classList.add("error-custom-inputs-tonder"),o.id="errorCvvIdTonder"+n,o.textContent=e.isEmpty?"El campo es requerido":"El campo es inválido",null==t||t.appendChild(o)}})));const G={cvv:{element:H,container:`#${r.cvv}${n}`}};return yield x(G),{container:Y,elements:{cvvElement:H}}}))}(s,i,l,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder),setTimeout((()=>{const n=document.querySelector(`#cvvContainer${s}`);n&&n.classList.add("show")}),5),r(this,A,"m",P).call(this,s)}catch(n){console.error("Ha ocurrido un error",n)}c&&(yield r(this,A,"m",B).call(this,c))}))},P=function(n=""){if(!this.renderPaymentButton)return;const e=`#${this.collectorIds.tonderPayButton}${n}`,t=document.querySelector(e),o=`#acContainer${n}`,i=document.querySelector(o);if(!t)return void console.error("Pay button not found");if(""!==n){const n=document.querySelector(`#${this.collectorIds.tonderPayButton}`);n&&(n.style.display="none")}t.style.display="block";const l=Intl.NumberFormat("en-Latn-US",{minimumFractionDigits:2}).format(Number(this.cartTotal||0));t.textContent=`Pagar $${l}`,document.querySelectorAll(".ac-card-panel-container").forEach((n=>{n.classList.remove("show")})),i&&i.classList.add("show"),t.onclick=n=>a(this,void 0,void 0,(function*(){n.preventDefault(),yield r(this,A,"m",_).call(this,t)}))},_=function(n){return a(this,void 0,void 0,(function*(){try{yield this.payment({})}catch(n){console.error("Payment error:",n)}}))},w=function(){if(!this.renderSaveCardButton)return;const n=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);n?(n.style.display="block",n.textContent="Guardar",n.onclick=e=>a(this,void 0,void 0,(function*(){e.preventDefault(),yield r(this,A,"m",O).call(this,n)}))):console.error("Save button not found")},O=function(n){return a(this,void 0,void 0,(function*(){const e=n.innerHTML;n.innerHTML='<div class="lds-dual-ring"></div>';try{const n=yield this.saveCard();this.callBack({message:n})}catch(n){console.error("Save card error:",n)}finally{n.innerHTML=e}}))},j=function(n){try{const e=(null==n?void 0:n.cardId)&&"new"!==(null==n?void 0:n.cardId)?`#${this.collectorIds.tonderPayButton}${n.cardId}`:`#${this.collectorIds.tonderPayButton}`,t=(null==n?void 0:n.updatedTextContent)||!0,o=(null==n?void 0:n.textContent)||`Pagar $${this.cartTotal}`,i=null==n?void 0:n.disabled,l=document.querySelector(e);if(!l)return;t&&(l.textContent=o),void 0!==i&&"disabled"in l&&(l.disabled=i)}catch(n){console.error("Pay button not found due to update",n)}},k=function(n=""){const e=document.getElementsByName("card_selected");for(const n of e)n.style.display="block",n.onclick=t=>a(this,void 0,void 0,(function*(){const t=Array.from(e).indexOf(n);yield r(this,A,"m",B).call(this,n,t)}));const t=document.getElementsByClassName("card-delete-button");for(const e of t)e.addEventListener("click",(t=>a(this,void 0,void 0,(function*(){t.preventDefault(),t.stopImmediatePropagation(),yield r(this,A,"m",N).call(this,n,e)}))),!1)},N=function(n,e){return a(this,void 0,void 0,(function*(){var t,o;const i=e.attributes.getNamedItem("id"),l=null===(o=null===(t=null==i?void 0:i.value)||void 0===t?void 0:t.split("_"))||void 0===o?void 0:o[2];if(l){const e=document.querySelector(`#card_container-${l}`);e&&(e.style.display="none");try{this.deletingCards.push(l),this.abortRefreshCardsController&&(this.abortRefreshCardsController.abort(),this.abortRefreshCardsController=new AbortController),yield this._removeCustomerCard(n,this.merchantData.business.pk,l)}catch(n){}finally{this.deletingCards=this.deletingCards.filter((n=>n!==l)),yield r(this,A,"m",M).call(this,n)}}}))},M=function(n){return a(this,void 0,void 0,(function*(){this.deletingCards.length>0||(this.cardsInjected=!1,yield r(this,A,"m",I).call(this,n))}))},B=function(n){return a(this,arguments,void 0,(function*(n,e=null){const t=document.querySelector(".container-form");t&&(t.style.display="new"===n.id?"block":"none"),"new"===n.id?(r(this,A,"m",T).call(this,null,!0),this.radioChecked!==n.id&&(yield r(this,A,"m",z).call(this),r(this,A,"m",P).call(this))):(r(this,A,"m",T).call(this,e,null!==e),r(this,A,"m",U).call(this)),this.radioChecked=n.id}))},T=function(n=null,e=!1){e&&this.accordionC&&"closeAll"in this.accordionC&&this.accordionC.closeAll(),null!==n&&this.accordionC&&"open"in this.accordionC&&this.accordionC.open(n)},R=function(){return a(this,void 0,void 0,(function*(){try{const n=yield this._fetchCustomerPaymentMethods();n&&n.results&&n.results.length>0&&(this.apmsData=n.results,r(this,A,"m",D).call(this,n.results))}catch(n){console.warn("Error getting APMS")}}))},D=function(n){if(this.apmsInjected)return;const e=setInterval((()=>{const t=document.querySelector(`#${this.collectorIds.apmsListContainer}`);t&&this.injected&&(t.innerHTML=b(this.customStyles,n),clearInterval(e),r(this,A,"m",k).call(this),this.apmsInjected=!0)}),500)},$=function(){return a(this,void 0,void 0,(function*(){this.isEnrollmentCard?r(this,A,"m",w).call(this):r(this,A,"m",P).call(this),yield this._initializeCheckout();const{vault_id:n,vault_url:e}=this.merchantData;if(n){if(this.customer.email&&!this.isEnrollmentCard){const n=yield this._getCustomer();if("auth_token"in n){const{auth_token:e}=n;yield r(this,A,"m",I).call(this,e)}}this.isEnrollmentCard||(yield r(this,A,"m",R).call(this)),this.collectContainer=yield g(n,e,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder)}}))},U=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())},z=function(){return a(this,void 0,void 0,(function*(){yield this._initializeCheckout();const{vault_id:n,vault_url:e}=this.merchantData;n&&(this.collectContainer=yield g(n,e,this.baseUrl,this.abortController.signal,this.customStyles,this.collectorIds,this.apiKeyTonder))}))},F=function(n){return a(this,arguments,void 0,(function*(n,e=null){var t,o;try{const i=e&&"new"!==e?null===(t=this.updateCollectContainer)||void 0===t?void 0:t.container:null===(o=this.collectContainer)||void 0===o?void 0:o.container;if(i&&"collect"in i){const n=yield i.collect();return yield n.records[0].fields}c("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,n)}catch(e){throw c("Por favor, verifica todos los campos de tu tarjeta",this.collectorIds.msgError,n),e}}))},Y=function(){return a(this,arguments,void 0,(function*(n=!1,e="Guardar"){try{const t=document.querySelector(`#${this.collectorIds.tonderSaveCardButton}`);t&&(t.disabled=n,t.innerHTML=e)}catch(n){}}))},H=function(){return a(this,void 0,void 0,(function*(){if(this.customer.email)try{if(this.merchantData&&"openpay_keys"in this.merchantData){const n=yield r(this,A,"m",F).call(this,this.collectorIds.tonderSaveCardButton),e=yield this._getCustomer();if("auth_token"in e&&this.secureToken){const{auth_token:t}=e;yield this._saveCustomerCard(t,this.merchantData.business.pk,{skyflow_id:n.skyflow_id}),p("Tarjeta registrada con éxito",this.collectorIds.msgNotification)}else c("No se han configurado los datos de seguridad para guardar tarjeta",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}else c("No se han configurado los datos del proveedor de servicio",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}catch(n){throw c("object"==typeof n&&null!==n&&"message"in n?null==n?void 0:n.message:"Ha ocurrido un error",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton),n}}))},G=function(n,e,t){return a(this,void 0,void 0,(function*(){var o;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{this.secureToken?(yield this._saveCustomerCard(n,e,t),this.cardsInjected=!1,yield r(this,A,"m",I).call(this,n),p("Tarjeta registrada con éxito",this.collectorIds.msgNotification)):c("No se han configurado los datos de seguridad para guardar tarjeta",this.collectorIds.msgError,this.collectorIds.tonderSaveCardButton)}catch(n){"object"==typeof n&&null!==n&&"message"in n&&"Error"!==(null==n?void 0:n.message)&&c(null==n?void 0:n.message,this.collectorIds.msgError,this.collectorIds.tonderPayButton)}}))};export{l as Checkout,V as InlineCheckout};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonder.io/ionic-full-sdk",
|
|
3
|
-
"version": "0.0.47
|
|
3
|
+
"version": "0.0.47",
|
|
4
4
|
"description": "Tonder ionic full SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,12 +13,14 @@
|
|
|
13
13
|
"@tonder.io/ionic-lite-sdk": "^0.0.51",
|
|
14
14
|
"accordion-js": "^3.4.0",
|
|
15
15
|
"crypto-js": "^4.1.1",
|
|
16
|
+
"lodash.get": "^4.4.2",
|
|
16
17
|
"skyflow-js": "^1.34.1"
|
|
17
18
|
},
|
|
18
19
|
"devDependencies": {
|
|
19
20
|
"@rollup/plugin-terser": "^0.4.4",
|
|
20
21
|
"@rollup/plugin-typescript": "^11.1.6",
|
|
21
22
|
"@types/crypto-js": "^4.2.2",
|
|
23
|
+
"@types/lodash.get": "^4.4.9",
|
|
22
24
|
"@types/node": "^20.11.5",
|
|
23
25
|
"cypress": "^13.6.2",
|
|
24
26
|
"rollup": "^4.9.6",
|
|
@@ -2,7 +2,7 @@ import { apmItemsTemplate, Card, cardItemsTemplate, cardTemplate, CollectorIds }
|
|
|
2
2
|
import {
|
|
3
3
|
showError,
|
|
4
4
|
showMessage,
|
|
5
|
-
mapCards,
|
|
5
|
+
mapCards, generateRandomString,
|
|
6
6
|
} from '../helpers/utils';
|
|
7
7
|
import {initSkyflow, initUpdateSkyflow} from '../helpers/skyflow'
|
|
8
8
|
import { ErrorResponse } from '@tonder.io/ionic-lite-sdk/dist/classes/errorResponse';
|
|
@@ -110,7 +110,7 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
110
110
|
const containerTonderCheckout = document.querySelector(`#${this.containerId}`);
|
|
111
111
|
|
|
112
112
|
if (containerTonderCheckout) {
|
|
113
|
-
containerTonderCheckout.innerHTML = cardTemplate(
|
|
113
|
+
containerTonderCheckout.innerHTML = cardTemplate({ collectorIds: this.collectorIds, customStyles: this.customStyles, isEnrollmentCard: this.isEnrollmentCard, renderPaymentButton: this.renderPaymentButton, customization: this.customization })
|
|
114
114
|
await this.#mountTonder();
|
|
115
115
|
this.injected = true
|
|
116
116
|
return;
|
|
@@ -118,7 +118,7 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
118
118
|
const observer = new MutationObserver(async (mutations, obs) => {
|
|
119
119
|
const containerTonderCheckout = document.querySelector(`#${this.containerId}`);
|
|
120
120
|
if (containerTonderCheckout) {
|
|
121
|
-
containerTonderCheckout.innerHTML = cardTemplate(
|
|
121
|
+
containerTonderCheckout.innerHTML = cardTemplate({collectorIds: this.collectorIds, customStyles: this.customStyles, isEnrollmentCard: this.isEnrollmentCard, renderPaymentButton: this.renderPaymentButton, customization: this.customization })
|
|
122
122
|
await this.#mountTonder();
|
|
123
123
|
// clearInterval(injectInterval);
|
|
124
124
|
this.injected = true
|
|
@@ -189,9 +189,16 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
189
189
|
const injectInterval = setInterval(() => {
|
|
190
190
|
const queryElement = document.querySelector(`#${this.collectorIds.cardsListContainer}`);
|
|
191
191
|
if (queryElement && this.injected) {
|
|
192
|
-
|
|
192
|
+
const acId = generateRandomString(10)
|
|
193
|
+
queryElement.innerHTML = cardItemsTemplate({
|
|
194
|
+
cards,
|
|
195
|
+
acId: acId,
|
|
196
|
+
collectorIds: this.collectorIds,
|
|
197
|
+
renderPaymentButton: this.renderPaymentButton,
|
|
198
|
+
customStyles: this.customStyles,
|
|
199
|
+
})
|
|
193
200
|
clearInterval(injectInterval)
|
|
194
|
-
this.#generateCardsAccordion()
|
|
201
|
+
this.#generateCardsAccordion(acId)
|
|
195
202
|
this.#mountRadioButtons(customerToken)
|
|
196
203
|
this.cardsInjected = true
|
|
197
204
|
}
|
|
@@ -199,8 +206,8 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
199
206
|
}
|
|
200
207
|
}
|
|
201
208
|
|
|
202
|
-
#generateCardsAccordion(){
|
|
203
|
-
this.accordionC = new Accordion(
|
|
209
|
+
#generateCardsAccordion(acId: string){
|
|
210
|
+
this.accordionC = new Accordion(`.accordion-container${acId}`, {
|
|
204
211
|
triggerClass: "card-item-label",
|
|
205
212
|
duration: 300,
|
|
206
213
|
collapse: true,
|
|
@@ -293,14 +300,10 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
293
300
|
}
|
|
294
301
|
|
|
295
302
|
async #handlePaymentClick(payButton: any) {
|
|
296
|
-
const prevButtonContent = payButton.innerHTML;
|
|
297
|
-
payButton.innerHTML = `<div class="lds-dual-ring"></div>`;
|
|
298
303
|
try {
|
|
299
304
|
await this.payment({} as IProcessPaymentRequest);
|
|
300
305
|
} catch (error) {
|
|
301
306
|
console.error("Payment error:", error);
|
|
302
|
-
} finally {
|
|
303
|
-
payButton.innerHTML = prevButtonContent;
|
|
304
307
|
}
|
|
305
308
|
}
|
|
306
309
|
|
|
@@ -341,7 +344,7 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
341
344
|
|
|
342
345
|
#updatePayButton(data?: {cardId?: string | null; updatedTextContent?: boolean; textContent?: string; disabled?: boolean}) {
|
|
343
346
|
try{
|
|
344
|
-
const btnID = data?.cardId ? `#${this.collectorIds.tonderPayButton}${data.cardId}`: `#${this.collectorIds.tonderPayButton}`;
|
|
347
|
+
const btnID = data?.cardId && data?.cardId !== "new" ? `#${this.collectorIds.tonderPayButton}${data.cardId}`: `#${this.collectorIds.tonderPayButton}`;
|
|
345
348
|
const updatedText = data?.updatedTextContent || true;
|
|
346
349
|
const btnTextContent = data?.textContent || `Pagar $${this.cartTotal}`;
|
|
347
350
|
const disabledBtn = data?.disabled;
|
|
@@ -590,7 +593,7 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
590
593
|
async _checkout() {
|
|
591
594
|
|
|
592
595
|
try {
|
|
593
|
-
this.#updatePayButton({textContent: "Cargando...", disabled: true});
|
|
596
|
+
this.#updatePayButton({cardId: this.radioChecked, textContent: "Cargando...", disabled: true});
|
|
594
597
|
|
|
595
598
|
if(this.merchantData!) {
|
|
596
599
|
|
|
@@ -601,7 +604,6 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
601
604
|
if(this.radioChecked === "new" || this.radioChecked === undefined) {
|
|
602
605
|
cardTokensSkyflowTonder = await this.#getCardTokens(this.collectorIds.tonderPayButton!, this.radioChecked)
|
|
603
606
|
} else {
|
|
604
|
-
this.#updatePayButton({cardId: this.radioChecked, textContent: "Cargando...", disabled: true});
|
|
605
607
|
await this.#getCardTokens(this.collectorIds.tonderPayButton!, this.radioChecked)
|
|
606
608
|
cardTokensSkyflowTonder = {
|
|
607
609
|
skyflow_id: this.radioChecked
|
|
@@ -640,6 +642,7 @@ export class InlineCheckout extends BaseInlineCheckout implements IInlineCheckou
|
|
|
640
642
|
showError("Ha ocurrido un error", this.collectorIds.msgError, this.collectorIds.tonderPayButton)
|
|
641
643
|
throw error;
|
|
642
644
|
} finally {
|
|
645
|
+
this.#updatePayButton({cardId: this.radioChecked, disabled: false});
|
|
643
646
|
}
|
|
644
647
|
};
|
|
645
648
|
|
package/src/helpers/skyflow.ts
CHANGED
|
@@ -356,7 +356,7 @@ export async function initUpdateSkyflow(
|
|
|
356
356
|
table: "cards",
|
|
357
357
|
column: "cvv",
|
|
358
358
|
...collectStylesOptions,
|
|
359
|
-
label:
|
|
359
|
+
label: "",
|
|
360
360
|
placeholder: collectStylesOptions.placeholders?.cvvPlaceholder,
|
|
361
361
|
type: Skyflow.ElementType.CVV,
|
|
362
362
|
validations: [regexMatchRule],
|
|
@@ -384,6 +384,7 @@ export async function initUpdateSkyflow(
|
|
|
384
384
|
|
|
385
385
|
if (!state.isValid) {
|
|
386
386
|
let errorLabel = document.createElement("div");
|
|
387
|
+
errorLabel.classList.add("error-custom-inputs-tonder-cards");
|
|
387
388
|
errorLabel.classList.add("error-custom-inputs-tonder");
|
|
388
389
|
errorLabel.id = "errorCvvIdTonder" + skyflowId;
|
|
389
390
|
errorLabel.textContent = state.isEmpty
|
package/src/helpers/template.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { getCardType, getPaymentMethodDetails
|
|
1
|
+
import {getCardFormLabels, getCardType, getPaymentMethodDetails} from './utils';
|
|
2
2
|
import {ITonderPaymentMethod} from "@tonder.io/ionic-lite-sdk/dist/types/paymentMethod";
|
|
3
3
|
import {CustomizationOptions} from "@tonder.io/ionic-lite-sdk/dist/types/commons";
|
|
4
|
+
import {defaultStyles} from "./styles";
|
|
4
5
|
|
|
5
6
|
export type CollectorIds = {
|
|
6
7
|
holderName: string,
|
|
@@ -26,13 +27,20 @@ export type Card = {
|
|
|
26
27
|
skyflow_id: string
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
export const cardTemplate = (
|
|
30
|
+
export const cardTemplate = (data: {
|
|
31
|
+
renderPaymentButton?: boolean;
|
|
32
|
+
customization?: CustomizationOptions;
|
|
33
|
+
collectorIds: CollectorIds;
|
|
34
|
+
isEnrollmentCard?: boolean;
|
|
35
|
+
customStyles?: any;
|
|
36
|
+
} = {isEnrollmentCard: false, collectorIds: {} as CollectorIds}) => {
|
|
37
|
+
return `
|
|
30
38
|
<div class="container-tonder">
|
|
31
|
-
${ data.customization?.saveCards?.showSaved ?
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
${ data.customization?.saveCards?.showSaved ?
|
|
40
|
+
`<div id="${data.collectorIds!.cardsListContainer}" class="cards-list-container"></div>`
|
|
41
|
+
:``
|
|
34
42
|
}
|
|
35
|
-
${!isEnrollmentCard ? `
|
|
43
|
+
${!data.isEnrollmentCard ? `
|
|
36
44
|
<div class="pay-new-card">
|
|
37
45
|
<input checked id="new" class="card_selected" name="card_selected" type="radio"/>
|
|
38
46
|
<label class="card-item-label-new" for="new">
|
|
@@ -42,14 +50,14 @@ export const cardTemplate = (external: boolean, collectorIds: CollectorIds, isEn
|
|
|
42
50
|
</div>
|
|
43
51
|
`:``}
|
|
44
52
|
<div class="container-form">
|
|
45
|
-
<div id="${collectorIds.holderName}" class="empty-div"></div>
|
|
46
|
-
<div id="${collectorIds.cardNumber}" class="empty-div"></div>
|
|
53
|
+
<div id="${data.collectorIds.holderName}" class="empty-div empty-div-card"></div>
|
|
54
|
+
<div id="${data.collectorIds.cardNumber}" class="empty-div empty-div-card"></div>
|
|
47
55
|
<div class="collect-row">
|
|
48
|
-
<div id="${collectorIds.expirationMonth}" class="empty-div"></div>
|
|
49
|
-
<div id="${collectorIds.expirationYear}" class="expiration-year"></div>
|
|
50
|
-
<div id="${collectorIds.cvv}" class="empty-div"></div>
|
|
56
|
+
<div id="${data.collectorIds.expirationMonth}" class="empty-div empty-div-card"></div>
|
|
57
|
+
<div id="${data.collectorIds.expirationYear}" class="expiration-year"></div>
|
|
58
|
+
<div id="${data.collectorIds.cvv}" class="empty-div empty-div-card"></div>
|
|
51
59
|
</div>
|
|
52
|
-
${!isEnrollmentCard && !!data.customization?.saveCards?.showSaveCardOption ? `
|
|
60
|
+
${!data.isEnrollmentCard && !!data.customization?.saveCards?.showSaveCardOption ? `
|
|
53
61
|
<div class="checkbox">
|
|
54
62
|
<input id="save-checkout-card" type="checkbox">
|
|
55
63
|
<label for="save-checkout-card">
|
|
@@ -57,18 +65,18 @@ export const cardTemplate = (external: boolean, collectorIds: CollectorIds, isEn
|
|
|
57
65
|
</label>
|
|
58
66
|
</div>
|
|
59
67
|
`:``}
|
|
60
|
-
<div id="${collectorIds.msgError}"></div>
|
|
61
|
-
<div id="${collectorIds.msgNotification}"></div>
|
|
68
|
+
<div id="${data.collectorIds.msgError}"></div>
|
|
69
|
+
<div id="${data.collectorIds.msgNotification}"></div>
|
|
62
70
|
</div>
|
|
63
|
-
${!isEnrollmentCard ? `
|
|
71
|
+
${!data.isEnrollmentCard ? `
|
|
64
72
|
<div id="apmsListContainer" class="apms-list-container"></div>
|
|
65
73
|
`:``}
|
|
66
74
|
<div class="container-pay-button">
|
|
67
|
-
<button id="${collectorIds.tonderPayButton}" class="pay-button hidden">Pagar</button>
|
|
68
|
-
${isEnrollmentCard ? `
|
|
69
|
-
<button id="${collectorIds.tonderSaveCardButton ? collectorIds.tonderSaveCardButton:''}" class="save-card-button">Guardar</button>
|
|
75
|
+
<button id="${data.collectorIds.tonderPayButton}" class="pay-button hidden">Pagar</button>
|
|
76
|
+
${data.isEnrollmentCard ? `
|
|
77
|
+
<button id="${data.collectorIds.tonderSaveCardButton ? data.collectorIds.tonderSaveCardButton:''}" class="save-card-button">Guardar</button>
|
|
70
78
|
`:``} </div>
|
|
71
|
-
<iframe class="tds-iframe" allowtransparency="true" id="${collectorIds.tdsIframe}"></iframe>
|
|
79
|
+
<iframe class="tds-iframe" allowtransparency="true" id="${data.collectorIds.tdsIframe}"></iframe>
|
|
72
80
|
</div>
|
|
73
81
|
|
|
74
82
|
<style>
|
|
@@ -95,10 +103,10 @@ export const cardTemplate = (external: boolean, collectorIds: CollectorIds, isEn
|
|
|
95
103
|
}
|
|
96
104
|
|
|
97
105
|
.container-form {
|
|
98
|
-
padding: 25px
|
|
106
|
+
padding: 25px 30px 0px 30px;
|
|
99
107
|
}
|
|
100
108
|
|
|
101
|
-
#${collectorIds.tdsIframe} {
|
|
109
|
+
#${data.collectorIds.tdsIframe} {
|
|
102
110
|
display: none;
|
|
103
111
|
position: fixed;
|
|
104
112
|
width: 100vw;
|
|
@@ -135,6 +143,7 @@ export const cardTemplate = (external: boolean, collectorIds: CollectorIds, isEn
|
|
|
135
143
|
display: flex !important;
|
|
136
144
|
justify-content: space-between !important;
|
|
137
145
|
width: 100% !important;
|
|
146
|
+
gap: 16px;
|
|
138
147
|
}
|
|
139
148
|
|
|
140
149
|
.collect-row > :first-child {
|
|
@@ -148,13 +157,12 @@ export const cardTemplate = (external: boolean, collectorIds: CollectorIds, isEn
|
|
|
148
157
|
|
|
149
158
|
.empty-div {
|
|
150
159
|
position: relative;
|
|
151
|
-
height: 80px !important;
|
|
152
160
|
margin-top: 2px;
|
|
153
161
|
margin-bottom: 4px;
|
|
154
|
-
margin-left: 10px !important;
|
|
155
|
-
margin-right: 10px !important;
|
|
156
162
|
}
|
|
157
|
-
|
|
163
|
+
.empty-div-card {
|
|
164
|
+
height: 80px !important;
|
|
165
|
+
}
|
|
158
166
|
.error-container{
|
|
159
167
|
color: red !important;
|
|
160
168
|
background-color: #FFDBDB !important;
|
|
@@ -219,6 +227,44 @@ export const cardTemplate = (external: boolean, collectorIds: CollectorIds, isEn
|
|
|
219
227
|
background-color: #B9B9B9;
|
|
220
228
|
}
|
|
221
229
|
|
|
230
|
+
.tndr-simulate-input-cvv-container{
|
|
231
|
+
height: 100%;
|
|
232
|
+
width: 100%;
|
|
233
|
+
position: absolute;
|
|
234
|
+
pointer-events: none;
|
|
235
|
+
|
|
236
|
+
}
|
|
237
|
+
.tndr-simulate-input-cvv {
|
|
238
|
+
width: 100%;
|
|
239
|
+
pointer-events: none;
|
|
240
|
+
position: relative;
|
|
241
|
+
}
|
|
242
|
+
.tndr-simulate-input-cvv-container label{
|
|
243
|
+
line-height: ${data?.customStyles?.labelStyles?.base?.lineHeight ? data?.customStyles?.labelStyles?.base?.lineHeight : ""};
|
|
244
|
+
color: transparent;
|
|
245
|
+
font-size: ${data?.customStyles?.labelStyles?.base?.fontSize ? data?.customStyles?.labelStyles?.base?.fontSize : defaultStyles.labelStyles.base.fontSize};
|
|
246
|
+
font-family: ${data?.customStyles?.labelStyles?.base?.fontFamily ? data?.customStyles?.labelStyles?.base?.fontFamily : defaultStyles.labelStyles.base.fontFamily};
|
|
247
|
+
font-weight: ${data?.customStyles?.labelStyles?.base?.fontWeight ? data?.customStyles?.labelStyles?.base?.fontWeight : defaultStyles.labelStyles.base.fontWeight};
|
|
248
|
+
text-align: ${data?.customStyles?.labelStyles?.base?.textAlign ? data?.customStyles?.labelStyles?.base?.textAlign : defaultStyles.labelStyles.base.textAlign};
|
|
249
|
+
pointer-events: none;
|
|
250
|
+
}
|
|
251
|
+
.tndr-simulate-input-cvv input {
|
|
252
|
+
width: 100%;
|
|
253
|
+
margin: 0;
|
|
254
|
+
padding: 0;
|
|
255
|
+
border: 0;
|
|
256
|
+
min-height: 44px;
|
|
257
|
+
background-color: transparent;
|
|
258
|
+
pointer-events: none;
|
|
259
|
+
}
|
|
260
|
+
.tndr-form-label{
|
|
261
|
+
line-height: ${data?.customStyles?.labelStyles?.base?.lineHeight ? data?.customStyles?.labelStyles?.base?.lineHeight : "22px"};
|
|
262
|
+
color: ${data?.customStyles?.labelStyles?.base?.color ? data?.customStyles?.labelStyles?.base?.color : defaultStyles.labelStyles.base.color};
|
|
263
|
+
font-size: ${data?.customStyles?.labelStyles?.base?.fontSize ? data?.customStyles?.labelStyles?.base?.fontSize : defaultStyles.labelStyles.base.fontSize};
|
|
264
|
+
font-family: ${data?.customStyles?.labelStyles?.base?.fontFamily ? data?.customStyles?.labelStyles?.base?.fontFamily : defaultStyles.labelStyles.base.fontFamily};
|
|
265
|
+
font-weight: ${data?.customStyles?.labelStyles?.base?.fontWeight ? data?.customStyles?.labelStyles?.base?.fontWeight : defaultStyles.labelStyles.base.fontWeight};
|
|
266
|
+
text-align: ${data?.customStyles?.labelStyles?.base?.textAlign ? data?.customStyles?.labelStyles?.base?.textAlign : defaultStyles.labelStyles.base.textAlign};
|
|
267
|
+
}
|
|
222
268
|
.lds-dual-ring {
|
|
223
269
|
display: inline-block;
|
|
224
270
|
width: 14px;
|
|
@@ -405,10 +451,19 @@ export const cardTemplate = (external: boolean, collectorIds: CollectorIds, isEn
|
|
|
405
451
|
|
|
406
452
|
</style>
|
|
407
453
|
`
|
|
454
|
+
}
|
|
408
455
|
|
|
409
|
-
export const cardItemsTemplate = (
|
|
456
|
+
export const cardItemsTemplate = (data: {
|
|
457
|
+
cards: Card[];
|
|
458
|
+
collectorIds:CollectorIds;
|
|
459
|
+
renderPaymentButton: boolean;
|
|
460
|
+
acId: string;
|
|
461
|
+
customStyles: any;
|
|
462
|
+
}) => {
|
|
410
463
|
|
|
411
|
-
const cardItemsHTML = cards.reduce((total: string, card: Card) => {
|
|
464
|
+
const cardItemsHTML = data.cards.reduce((total: string, card: Card) => {
|
|
465
|
+
const { cvvLabel } = getCardFormLabels(data.customStyles).labels;
|
|
466
|
+
|
|
412
467
|
return `${total}
|
|
413
468
|
<div class="ac" id="card_container-${card.skyflow_id}">
|
|
414
469
|
<div class="card-item">
|
|
@@ -428,32 +483,41 @@ export const cardItemsTemplate = (external: boolean, cards: Card[], data: {colle
|
|
|
428
483
|
</div>
|
|
429
484
|
<div class="ac-panel">
|
|
430
485
|
<div class="ac-card-panel-container" id="acContainer${card.skyflow_id}">
|
|
486
|
+
|
|
431
487
|
<div class="cvvContainer" id="cvvContainer${card.skyflow_id}">
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
488
|
+
<label class="tndr-form-label label-cvv-cards">${cvvLabel}</label>
|
|
489
|
+
<div id="${data.collectorIds.cvv}${card.skyflow_id}" class="empty-div">
|
|
490
|
+
<div class="tndr-simulate-input-cvv-container">
|
|
491
|
+
<div class="tndr-simulate-input-cvv">
|
|
492
|
+
<svg class="cvvIcon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="24" viewBox="0 0 270 178">
|
|
493
|
+
<defs>
|
|
494
|
+
<linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
|
|
495
|
+
<stop offset="0" stop-color="#386bbf"/>
|
|
496
|
+
<stop offset="1" stop-color="#032ea3"/>
|
|
497
|
+
</linearGradient>
|
|
498
|
+
<linearGradient id="linear-gradient-2" x1="0.5" y1="0.115" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
|
|
499
|
+
<stop offset="0" stop-color="#1c1c1c"/>
|
|
500
|
+
<stop offset="1" stop-color="#151515"/>
|
|
501
|
+
</linearGradient>
|
|
502
|
+
</defs>
|
|
503
|
+
<g id="Grupo_3" data-name="Grupo 3" transform="translate(-69 -312)">
|
|
504
|
+
<g id="Grupo_2" data-name="Grupo 2">
|
|
505
|
+
<rect id="Rectángulo_58" data-name="Rectángulo 58" width="253" height="165" rx="25" transform="translate(69 312)" fill="url(#linear-gradient)"/>
|
|
506
|
+
<rect id="Rectángulo_61" data-name="Rectángulo 61" width="68" height="8" rx="4" transform="translate(86 437)" fill="#fff" opacity="0.877"/>
|
|
507
|
+
<rect id="Rectángulo_66" data-name="Rectángulo 66" width="253" height="24" transform="translate(69 347)" fill="url(#linear-gradient-2)"/>
|
|
508
|
+
<g id="Elipse_4" data-name="Elipse 4" transform="translate(221 374)" fill="#fff" stroke="#191919" stroke-width="1">
|
|
509
|
+
<ellipse cx="59" cy="58" rx="59" ry="58" stroke="none"/>
|
|
510
|
+
<ellipse cx="59" cy="58" rx="58.5" ry="57.5" fill="none"/>
|
|
511
|
+
</g>
|
|
512
|
+
</g>
|
|
513
|
+
<text id="_123" data-name="123" transform="translate(240 448)" font-size="45" font-family="Menlo-Regular, Menlo"><tspan x="0" y="0">123</tspan></text>
|
|
514
|
+
</g>
|
|
515
|
+
</svg>
|
|
516
|
+
<input tabindex="-1"/>
|
|
517
|
+
</div>
|
|
518
|
+
</div>
|
|
519
|
+
|
|
520
|
+
</div>
|
|
457
521
|
</div>
|
|
458
522
|
${ data?.renderPaymentButton ?
|
|
459
523
|
`<div class="container-card-pay-button">
|
|
@@ -482,22 +546,32 @@ export const cardItemsTemplate = (external: boolean, cards: Card[], data: {colle
|
|
|
482
546
|
.cvvContainer{
|
|
483
547
|
max-width: 60%;
|
|
484
548
|
position: relative;
|
|
485
|
-
padding:
|
|
549
|
+
padding: 0 0 0 29px;
|
|
486
550
|
}
|
|
487
551
|
.cvvIcon {
|
|
488
552
|
position: absolute;
|
|
489
|
-
right:
|
|
490
|
-
top:
|
|
553
|
+
right: 8px;
|
|
554
|
+
top: 12px;
|
|
491
555
|
opacity: 0;
|
|
492
556
|
transform: translateY(10px);
|
|
493
557
|
transition: opacity 0.3s ease, transform 0.3s ease;
|
|
494
558
|
}
|
|
559
|
+
.label-cvv-cards {
|
|
560
|
+
opacity: 0;
|
|
561
|
+
}
|
|
562
|
+
.cvvContainer.show .label-cvv-cards{
|
|
563
|
+
opacity: 1;
|
|
564
|
+
transition-delay: 0.3s;
|
|
565
|
+
}
|
|
495
566
|
.cvvContainer.show .cvvIcon,
|
|
496
567
|
.ac-card-panel-container.show .card-pay-button {
|
|
497
568
|
opacity: 1;
|
|
498
569
|
transform: translateY(0);
|
|
499
570
|
transition-delay: 0.3s;
|
|
500
571
|
}
|
|
572
|
+
.error-custom-inputs-tonder-cards{
|
|
573
|
+
bottom: 2px !important;
|
|
574
|
+
}
|
|
501
575
|
.container-card-pay-button{
|
|
502
576
|
margin: 20px 0px;
|
|
503
577
|
}
|
|
@@ -711,7 +785,7 @@ export const cardItemsTemplate = (external: boolean, cards: Card[], data: {colle
|
|
|
711
785
|
</style>
|
|
712
786
|
`
|
|
713
787
|
const cardItem = `
|
|
714
|
-
<div class="accordion-container">
|
|
788
|
+
<div class="accordion-container${data.acId}">
|
|
715
789
|
${cardItemsHTML}
|
|
716
790
|
</div>
|
|
717
791
|
${cardItemStyle}
|
package/src/helpers/utils.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PAYMENT_METHOD } from "./constants";
|
|
2
2
|
import { Card } from "./template";
|
|
3
|
-
import
|
|
3
|
+
import get from "lodash.get";
|
|
4
|
+
import {defaultStyles} from "./styles";
|
|
4
5
|
|
|
5
6
|
export async function addScripts() {
|
|
6
7
|
try {
|
|
@@ -400,4 +401,58 @@ export const getPaymentMethodDetails = (scheme_data: string): {icon: string; lab
|
|
|
400
401
|
|
|
401
402
|
const clearSpace = (text: string) => {
|
|
402
403
|
return text.trim().replace(/\s+/g, '');
|
|
403
|
-
}
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export function generateRandomString(length: number) {
|
|
407
|
+
const characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // Letras en minúscula y mayúscula
|
|
408
|
+
let result = "";
|
|
409
|
+
|
|
410
|
+
for (let i = 0; i < length; i++) {
|
|
411
|
+
const randomIndex = Math.floor(Math.random() * characters.length);
|
|
412
|
+
result += characters[randomIndex];
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
return result;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
export function getCardFormLabels(customStyles: any) {
|
|
419
|
+
return {
|
|
420
|
+
labels: {
|
|
421
|
+
nameLabel: get(customStyles, "labels.nameLabel", defaultStyles.labels.nameLabel),
|
|
422
|
+
cardLabel: get(customStyles, "labels.cardLabel", defaultStyles.labels.cardLabel),
|
|
423
|
+
cvvLabel: get(customStyles, "labels.cvvLabel", defaultStyles.labels.cvvLabel),
|
|
424
|
+
expiryDateLabel: get(
|
|
425
|
+
customStyles,
|
|
426
|
+
"labels.expiryDateLabel",
|
|
427
|
+
defaultStyles.labels.expiryDateLabel,
|
|
428
|
+
),
|
|
429
|
+
},
|
|
430
|
+
placeholders: {
|
|
431
|
+
namePlaceholder: get(
|
|
432
|
+
customStyles,
|
|
433
|
+
"placeholders.namePlaceholder",
|
|
434
|
+
defaultStyles.placeholders.namePlaceholder,
|
|
435
|
+
),
|
|
436
|
+
cardPlaceholder: get(
|
|
437
|
+
customStyles,
|
|
438
|
+
"placeholders.cardPlaceholder",
|
|
439
|
+
defaultStyles.placeholders.cardPlaceholder,
|
|
440
|
+
),
|
|
441
|
+
cvvPlaceholder: get(
|
|
442
|
+
customStyles,
|
|
443
|
+
"placeholders.cvvPlaceholder",
|
|
444
|
+
defaultStyles.placeholders.cvvPlaceholder,
|
|
445
|
+
),
|
|
446
|
+
expiryMonthPlaceholder: get(
|
|
447
|
+
customStyles,
|
|
448
|
+
"placeholders.expiryMonthPlaceholder",
|
|
449
|
+
defaultStyles.placeholders.expiryMonthPlaceholder,
|
|
450
|
+
),
|
|
451
|
+
expiryYearPlaceholder: get(
|
|
452
|
+
customStyles,
|
|
453
|
+
"placeholders.expiryYearPlaceholder",
|
|
454
|
+
defaultStyles.placeholders.expiryYearPlaceholder,
|
|
455
|
+
),
|
|
456
|
+
},
|
|
457
|
+
};
|
|
458
|
+
}
|