@malga-checkout-full/core
Version:
Core components for Malga Checkout Full
1 lines • 2.57 kB
JavaScript
import{s as e}from"./p-9a896a7e.js";import{c as r,d as a,e as s,a as t}from"./p-c11e2870.js";import{Y as d}from"./p-e81ce294.js";const n=async()=>{var r,a,s,d;const n=null!==(d=null===(s=null===(a=null===(r=e.paymentMethods)||void 0===r?void 0:r.credit)||void 0===a?void 0:a.installments)||void 0===s?void 0:s.show)&&void 0!==d&&d,c=await i(t.form,{hasInstallments:n});return c.isValid||(t.validations.fields=Object.assign(Object.assign({},t.validations.fields),c.errors),o(t.form)&&(t.validations.allFieldsIsBlank=!0)),c.isValid},o=e=>{const r=Object.entries(e),a=r.map((([e,r])=>{const a=["expirationDate","cvv"].includes(e),s=e.replace(/\D/g,"").trim();return a?s:r})).filter((e=>!e||"none"===e));return r.length===a.length},i=async(e,t,n)=>{try{const o=(e=>r().shape({cardNumber:a().required(d("paymentMethods.card.newCard.fields.cardNumber.errorMessageRequired",e)).min(14,d("paymentMethods.card.newCard.fields.cardNumber.errorMessageInvalidFormat",e)).max(22,d("paymentMethods.card.newCard.fields.cardNumber.errorMessageInvalidFormat",e)).test("isNumber",d("paymentMethods.card.newCard.fields.cardNumber.errorMessageInvalidFormat",e),(e=>!e.length||s.number(e).isValid)),expirationDate:a().required(d("paymentMethods.card.newCard.fields.expirationDate.errorMessageRequired",e)).test("isValidDate",d("paymentMethods.card.newCard.fields.expirationDate.errorMessageInvalidFormat",e),(e=>{if(!e.replace(/\D/g,"").trim())return!0;const[r,a]=e.split("/"),s=parseInt(r)-1,t=parseInt(`20${a}`),d=new Date,n=Array.from({length:12}).map(((e,r)=>r)),o=s>=d.getMonth()&&n.includes(s),i=t===d.getFullYear()?o:n.includes(s),c=t>=d.getFullYear();return i&&c})),cvv:a().required(d("paymentMethods.card.newCard.fields.cvv.errorMessageRequired",e)).min(3,d("paymentMethods.card.newCard.fields.cvv.errorMessageInvalidFormat",e)).max(4,d("paymentMethods.card.newCard.fields.cvv.errorMessageInvalidFormat",e)),name:a().required(d("paymentMethods.card.newCard.fields.name.errorMessageRequired",e)).test("isValidName",d("paymentMethods.card.newCard.fields.name.errorMessageInvalidFormat",e),(e=>{const r=e.replace(/[^A-Za-z]+/g,""),a=e.replace(/\s/g,"");return r.length===a.length})),installments:a().test("isValidInstallments",d("paymentMethods.card.newCard.fields.installments.errorMessageRequired",e),((e,r)=>!r.options.context.hasInstallments||!!e&&"none"!==e))}))(n);return await o.validate(e,{abortEarly:!1,context:t}),{isValid:!0}}catch(e){return{isValid:!1,errors:(o=e.inner,o.reduce(((e,r)=>Object.assign(Object.assign({},e),{[r.path]:r.message})),{}))}}var o};export{n as h,i as v}