UNPKG

reactjs-credit-card

Version:

This Package has react credit card form components and form validation system

203 lines (156 loc) 4.97 kB
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = privateMap.get(receiver); if (!descriptor) { throw new TypeError("attempted to set private field on non-instance"); } if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } return value; } function _classPrivateFieldGet(receiver, privateMap) { var descriptor = privateMap.get(receiver); if (!descriptor) { throw new TypeError("attempted to get private field on non-instance"); } if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } /** * @typedef HunelConfig * @type {object} * @property {boolean} middlePartHide - It's uses to hide the middle part of credit card number, default value is false * @property {number} yearLength - It's validThruYear list length,default value is 10.You can set this value to change yearValidThru list range */ /** * @type {HunelConfig} */ var hunelConfig = { middlePartHide: false, yearLength: 10 }; var _date = new WeakMap(); var _cardNumber = new WeakMap(); var _owner = new WeakMap(); var _validThruMonth = new WeakMap(); var _validThruYear = new WeakMap(); var _securityCode = new WeakMap(); var _fnMounth = new WeakMap(); var _fnCardStates = new WeakMap(); var _config = new WeakMap(); export default class HunelCreditCard { /** * * @param {HunelConfig} config a config object which can configure the HunelCreditCard instance */ constructor(config) { _date.set(this, { writable: true, value: new Date() }); _cardNumber.set(this, { writable: true, value: '' }); _owner.set(this, { writable: true, value: '' }); _validThruMonth.set(this, { writable: true, value: _classPrivateFieldGet(this, _date).getMonth() + 1 }); _validThruYear.set(this, { writable: true, value: _classPrivateFieldGet(this, _date).getFullYear() }); _securityCode.set(this, { writable: true, value: '' }); _fnMounth.set(this, { writable: true, value: null }); _fnCardStates.set(this, { writable: true, value: null }); _config.set(this, { writable: true, value: null }); _classPrivateFieldSet(this, _config, { ...hunelConfig, ...config }); this.pokeMonthState = this.pokeMonthState.bind(this); this.setMonthRelativeWithYear = this.setMonthRelativeWithYear.bind(this); this.setVirtualCardStates = this.setVirtualCardStates.bind(this); this.pokeVirtualCardStates = this.pokeVirtualCardStates.bind(this); this.setContextStateValue = this.setContextStateValue.bind(this); this.getCardNumber = this.getCardNumber.bind(this); this.getFormData = this.getFormData.bind(this); } get _config() { return _classPrivateFieldGet(this, _config); } get _cardNumber() { return _classPrivateFieldGet(this, _cardNumber); } set _cardNumber(value) { _classPrivateFieldSet(this, _cardNumber, value); } get _owner() { return _classPrivateFieldGet(this, _owner); } set _owner(value) { _classPrivateFieldSet(this, _owner, value); } get _validThruMonth() { return _classPrivateFieldGet(this, _validThruMonth); } set _validThruMonth(value) { _classPrivateFieldSet(this, _validThruMonth, value); } get _validThruYear() { return _classPrivateFieldGet(this, _validThruYear); } set _validThruYear(value) { _classPrivateFieldSet(this, _validThruYear, value); } get _securityCode() { return _classPrivateFieldGet(this, _securityCode); } set _securityCode(value) { _classPrivateFieldSet(this, _securityCode, value); } setMonthRelativeWithYear(fn) { _classPrivateFieldSet(this, _fnMounth, fn); } pokeMonthState(year) { _classPrivateFieldGet(this, _fnMounth).call(this, year); } setVirtualCardStates(fn) { _classPrivateFieldSet(this, _fnCardStates, fn); } pokeVirtualCardStates(type, value) { _classPrivateFieldGet(this, _fnCardStates).call(this, type, value); } setContextStateValue(type, value) { switch (type) { case 1: this._cardNumber = value; break; case 2: this._owner = value; break; case 3: this._validThruMonth = value; break; case 4: this._validThruYear = value; break; case 5: this._securityCode = value; break; default: } } getCardNumber() { return this._cardNumber; } getFormData() { return { cardNumber: this._cardNumber, cardHolder: this._owner, validThruMonth: this._validThruMonth, validThruYear: this._validThruYear, securityCode: this._securityCode, validYearLength: _classPrivateFieldGet(this, _config).yearLength }; } }