UNPKG

@visa/nova-react

Version:

Visa Product Design System Nova React library

2 lines (1 loc) 1.62 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react"),a=require("./utils.js");const e=e=>{const{allowedBrands:t,defaultCardNumberInputValue:d,filteredForBrands:o,trimToMaxLength:i,validators:l}={defaultCardNumberInputValue:"",trimToMaxLength:!0,validators:a.cardValidators,...e},[n,s]=r.useState(d),u=o?.length?o.map((r=>l[r])):Object.values(l),m=a.removeNonDigits(n),c=a.findCardValidatorFromBinRegex(m,u),b=i?a.removeCharactersAfterMaxLength(m,c?.maxLength):m,C=a.formatCardNumberFromValidator(b,c),g=!!c,h=t?.length?t.includes(c?.brand||""):!!c?.brand,x=a.moduloCheck(b),f=a.cardNumberLengthCheck(b,c?.lengths),p=g&&h&&x&&f;return{binValid:g,brand:c?.brand,brandValid:h,cardNumberInputValue:n,cardNumberValidator:c,cleanCardNumber:b,formattedCardNumber:C,lastDigitValid:x,lengthValid:f,onCardNumberChange:r=>s(r),valid:p}};e.displayName="useCardNumberValidation",e.defaultProps={allowedBrands:void 0,defaultCardNumber:"",filteredForBrands:void 0,trimToMaxLength:!0,validators:{...a.cardValidators}},exports.cardNumberLengthCheck=a.cardNumberLengthCheck,exports.cardValidators=a.cardValidators,exports.cardValidatorsArray=a.cardValidatorsArray,exports.defaultSpacingPattern=a.defaultSpacingPattern,exports.findCardValidatorFromBinRegex=a.findCardValidatorFromBinRegex,exports.formatCardNumber=a.formatCardNumber,exports.formatCardNumberFromValidator=a.formatCardNumberFromValidator,exports.moduloCheck=a.moduloCheck,exports.removeCharactersAfterMaxLength=a.removeCharactersAfterMaxLength,exports.removeNonDigits=a.removeNonDigits,exports.default=e,exports.useCardNumberValidation=e;