@malga-checkout-full/core
Version:
Core components for Malga Checkout Full
1 lines • 3.09 kB
JavaScript
import{s as e}from"./p-7d931f4e.js";import{c as r,d as a,a as s}from"./p-46d3bcba.js";import{L as t}from"./p-a0ceaf8b.js";import{Z as n}from"./p-f8402709.js";const d=async()=>{var r,a,t,n;const d=null!==(n=null===(t=null===(a=null===(r=e.paymentMethods)||void 0===r?void 0:r.credit)||void 0===a?void 0:a.installments)||void 0===t?void 0:t.show)&&void 0!==n&&n,c=await o(s.form,{hasInstallments:d});return c.isValid||(s.validations.fields=Object.assign(Object.assign({},s.validations.fields),c.errors),i(s.form)&&(s.validations.allFieldsIsBlank=!0)),c.isValid},i=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},o=async(e,s,d)=>{try{const i=(e=>r().shape({cardNumber:a().required(n("paymentMethods.card.newCard.fields.cardNumber.errorMessageRequired",e)).test("isMin",n("paymentMethods.card.newCard.fields.cardNumber.errorMessageMin",e),(e=>!e||e.length>=14)).test("isMax",n("paymentMethods.card.newCard.fields.cardNumber.errorMessageInvalidFormat",e),(e=>!e||e.length<=22)).test("isNumber",n("paymentMethods.card.newCard.fields.cardNumber.errorMessageInvalidFormat",e),(e=>!e.length||e.length<14||t.valid.number(e).isValid)),expirationDate:a().required(n("paymentMethods.card.newCard.fields.expirationDate.errorMessageRequired",e)).test("invalidMonth",n("paymentMethods.card.newCard.fields.expirationDate.errorMessageMonthInvalid",e),(e=>{if(!e)return!0;const r=e.slice(0,2),a=parseInt(r,10);return a>=1&&a<=12})).test("isMinDate",n("paymentMethods.card.newCard.fields.expirationDate.errorMessageMin",e),(e=>{const r=e.replace(/\D/g,"").trim().length;return!r||4===r})).test("isValidDate",n("paymentMethods.card.newCard.fields.expirationDate.errorMessageInvalidFormat",e),(e=>{const r=e.replace(/\D/g,"").trim(),a=parseInt(e.slice(0,2),10);if(!r.length||r.length<4||a<1||a>12)return!0;const[s,t]=e.split("/"),n=parseInt(s)-1,d=parseInt(`20${t}`),i=new Date,o=Array.from({length:12}).map(((e,r)=>r)),c=n>=i.getMonth()&&o.includes(n),l=d===i.getFullYear()?c:o.includes(n),m=d>=i.getFullYear();return l&&m})),cvv:a().required(n("paymentMethods.card.newCard.fields.cvv.errorMessageRequired",e)).test("isMin",n("paymentMethods.card.newCard.fields.cvv.errorMessageMin",e),(e=>!e||e.length>=3)).test("isMax",n("paymentMethods.card.newCard.fields.cvv.errorMessageInvalidFormat",e),(e=>!e||e.length<=4)),name:a().required(n("paymentMethods.card.newCard.fields.name.errorMessageRequired",e)).test("isValidName",n("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().when("$hasInstallments",{is:e=>e,then:a().required(n("paymentMethods.card.newCard.fields.installments.errorMessageRequired",e)).min(1)})}))(d);return await i.validate(e,{abortEarly:!1,context:s}),{isValid:!0}}catch(e){return{isValid:!1,errors:(i=e.inner,i.reduce(((e,r)=>Object.assign(Object.assign({},e),{[r.path]:r.message})),{}))}}var i};export{d as h,o as v}