UNPKG

ng-payment-card

Version:

Customizable component with zero external dependencies.

66 lines 4.99 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { default as CARD_TYPES } from '../domain/card-types'; import { Month } from '../domain/month.enum'; export class PaymentCardService { /** * Return card type based on card number * @param {?} ccNum * @return {?} */ static getCardType(ccNum) { for (const [key, val] of Array.from(PaymentCardService.cardTypes.entries())) { if (ccNum .split(new RegExp('[ \\-]')) .join('') .match(val)) { return key; } } return null; } /** * Return months in numerical format * @return {?} */ static getMonths() { /** @type {?} */ const months = []; for (const key of Object.keys(Month)) { months.push(Month[key]); } return months; } /** * Return years based on current year * @return {?} */ static getYears() { /** @type {?} */ const years = []; /** @type {?} */ const year = new Date().getFullYear(); for (let i = -2; i < 5; i++) { years.push(year + i); } return years; } } /** * Collection of card types */ PaymentCardService.cardTypes = CARD_TYPES; PaymentCardService.decorators = [ { type: Injectable } ]; if (false) { /** * Collection of card types * @type {?} */ PaymentCardService.cardTypes; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1jYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1wYXltZW50LWNhcmQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZS9wYXltZW50LWNhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxJQUFJLFVBQVUsRUFBc0IsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHN0MsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7O0lBU3RCLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUMzRSxJQUNFLEtBQUs7aUJBQ0YsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMzQixJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUNSLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDYjtnQkFDQSxPQUFPLEdBQUcsQ0FBQzthQUNaO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7O0lBS00sTUFBTSxDQUFDLFNBQVM7O2NBQ2YsTUFBTSxHQUFpQixFQUFFO1FBQy9CLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7Ozs7SUFLTSxNQUFNLENBQUMsUUFBUTs7Y0FDZCxLQUFLLEdBQWtCLEVBQUU7O2NBQ3pCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEI7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0FBeEN1Qiw0QkFBUyxHQUF1QixVQUFVLENBQUM7O1lBTHBFLFVBQVU7Ozs7Ozs7SUFLVCw2QkFBbUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGRlZmF1bHQgYXMgQ0FSRF9UWVBFUywgQ2FyZFR5cGVzQ29udGFpbmVyIH0gZnJvbSAnLi4vZG9tYWluL2NhcmQtdHlwZXMnO1xuaW1wb3J0IHsgTW9udGggfSBmcm9tICcuLi9kb21haW4vbW9udGguZW51bSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYXltZW50Q2FyZFNlcnZpY2Uge1xuICAvKipcbiAgICogQ29sbGVjdGlvbiBvZiBjYXJkIHR5cGVzXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjYXJkVHlwZXM6IENhcmRUeXBlc0NvbnRhaW5lciA9IENBUkRfVFlQRVM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBjYXJkIHR5cGUgYmFzZWQgb24gY2FyZCBudW1iZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q2FyZFR5cGUoY2NOdW06IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBBcnJheS5mcm9tKFBheW1lbnRDYXJkU2VydmljZS5jYXJkVHlwZXMuZW50cmllcygpKSkge1xuICAgICAgaWYgKFxuICAgICAgICBjY051bVxuICAgICAgICAgIC5zcGxpdChuZXcgUmVnRXhwKCdbIFxcXFwtXScpKVxuICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgIC5tYXRjaCh2YWwpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIG1vbnRocyBpbiBudW1lcmljYWwgZm9ybWF0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE1vbnRocygpOiBBcnJheTxNb250aD4ge1xuICAgIGNvbnN0IG1vbnRoczogQXJyYXk8TW9udGg+ID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoTW9udGgpKSB7XG4gICAgICBtb250aHMucHVzaChNb250aFtrZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vbnRocztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4geWVhcnMgYmFzZWQgb24gY3VycmVudCB5ZWFyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldFllYXJzKCk6IEFycmF5PG51bWJlcj4ge1xuICAgIGNvbnN0IHllYXJzOiBBcnJheTxudW1iZXI+ID0gW107XG4gICAgY29uc3QgeWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTtcbiAgICBmb3IgKGxldCBpID0gLTI7IGkgPCA1OyBpKyspIHtcbiAgICAgIHllYXJzLnB1c2goeWVhciArIGkpO1xuICAgIH1cbiAgICByZXR1cm4geWVhcnM7XG4gIH1cbn1cbiJdfQ==