ngx2-credit-cards
Version:
A Credit Card Directives and Reactive Form Validators package for Angular X (6+)
109 lines (108 loc) • 7.41 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import * as Payment from 'payment';
var CreditCardValidator = /** @class */ (function () {
function CreditCardValidator() {
}
/**
* Validates a cc number
* @param control
*/
/**
* Validates a cc number
* @param {?} control
* @return {?}
*/
CreditCardValidator.validateCardNumber = /**
* Validates a cc number
* @param {?} control
* @return {?}
*/
function (control) {
if (control) {
/** @type {?} */
var 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
*/
/**
* 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 {?}
*/
CreditCardValidator.validateCardExpiry = /**
* 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 {?}
*/
function (control) {
if (control) {
/** @type {?} */
var controlValue = control.value.split("/");
/** @type {?} */
var isValid = false;
if (controlValue.length > 1) {
/** @type {?} */
var month = controlValue[0].replace(/^\s+|\s+$/g, '');
/** @type {?} */
var 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
*/
/**
* Validates cards CVC
* Also removes any spaces
* @param {?} control
* @return {?}
*/
CreditCardValidator.validateCardCvc = /**
* Validates cards CVC
* Also removes any spaces
* @param {?} control
* @return {?}
*/
function (control) {
if (control) {
/** @type {?} */
var isValid = Payment.fns.validateCardCVC(control.value);
if (!isValid) {
return {
"error": "CREDIT_CARD_INVALID"
};
}
}
return null;
};
return CreditCardValidator;
}());
export { CreditCardValidator };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlZGl0Q2FyZC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gyLWNyZWRpdC1jYXJkcy8iLCJzb3VyY2VzIjpbInZhbGlkYXRvcnMvQ3JlZGl0Q2FyZC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBRW5DLElBQUE7OztJQUVJOzs7T0FHRzs7Ozs7O0lBQ0ksc0NBQWtCOzs7OztJQUF6QixVQUEwQixPQUFvQjtRQUUxQyxJQUFJLE9BQU8sRUFBRTs7WUFFVCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1RCxJQUFJLENBQUMsT0FBTyxFQUNaO2dCQUNJLE9BQU87b0JBQ0gsT0FBTyxFQUFFLHFCQUFxQjtpQkFDakMsQ0FBQTthQUNKO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7O0lBQ0ksc0NBQWtCOzs7Ozs7O0lBQXpCLFVBQTBCLE9BQW9CO1FBRTFDLElBQUksT0FBTyxFQUFFOztZQUVULElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDOztZQUM1QyxJQUFJLE9BQU8sR0FBUSxLQUFLLENBQUM7WUFFekIsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDM0I7O2dCQUNJLElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFDLEVBQUUsQ0FBQyxDQUFDOztnQkFDckQsSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRXBELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN6RDtZQUVELElBQUksQ0FBQyxPQUFPLEVBQ1o7Z0JBQ0ksT0FBTztvQkFDSCxPQUFPLEVBQUUsdUJBQXVCO2lCQUNuQyxDQUFBO2FBQ0o7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRDs7OztPQUlHOzs7Ozs7O0lBQ0ksbUNBQWU7Ozs7OztJQUF0QixVQUF1QixPQUFvQjtRQUV2QyxJQUFJLE9BQU8sRUFBRTs7WUFFVCxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLE9BQU8sRUFDWjtnQkFDSSxPQUFPO29CQUNILE9BQU8sRUFBRSxxQkFBcUI7aUJBQ2pDLENBQUE7YUFDSjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7S0FDZjs4QkE5RUw7SUFnRkMsQ0FBQTtBQTdFRCwrQkE2RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIFBheW1lbnQgZnJvbSAncGF5bWVudCc7XG5cbmV4cG9ydCBjbGFzcyBDcmVkaXRDYXJkVmFsaWRhdG9yIHtcblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlcyBhIGNjIG51bWJlclxuICAgICAqIEBwYXJhbSBjb250cm9sXG4gICAgICovXG4gICAgc3RhdGljIHZhbGlkYXRlQ2FyZE51bWJlcihjb250cm9sOiBGb3JtQ29udHJvbCkge1xuXG4gICAgICAgIGlmIChjb250cm9sKSB7XG5cbiAgICAgICAgICAgIGxldCBpc1ZhbGlkID0gUGF5bWVudC5mbnMudmFsaWRhdGVDYXJkTnVtYmVyKGNvbnRyb2wudmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiOiBcIkNSRURJVF9DQVJEX0lOVkFMSURcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgICAgXG5cbiAgICAgICAgcmV0dXJuIG51bGw7ICAgXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBleHBpcnkgZGF0ZS5cbiAgICAgKiBCcmVha3MgZXhwIGJ5IFwiL1wiIHN0cmluZyBhbmQgYXNzdW1lcyB0aGF0IGZpcnN0IGFycmF5IGVudHJ5IGlzIG1vbnRoIGFuZCBzZWNvbmQgeWVhclxuICAgICAqIEFsc28gcmVtb3ZlcyBhbnkgc3BhY2VzIFxuICAgICAqIEBwYXJhbSBjb250cm9sXG4gICAgICovXG4gICAgc3RhdGljIHZhbGlkYXRlQ2FyZEV4cGlyeShjb250cm9sOiBGb3JtQ29udHJvbCkge1xuXG4gICAgICAgIGlmIChjb250cm9sKSB7XG5cbiAgICAgICAgICAgIGxldCBjb250cm9sVmFsdWUgPSBjb250cm9sLnZhbHVlLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgIGxldCBpc1ZhbGlkICAgICAgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGNvbnRyb2xWYWx1ZS5sZW5ndGggPiAxKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxldCBtb250aCA9IGNvbnRyb2xWYWx1ZVswXS5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCcnKTtcbiAgICAgICAgICAgICAgICBsZXQgeWVhciA9IGNvbnRyb2xWYWx1ZVsxXS5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCcnKTtcblxuICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBQYXltZW50LmZucy52YWxpZGF0ZUNhcmRFeHBpcnkobW9udGgsIHllYXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiOiBcIkNSRURJVF9FWFBJUllfSU5WQUxJRFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9ICAgICBcblxuICAgICAgICByZXR1cm4gbnVsbDsgXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGNhcmRzIENWQ1xuICAgICAqIEFsc28gcmVtb3ZlcyBhbnkgc3BhY2VzIFxuICAgICAqIEBwYXJhbSBjb250cm9sXG4gICAgICovXG4gICAgc3RhdGljIHZhbGlkYXRlQ2FyZEN2Yyhjb250cm9sOiBGb3JtQ29udHJvbCkge1xuXG4gICAgICAgIGlmIChjb250cm9sKSB7XG5cbiAgICAgICAgICAgIGxldCBpc1ZhbGlkID0gUGF5bWVudC5mbnMudmFsaWRhdGVDYXJkQ1ZDKGNvbnRyb2wudmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiOiBcIkNSRURJVF9DQVJEX0lOVkFMSURcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgICAgXG5cbiAgICAgICAgcmV0dXJuIG51bGw7ICBcbiAgICB9XG5cbn1cbiJdfQ==