UNPKG

ngx2-credit-cards

Version:

A Credit Card Directives and Reactive Form Validators package for Angular X (6+)

72 lines (71 loc) 6.32 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as Payment from 'payment'; export class CreditCardValidator { /** * Validates a cc number * @param {?} control * @return {?} */ static validateCardNumber(control) { if (control) { /** @type {?} */ let isValid = Payment.fns.validateCardNumber(control.value); if (!isValid) { return { "error": "CREDIT_CARD_INVALID" }; } } return null; } /** * Validates the expiry date. * Breaks exp by "/" string and assumes that first array entry is month and second year * Also removes any spaces * @param {?} control * @return {?} */ static validateCardExpiry(control) { if (control) { /** @type {?} */ let controlValue = control.value.split("/"); /** @type {?} */ let isValid = false; if (controlValue.length > 1) { /** @type {?} */ let month = controlValue[0].replace(/^\s+|\s+$/g, ''); /** @type {?} */ let year = controlValue[1].replace(/^\s+|\s+$/g, ''); isValid = Payment.fns.validateCardExpiry(month, year); } if (!isValid) { return { "error": "CREDIT_EXPIRY_INVALID" }; } } return null; } /** * Validates cards CVC * Also removes any spaces * @param {?} control * @return {?} */ static validateCardCvc(control) { if (control) { /** @type {?} */ let isValid = Payment.fns.validateCardCVC(control.value); if (!isValid) { return { "error": "CREDIT_CARD_INVALID" }; } } return null; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlZGl0Q2FyZC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gyLWNyZWRpdC1jYXJkcy8iLCJzb3VyY2VzIjpbInZhbGlkYXRvcnMvQ3JlZGl0Q2FyZC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBRW5DLE1BQU07Ozs7OztJQU1GLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFvQjtRQUUxQyxJQUFJLE9BQU8sRUFBRTs7WUFFVCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1RCxJQUFJLENBQUMsT0FBTyxFQUNaO2dCQUNJLE9BQU87b0JBQ0gsT0FBTyxFQUFFLHFCQUFxQjtpQkFDakMsQ0FBQTthQUNKO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztLQUNmOzs7Ozs7OztJQVFELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFvQjtRQUUxQyxJQUFJLE9BQU8sRUFBRTs7WUFFVCxJQUFJLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzs7WUFDNUMsSUFBSSxPQUFPLEdBQVEsS0FBSyxDQUFDO1lBRXpCLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQzNCOztnQkFDSSxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBQyxFQUFFLENBQUMsQ0FBQzs7Z0JBQ3JELElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUVwRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDekQ7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUNaO2dCQUNJLE9BQU87b0JBQ0gsT0FBTyxFQUFFLHVCQUF1QjtpQkFDbkMsQ0FBQTthQUNKO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztLQUNmOzs7Ozs7O0lBT0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFvQjtRQUV2QyxJQUFJLE9BQU8sRUFBRTs7WUFFVCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLE9BQU8sRUFDWjtnQkFDSSxPQUFPO29CQUNILE9BQU8sRUFBRSxxQkFBcUI7aUJBQ2pDLENBQUE7YUFDSjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7S0FDZjtDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBQYXltZW50IGZyb20gJ3BheW1lbnQnO1xuXG5leHBvcnQgY2xhc3MgQ3JlZGl0Q2FyZFZhbGlkYXRvciB7XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZXMgYSBjYyBudW1iZXJcbiAgICAgKiBAcGFyYW0gY29udHJvbFxuICAgICAqL1xuICAgIHN0YXRpYyB2YWxpZGF0ZUNhcmROdW1iZXIoY29udHJvbDogRm9ybUNvbnRyb2wpIHtcblxuICAgICAgICBpZiAoY29udHJvbCkge1xuXG4gICAgICAgICAgICBsZXQgaXNWYWxpZCA9IFBheW1lbnQuZm5zLnZhbGlkYXRlQ2FyZE51bWJlcihjb250cm9sLnZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZXJyb3JcIjogXCJDUkVESVRfQ0FSRF9JTlZBTElEXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gICAgIFxuXG4gICAgICAgIHJldHVybiBudWxsOyAgIFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyB0aGUgZXhwaXJ5IGRhdGUuXG4gICAgICogQnJlYWtzIGV4cCBieSBcIi9cIiBzdHJpbmcgYW5kIGFzc3VtZXMgdGhhdCBmaXJzdCBhcnJheSBlbnRyeSBpcyBtb250aCBhbmQgc2Vjb25kIHllYXJcbiAgICAgKiBBbHNvIHJlbW92ZXMgYW55IHNwYWNlcyBcbiAgICAgKiBAcGFyYW0gY29udHJvbFxuICAgICAqL1xuICAgIHN0YXRpYyB2YWxpZGF0ZUNhcmRFeHBpcnkoY29udHJvbDogRm9ybUNvbnRyb2wpIHtcblxuICAgICAgICBpZiAoY29udHJvbCkge1xuXG4gICAgICAgICAgICBsZXQgY29udHJvbFZhbHVlID0gY29udHJvbC52YWx1ZS5zcGxpdChcIi9cIik7XG4gICAgICAgICAgICBsZXQgaXNWYWxpZCAgICAgID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChjb250cm9sVmFsdWUubGVuZ3RoID4gMSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgbW9udGggPSBjb250cm9sVmFsdWVbMF0ucmVwbGFjZSgvXlxccyt8XFxzKyQvZywnJyk7XG4gICAgICAgICAgICAgICAgbGV0IHllYXIgPSBjb250cm9sVmFsdWVbMV0ucmVwbGFjZSgvXlxccyt8XFxzKyQvZywnJyk7XG5cbiAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUGF5bWVudC5mbnMudmFsaWRhdGVDYXJkRXhwaXJ5KG1vbnRoLCB5ZWFyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZXJyb3JcIjogXCJDUkVESVRfRVhQSVJZX0lOVkFMSURcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgICAgXG5cbiAgICAgICAgcmV0dXJuIG51bGw7IFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBjYXJkcyBDVkNcbiAgICAgKiBBbHNvIHJlbW92ZXMgYW55IHNwYWNlcyBcbiAgICAgKiBAcGFyYW0gY29udHJvbFxuICAgICAqL1xuICAgIHN0YXRpYyB2YWxpZGF0ZUNhcmRDdmMoY29udHJvbDogRm9ybUNvbnRyb2wpIHtcblxuICAgICAgICBpZiAoY29udHJvbCkge1xuXG4gICAgICAgICAgICBsZXQgaXNWYWxpZCA9IFBheW1lbnQuZm5zLnZhbGlkYXRlQ2FyZENWQyhjb250cm9sLnZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZXJyb3JcIjogXCJDUkVESVRfQ0FSRF9JTlZBTElEXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gICAgIFxuXG4gICAgICAgIHJldHVybiBudWxsOyAgXG4gICAgfVxuXG59XG4iXX0=