UNPKG

@visa/nova-react

Version:

Visa Product Design System Nova React library. Compatible with React ^19.

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