@visa/nova-react
Version:
Visa Product Design System Nova React library
18 lines (17 loc) • 2.24 kB
JavaScript
/**
* Copyright (c) 2025 Visa, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/
;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;