vue-giveworks-form
Version:
This plugin provides Vue.js component for the open [http://giveworks.net](Giveworks Platform).
3,152 lines • 87.2 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackJsonpGiveworksForm"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpGiveworksForm"] || []).push([[11],{
/***/ "253b":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_css_loader_dist_cjs_js_ref_8_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_8_oneOf_1_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_cache_loader_dist_cjs_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_AnimateCss_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3560");
/* harmony import */ var _vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_css_loader_dist_cjs_js_ref_8_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_8_oneOf_1_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_cache_loader_dist_cjs_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_AnimateCss_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_css_loader_dist_cjs_js_ref_8_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_8_oneOf_1_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_cache_loader_dist_cjs_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_AnimateCss_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/***/ "3182":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function hasEnoughResultsToDetermineBestMatch(results) {
var numberOfResultsWithMaxStrengthProperty = results.filter(function (result) {
return result.matchStrength;
}).length;
// if all possible results have a maxStrength property
// that means the card number is sufficiently long
// enough to determine conclusively what the type is
return numberOfResultsWithMaxStrengthProperty > 0 &&
numberOfResultsWithMaxStrengthProperty === results.length;
}
function findBestMatch(results) {
if (!hasEnoughResultsToDetermineBestMatch(results)) {
return;
}
return results.reduce(function (bestMatch, result) { // eslint-disable-line consistent-return
if (!bestMatch) {
return result;
}
// if the current best match pattern is less specific
// than this result, set the result as the new best match
if (bestMatch.matchStrength < result.matchStrength) {
return result;
}
return bestMatch;
});
}
module.exports = findBestMatch;
/***/ }),
/***/ "3474":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// Polyfill taken from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#Polyfill>.
module.exports = Array.isArray || function (arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
/***/ }),
/***/ "3560":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "38ad":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var expirationYear = __webpack_require__("b91c");
var isArray = __webpack_require__("3474");
function getNumberOfMonthDigitsInDateString(dateString) {
var firstCharacter = Number(dateString[0]);
var assumedYear;
/*
if the first character in the string starts with `0`,
we know that the month will be 2 digits.
'0122' => {month: '01', year: '22'}
*/
if (firstCharacter === 0) {
return 2;
}
/*
if the first character in the string starts with
number greater than 1, it must be a 1 digit month
'322' => {month: '3', year: '22'}
*/
if (firstCharacter > 1) {
return 1;
}
/*
if the first 2 characters make up a number between
13-19, we know that the month portion must be 1
'139' => {month: '1', year: '39'}
*/
if (firstCharacter === 1 && Number(dateString[1]) > 2) {
return 1;
}
/*
if the first 2 characters make up a number between
10-12, we check if the year portion would be considered
valid if we assumed that the month was 1. If it is
not potentially valid, we assume the month must have
2 digits.
'109' => {month: '10', year: '9'}
'120' => {month: '1', year: '20'} // when checked in the year 2019
'120' => {month: '12', year: '0'} // when checked in the year 2021
*/
if (firstCharacter === 1) {
assumedYear = dateString.substr(1);
return expirationYear(assumedYear).isPotentiallyValid ? 1 : 2;
}
/*
If the length of the value is exactly 5 characters,
we assume a full year was passed in, meaning the remaining
single leading digit must be the month value.
'12202' => {month: '1', year: '2202'}
*/
if (dateString.length === 5) {
return 1;
}
/*
If the length of the value is more than five characters,
we assume a full year was passed in addition to the month
and therefore the month portion must be 2 digits.
'112020' => {month: '11', year: '2020'}
*/
if (dateString.length > 5) {
return 2;
}
/*
By default, the month value is the first value
*/
return 1;
}
function parseDate(date) {
var month, numberOfDigitsInMonth;
if (/^\d{4}-\d{1,2}$/.test(date)) {
date = date.split('-').reverse();
} else if (/\//.test(date)) {
date = date.split(/\s*\/\s*/g);
} else if (/\s/.test(date)) {
date = date.split(/ +/g);
}
if (isArray(date)) {
return {
month: date[0] || '',
year: date.slice(1).join()
};
}
numberOfDigitsInMonth = getNumberOfMonthDigitsInDateString(date);
month = date.substr(0, numberOfDigitsInMonth);
return {
month: month,
year: date.substr(month.length)
};
}
module.exports = parseDate;
/***/ }),
/***/ "4400":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// Adapted from https://github.com/polvo-labs/card-type/blob/aaab11f80fa1939bccc8f24905a06ae3cd864356/src/cardType.js#L37-L42
function matchesRange(cardNumber, min, max) {
var maxLengthToCheck = String(min).length;
var substr = cardNumber.substr(0, maxLengthToCheck);
var integerRepresentationOfCardNumber = parseInt(substr, 10);
min = parseInt(String(min).substr(0, substr.length), 10);
max = parseInt(String(max).substr(0, substr.length), 10);
return integerRepresentationOfCardNumber >= min && integerRepresentationOfCardNumber <= max;
}
function matchesPattern(cardNumber, pattern) {
pattern = String(pattern);
return pattern.substring(0, cardNumber.length) === cardNumber.substring(0, pattern.length);
}
function matches(cardNumber, pattern) {
if (Array.isArray(pattern)) {
return matchesRange(cardNumber, pattern[0], pattern[1]);
}
return matchesPattern(cardNumber, pattern);
}
module.exports = matches;
/***/ }),
/***/ "446a":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function clone(originalObject) {
var dupe;
if (!originalObject) { return null; }
dupe = JSON.parse(JSON.stringify(originalObject));
return dupe;
}
module.exports = clone;
/***/ }),
/***/ "540a":
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Generated by CoffeeScript 1.10.0
(function() {
var Payment, QJ, cardFromNumber, cardFromType, cards, defaultFormat, formatBackCardNumber, formatBackExpiry, formatCardNumber, formatExpiry, formatForwardExpiry, formatForwardSlash, formatMonthExpiry, hasTextSelected, luhnCheck, reFormatCardNumber, restrictCVC, restrictCardNumber, restrictCombinedExpiry, restrictExpiry, restrictMonthExpiry, restrictNumeric, restrictYearExpiry, setCardType,
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
QJ = __webpack_require__("5d3e");
defaultFormat = /(\d{1,4})/g;
cards = [
{
type: 'amex',
pattern: /^3[47]/,
format: /(\d{1,4})(\d{1,6})?(\d{1,5})?/,
length: [15],
cvcLength: [4],
luhn: true
}, {
type: 'dankort',
pattern: /^5019/,
format: defaultFormat,
length: [16],
cvcLength: [3],
luhn: true
}, {
type: 'dinersclub',
pattern: /^(36|38|30[0-5])/,
format: /(\d{1,4})(\d{1,6})?(\d{1,4})?/,
length: [14],
cvcLength: [3],
luhn: true
}, {
type: 'discover',
pattern: /^(6011|65|64[4-9]|622)/,
format: defaultFormat,
length: [16],
cvcLength: [3],
luhn: true
}, {
type: 'elo',
pattern: /^401178|^401179|^431274|^438935|^451416|^457393|^457631|^457632|^504175|^627780|^636297|^636369|^636368|^(506699|5067[0-6]\d|50677[0-8])|^(50900\d|5090[1-9]\d|509[1-9]\d{2})|^65003[1-3]|^(65003[5-9]|65004\d|65005[0-1])|^(65040[5-9]|6504[1-3]\d)|^(65048[5-9]|65049\d|6505[0-2]\d|65053[0-8])|^(65054[1-9]|6505[5-8]\d|65059[0-8])|^(65070\d|65071[0-8])|^65072[0-7]|^(65090[1-9]|65091\d|650920)|^(65165[2-9]|6516[6-7]\d)|^(65500\d|65501\d)|^(65502[1-9]|6550[3-4]\d|65505[0-8])|^(65092[1-9]|65097[0-8])/,
format: defaultFormat,
length: [16],
cvcLength: [3],
luhn: true
}, {
type: 'hipercard',
pattern: /^(384100|384140|384160|606282|637095|637568|60(?!11))/,
format: defaultFormat,
length: [14, 15, 16, 17, 18, 19],
cvcLength: [3],
luhn: true
}, {
type: 'jcb',
pattern: /^(308[8-9]|309[0-3]|3094[0]{4}|309[6-9]|310[0-2]|311[2-9]|3120|315[8-9]|333[7-9]|334[0-9]|352[8-9]|35[3-8][0-9])/,
format: defaultFormat,
length: [16, 19],
cvcLength: [3],
luhn: true
}, {
type: 'laser',
pattern: /^(6706|6771|6709)/,
format: defaultFormat,
length: [16, 17, 18, 19],
cvcLength: [3],
luhn: true
}, {
type: 'maestro',
pattern: /^(5018|5020|5038|5078|5[6-9]|6304|6703|6708|6759|676[1-3])/,
format: defaultFormat,
length: [12, 13, 14, 15, 16, 17, 18, 19],
cvcLength: [3],
luhn: true
}, {
type: 'mastercard',
pattern: /^(5[1-5]|677189)|^(222[1-9]|2[3-6]\d{2}|27[0-1]\d|2720)/,
format: defaultFormat,
length: [16],
cvcLength: [3],
luhn: true
}, {
type: 'mir',
pattern: /^220[0-4][0-9][0-9]\d{10}$/,
format: defaultFormat,
length: [16],
cvcLength: [3],
luhn: true
}, {
type: 'troy',
pattern: /^9792/,
format: defaultFormat,
length: [16],
cvcLength: [3],
luhn: true
}, {
type: 'unionpay',
pattern: /^62/,
format: defaultFormat,
length: [16, 17, 18, 19],
cvcLength: [3],
luhn: false
}, {
type: 'visaelectron',
pattern: /^4(026|17500|405|508|844|91[37])/,
format: defaultFormat,
length: [16],
cvcLength: [3],
luhn: true
}, {
type: 'visa',
pattern: /^4/,
format: defaultFormat,
length: [13, 16, 19],
cvcLength: [3],
luhn: true
}
];
cardFromNumber = function(num) {
var card, foundCard, j, len, match;
num = (num + '').replace(/\D/g, '');
foundCard = void 0;
for (j = 0, len = cards.length; j < len; j++) {
card = cards[j];
if (match = num.match(card.pattern)) {
if (!foundCard || match[0].length > foundCard[1][0].length) {
foundCard = [card, match];
}
}
}
return foundCard && foundCard[0];
};
cardFromType = function(type) {
var card, j, len;
for (j = 0, len = cards.length; j < len; j++) {
card = cards[j];
if (card.type === type) {
return card;
}
}
};
luhnCheck = function(num) {
var digit, digits, j, len, odd, sum;
odd = true;
sum = 0;
digits = (num + '').split('').reverse();
for (j = 0, len = digits.length; j < len; j++) {
digit = digits[j];
digit = parseInt(digit, 10);
if ((odd = !odd)) {
digit *= 2;
}
if (digit > 9) {
digit -= 9;
}
sum += digit;
}
return sum % 10 === 0;
};
hasTextSelected = function(target) {
var e, error, ref;
try {
if ((target.selectionStart != null) && target.selectionStart !== target.selectionEnd) {
return true;
}
if ((typeof document !== "undefined" && document !== null ? (ref = document.selection) != null ? ref.createRange : void 0 : void 0) != null) {
if (document.selection.createRange().text) {
return true;
}
}
} catch (error) {
e = error;
}
return false;
};
reFormatCardNumber = function(e) {
return setTimeout((function(_this) {
return function() {
var target, value;
target = e.target;
value = QJ.val(target);
value = Payment.fns.formatCardNumber(value);
QJ.val(target, value);
return QJ.trigger(target, 'change');
};
})(this));
};
formatCardNumber = function(maxLength) {
return function(e) {
var card, digit, i, j, len, length, re, target, upperLength, upperLengths, value;
digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
target = e.target;
value = QJ.val(target);
card = cardFromNumber(value + digit);
length = (value.replace(/\D/g, '') + digit).length;
upperLengths = [16];
if (card) {
upperLengths = card.length;
}
if (maxLength) {
upperLengths = upperLengths.filter(function(x) {
return x <= maxLength;
});
}
for (i = j = 0, len = upperLengths.length; j < len; i = ++j) {
upperLength = upperLengths[i];
if (length >= upperLength && upperLengths[i + 1]) {
continue;
}
if (length >= upperLength) {
return;
}
}
if (hasTextSelected(target)) {
return;
}
if (card && card.type === 'amex') {
re = /^(\d{4}|\d{4}\s\d{6})$/;
} else {
re = /(?:^|\s)(\d{4})$/;
}
if (re.test(value)) {
e.preventDefault();
QJ.val(target, value + ' ' + digit);
return QJ.trigger(target, 'change');
}
};
};
formatBackCardNumber = function(e) {
var target, value;
target = e.target;
value = QJ.val(target);
if (e.meta) {
return;
}
if (e.which !== 8) {
return;
}
if (hasTextSelected(target)) {
return;
}
if (/\d\s$/.test(value)) {
e.preventDefault();
QJ.val(target, value.replace(/\d\s$/, ''));
return QJ.trigger(target, 'change');
} else if (/\s\d?$/.test(value)) {
e.preventDefault();
QJ.val(target, value.replace(/\s\d?$/, ''));
return QJ.trigger(target, 'change');
}
};
formatExpiry = function(e) {
var digit, target, val;
digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
target = e.target;
val = QJ.val(target) + digit;
if (/^\d$/.test(val) && (val !== '0' && val !== '1')) {
e.preventDefault();
QJ.val(target, "0" + val + " / ");
return QJ.trigger(target, 'change');
} else if (/^\d\d$/.test(val)) {
e.preventDefault();
QJ.val(target, val + " / ");
return QJ.trigger(target, 'change');
}
};
formatMonthExpiry = function(e) {
var digit, target, val;
digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
target = e.target;
val = QJ.val(target) + digit;
if (/^\d$/.test(val) && (val !== '0' && val !== '1')) {
e.preventDefault();
QJ.val(target, "0" + val);
return QJ.trigger(target, 'change');
} else if (/^\d\d$/.test(val)) {
e.preventDefault();
QJ.val(target, "" + val);
return QJ.trigger(target, 'change');
}
};
formatForwardExpiry = function(e) {
var digit, target, val;
digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
target = e.target;
val = QJ.val(target);
if (/^\d\d$/.test(val)) {
QJ.val(target, val + " / ");
return QJ.trigger(target, 'change');
}
};
formatForwardSlash = function(e) {
var slash, target, val;
slash = String.fromCharCode(e.which);
if (slash !== '/') {
return;
}
target = e.target;
val = QJ.val(target);
if (/^\d$/.test(val) && val !== '0') {
QJ.val(target, "0" + val + " / ");
return QJ.trigger(target, 'change');
}
};
formatBackExpiry = function(e) {
var target, value;
if (e.metaKey) {
return;
}
target = e.target;
value = QJ.val(target);
if (e.which !== 8) {
return;
}
if (hasTextSelected(target)) {
return;
}
if (/\d(\s|\/)+$/.test(value)) {
e.preventDefault();
QJ.val(target, value.replace(/\d(\s|\/)*$/, ''));
return QJ.trigger(target, 'change');
} else if (/\s\/\s?\d?$/.test(value)) {
e.preventDefault();
QJ.val(target, value.replace(/\s\/\s?\d?$/, ''));
return QJ.trigger(target, 'change');
}
};
restrictNumeric = function(e) {
var input;
if (e.metaKey || e.ctrlKey) {
return true;
}
if (e.which === 32) {
return e.preventDefault();
}
if (e.which === 0) {
return true;
}
if (e.which < 33) {
return true;
}
input = String.fromCharCode(e.which);
if (!/[\d\s]/.test(input)) {
return e.preventDefault();
}
};
restrictCardNumber = function(maxLength) {
return function(e) {
var card, digit, length, target, value;
target = e.target;
digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
if (hasTextSelected(target)) {
return;
}
value = (QJ.val(target) + digit).replace(/\D/g, '');
card = cardFromNumber(value);
length = 16;
if (card) {
length = card.length[card.length.length - 1];
}
if (maxLength) {
length = Math.min(length, maxLength);
}
if (!(value.length <= length)) {
return e.preventDefault();
}
};
};
restrictExpiry = function(e, length) {
var digit, target, value;
target = e.target;
digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
if (hasTextSelected(target)) {
return;
}
value = QJ.val(target) + digit;
value = value.replace(/\D/g, '');
if (value.length > length) {
return e.preventDefault();
}
};
restrictCombinedExpiry = function(e) {
return restrictExpiry(e, 6);
};
restrictMonthExpiry = function(e) {
return restrictExpiry(e, 2);
};
restrictYearExpiry = function(e) {
return restrictExpiry(e, 4);
};
restrictCVC = function(e) {
var digit, target, val;
target = e.target;
digit = String.fromCharCode(e.which);
if (!/^\d+$/.test(digit)) {
return;
}
if (hasTextSelected(target)) {
return;
}
val = QJ.val(target) + digit;
if (!(val.length <= 4)) {
return e.preventDefault();
}
};
setCardType = function(e) {
var allTypes, card, cardType, target, val;
target = e.target;
val = QJ.val(target);
cardType = Payment.fns.cardType(val) || 'unknown';
if (!QJ.hasClass(target, cardType)) {
allTypes = (function() {
var j, len, results;
results = [];
for (j = 0, len = cards.length; j < len; j++) {
card = cards[j];
results.push(card.type);
}
return results;
})();
QJ.removeClass(target, 'unknown');
QJ.removeClass(target, allTypes.join(' '));
QJ.addClass(target, cardType);
QJ.toggleClass(target, 'identified', cardType !== 'unknown');
return QJ.trigger(target, 'payment.cardType', cardType);
}
};
Payment = (function() {
function Payment() {}
Payment.fns = {
cardExpiryVal: function(value) {
var month, prefix, ref, year;
value = value.replace(/\s/g, '');
ref = value.split('/', 2), month = ref[0], year = ref[1];
if ((year != null ? year.length : void 0) === 2 && /^\d+$/.test(year)) {
prefix = (new Date).getFullYear();
prefix = prefix.toString().slice(0, 2);
year = prefix + year;
}
month = parseInt(month, 10);
year = parseInt(year, 10);
return {
month: month,
year: year
};
},
validateCardNumber: function(num) {
var card, ref;
num = (num + '').replace(/\s+|-/g, '');
if (!/^\d+$/.test(num)) {
return false;
}
card = cardFromNumber(num);
if (!card) {
return false;
}
return (ref = num.length, indexOf.call(card.length, ref) >= 0) && (card.luhn === false || luhnCheck(num));
},
validateCardExpiry: function(month, year) {
var currentTime, expiry, prefix, ref, ref1;
if (typeof month === 'object' && 'month' in month) {
ref = month, month = ref.month, year = ref.year;
} else if (typeof month === 'string' && indexOf.call(month, '/') >= 0) {
ref1 = Payment.fns.cardExpiryVal(month), month = ref1.month, year = ref1.year;
}
if (!(month && year)) {
return false;
}
month = QJ.trim(month);
year = QJ.trim(year);
if (!/^\d+$/.test(month)) {
return false;
}
if (!/^\d+$/.test(year)) {
return false;
}
month = parseInt(month, 10);
if (!(month && month <= 12)) {
return false;
}
if (year.length === 2) {
prefix = (new Date).getFullYear();
prefix = prefix.toString().slice(0, 2);
year = prefix + year;
}
expiry = new Date(year, month);
currentTime = new Date;
expiry.setMonth(expiry.getMonth() - 1);
expiry.setMonth(expiry.getMonth() + 1, 1);
return expiry > currentTime;
},
validateCardCVC: function(cvc, type) {
var ref, ref1;
cvc = QJ.trim(cvc);
if (!/^\d+$/.test(cvc)) {
return false;
}
if (type && cardFromType(type)) {
return ref = cvc.length, indexOf.call((ref1 = cardFromType(type)) != null ? ref1.cvcLength : void 0, ref) >= 0;
} else {
return cvc.length >= 3 && cvc.length <= 4;
}
},
cardType: function(num) {
var ref;
if (!num) {
return null;
}
return ((ref = cardFromNumber(num)) != null ? ref.type : void 0) || null;
},
formatCardNumber: function(num) {
var card, groups, ref, upperLength;
card = cardFromNumber(num);
if (!card) {
return num;
}
upperLength = card.length[card.length.length - 1];
num = num.replace(/\D/g, '');
num = num.slice(0, upperLength);
if (card.format.global) {
return (ref = num.match(card.format)) != null ? ref.join(' ') : void 0;
} else {
groups = card.format.exec(num);
if (groups == null) {
return;
}
groups.shift();
groups = groups.filter(function(n) {
return n;
});
return groups.join(' ');
}
}
};
Payment.restrictNumeric = function(el) {
return QJ.on(el, 'keypress', restrictNumeric);
};
Payment.cardExpiryVal = function(el) {
return Payment.fns.cardExpiryVal(QJ.val(el));
};
Payment.formatCardCVC = function(el) {
Payment.restrictNumeric(el);
QJ.on(el, 'keypress', restrictCVC);
return el;
};
Payment.formatCardExpiry = function(el) {
var month, year;
Payment.restrictNumeric(el);
if (el.length && el.length === 2) {
month = el[0], year = el[1];
this.formatCardExpiryMultiple(month, year);
} else {
QJ.on(el, 'keypress', restrictCombinedExpiry);
QJ.on(el, 'keypress', formatExpiry);
QJ.on(el, 'keypress', formatForwardSlash);
QJ.on(el, 'keypress', formatForwardExpiry);
QJ.on(el, 'keydown', formatBackExpiry);
}
return el;
};
Payment.formatCardExpiryMultiple = function(month, year) {
QJ.on(month, 'keypress', restrictMonthExpiry);
QJ.on(month, 'keypress', formatMonthExpiry);
return QJ.on(year, 'keypress', restrictYearExpiry);
};
Payment.formatCardNumber = function(el, maxLength) {
Payment.restrictNumeric(el);
QJ.on(el, 'keypress', restrictCardNumber(maxLength));
QJ.on(el, 'keypress', formatCardNumber(maxLength));
QJ.on(el, 'keydown', formatBackCardNumber);
QJ.on(el, 'keyup blur', setCardType);
QJ.on(el, 'paste', reFormatCardNumber);
QJ.on(el, 'input', reFormatCardNumber);
return el;
};
Payment.getCardArray = function() {
return cards;
};
Payment.setCardArray = function(cardArray) {
cards = cardArray;
return true;
};
Payment.addToCardArray = function(cardObject) {
return cards.push(cardObject);
};
Payment.removeFromCardArray = function(type) {
var key, value;
for (key in cards) {
value = cards[key];
if (value.type === type) {
cards.splice(key, 1);
}
}
return true;
};
return Payment;
})();
module.exports = Payment;
global.Payment = Payment;
}).call(this);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
/***/ }),
/***/ "5d3e":
/***/ (function(module, exports) {
// Generated by CoffeeScript 1.10.0
(function() {
var QJ, rreturn, rtrim;
QJ = function(selector) {
if (QJ.isDOMElement(selector)) {
return selector;
}
return document.querySelectorAll(selector);
};
QJ.isDOMElement = function(el) {
return el && (el.nodeName != null);
};
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
QJ.trim = function(text) {
if (text === null) {
return "";
} else {
return (text + "").replace(rtrim, "");
}
};
rreturn = /\r/g;
QJ.val = function(el, val) {
var ret;
if (arguments.length > 1) {
return el.value = val;
} else {
ret = el.value;
if (typeof ret === "string") {
return ret.replace(rreturn, "");
} else {
if (ret === null) {
return "";
} else {
return ret;
}
}
}
};
QJ.preventDefault = function(eventObject) {
if (typeof eventObject.preventDefault === "function") {
eventObject.preventDefault();
return;
}
eventObject.returnValue = false;
return false;
};
QJ.normalizeEvent = function(e) {
var original;
original = e;
e = {
which: original.which != null ? original.which : void 0,
target: original.target || original.srcElement,
preventDefault: function() {
return QJ.preventDefault(original);
},
originalEvent: original,
data: original.data || original.detail
};
if (e.which == null) {
e.which = original.charCode != null ? original.charCode : original.keyCode;
}
return e;
};
QJ.on = function(element, eventName, callback) {
var el, i, j, len, len1, multEventName, originalCallback, ref;
if (element.length) {
for (i = 0, len = element.length; i < len; i++) {
el = element[i];
QJ.on(el, eventName, callback);
}
return;
}
if (eventName.match(" ")) {
ref = eventName.split(" ");
for (j = 0, len1 = ref.length; j < len1; j++) {
multEventName = ref[j];
QJ.on(element, multEventName, callback);
}
return;
}
originalCallback = callback;
callback = function(e) {
e = QJ.normalizeEvent(e);
return originalCallback(e);
};
if (element.addEventListener) {
return element.addEventListener(eventName, callback, false);
}
if (element.attachEvent) {
eventName = "on" + eventName;
return element.attachEvent(eventName, callback);
}
element['on' + eventName] = callback;
};
QJ.addClass = function(el, className) {
var e;
if (el.length) {
return (function() {
var i, len, results;
results = [];
for (i = 0, len = el.length; i < len; i++) {
e = el[i];
results.push(QJ.addClass(e, className));
}
return results;
})();
}
if (el.classList) {
return el.classList.add(className);
} else {
return el.className += ' ' + className;
}
};
QJ.hasClass = function(el, className) {
var e, hasClass, i, len;
if (el.length) {
hasClass = true;
for (i = 0, len = el.length; i < len; i++) {
e = el[i];
hasClass = hasClass && QJ.hasClass(e, className);
}
return hasClass;
}
if (el.classList) {
return el.classList.contains(className);
} else {
return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
}
};
QJ.removeClass = function(el, className) {
var cls, e, i, len, ref, results;
if (el.length) {
return (function() {
var i, len, results;
results = [];
for (i = 0, len = el.length; i < len; i++) {
e = el[i];
results.push(QJ.removeClass(e, className));
}
return results;
})();
}
if (el.classList) {
ref = className.split(' ');
results = [];
for (i = 0, len = ref.length; i < len; i++) {
cls = ref[i];
results.push(el.classList.remove(cls));
}
return results;
} else {
return el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
}
};
QJ.toggleClass = function(el, className, bool) {
var e;
if (el.length) {
return (function() {
var i, len, results;
results = [];
for (i = 0, len = el.length; i < len; i++) {
e = el[i];
results.push(QJ.toggleClass(e, className, bool));
}
return results;
})();
}
if (bool) {
if (!QJ.hasClass(el, className)) {
return QJ.addClass(el, className);
}
} else {
return QJ.removeClass(el, className);
}
};
QJ.append = function(el, toAppend) {
var e;
if (el.length) {
return (function() {
var i, len, results;
results = [];
for (i = 0, len = el.length; i < len; i++) {
e = el[i];
results.push(QJ.append(e, toAppend));
}
return results;
})();
}
return el.insertAdjacentHTML('beforeend', toAppend);
};
QJ.find = function(el, selector) {
if (el instanceof NodeList || el instanceof Array) {
el = el[0];
}
return el.querySelectorAll(selector);
};
QJ.trigger = function(el, name, data) {
var e, error, ev;
try {
ev = new CustomEvent(name, {
detail: data
});
} catch (error) {
e = error;
ev = document.createEvent('CustomEvent');
if (ev.initCustomEvent) {
ev.initCustomEvent(name, true, true, data);
} else {
ev.initEvent(name, true, true, data);
}
}
return el.dispatchEvent(ev);
};
module.exports = QJ;
}).call(this);
/***/ }),
/***/ "5f74":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var cardTypes = {
visa: {
niceType: 'Visa',
type: 'visa',
patterns: [
4
],
gaps: [4, 8, 12],
lengths: [16, 18, 19],
code: {
name: 'CVV',
size: 3
}
},
mastercard: {
niceType: 'Mastercard',
type: 'mastercard',
patterns: [
[51, 55],
[2221, 2229],
[223, 229],
[23, 26],
[270, 271],
2720
],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: 'CVC',
size: 3
}
},
'american-express': {
niceType: 'American Express',
type: 'american-express',
patterns: [
34,
37
],
gaps: [4, 10],
lengths: [15],
code: {
name: 'CID',
size: 4
}
},
'diners-club': {
niceType: 'Diners Club',
type: 'diners-club',
patterns: [
[300, 305],
36,
38,
39
],
gaps: [4, 10],
lengths: [14, 16, 19],
code: {
name: 'CVV',
size: 3
}
},
discover: {
niceType: 'Discover',
type: 'discover',
patterns: [
6011,
[644, 649],
65
],
gaps: [4, 8, 12],
lengths: [16, 19],
code: {
name: 'CID',
size: 3
}
},
jcb: {
niceType: 'JCB',
type: 'jcb',
patterns: [
2131,
1800,
[3528, 3589]
],
gaps: [4, 8, 12],
lengths: [16, 17, 18, 19],
code: {
name: 'CVV',
size: 3
}
},
unionpay: {
niceType: 'UnionPay',
type: 'unionpay',
patterns: [
620,
[624, 626],
[62100, 62182],
[62184, 62187],
[62185, 62197],
[62200, 62205],
[622010, 622999],
622018,
[622019, 622999],
[62207, 62209],
[622126, 622925],
[623, 626],
6270,
6272,
6276,
[627700, 627779],
[627781, 627799],
[6282, 6289],
6291,
6292,
810,
[8110, 8131],
[8132, 8151],
[8152, 8163],
[8164, 8171]
],
gaps: [4, 8, 12],
lengths: [14, 15, 16, 17, 18, 19],
code: {
name: 'CVN',
size: 3
}
},
maestro: {
niceType: 'Maestro',
type: 'maestro',
patterns: [
493698,
[500000, 506698],
[506779, 508999],
[56, 59],
63,
67,
6
],
gaps: [4, 8, 12],
lengths: [12, 13, 14, 15, 16, 17, 18, 19],
code: {
name: 'CVC',
size: 3
}
},
elo: {
niceType: 'Elo',
type: 'elo',
patterns: [
401178,
401179,
438935,
457631,
457632,
431274,
451416,
457393,
504175,
[506699, 506778],
[509000, 509999],
627780,
636297,
636368,
[650031, 650033],
[650035, 650051],
[650405, 650439],
[650485, 650538],
[650541, 650598],
[650700, 650718],
[650720, 650727],
[650901, 650978],
[651652, 651679],
[655000, 655019],
[655021, 655058]
],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: 'CVE',
size: 3
}
},
mir: {
niceType: 'Mir',
type: 'mir',
patterns: [
[2200, 2204]
],
gaps: [4, 8, 12],
lengths: [16, 17, 18, 19],
code: {
name: 'CVP2',
size: 3
}
},
hiper: {
niceType: 'Hiper',
type: 'hiper',
patterns: [
637095,
637568,
637599,
637609,
637612
],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: 'CVC',
size: 3
}
},
hipercard: {
niceType: 'Hipercard',
type: 'hipercard',
patterns: [
606282
],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: 'CVC',
size: 3
}
}
};
module.exports = cardTypes;
/***/ }),
/***/ "6468":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7ef6bfa2-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-credit-card-field/src/Components/CreditCardField.vue?vue&type=template&id=62e89d3a&
var render = function () {
var _obj;
var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"credit-card-field",class:( _obj = {'has-brand': !!_vm.type, 'has-errors': _vm.hasErrors}, _obj[("is-focused-" + _vm.focused)] = _vm.focused, _obj )},[_c('form-group',[_c('div',{staticClass:"credit-card-field-rows"},[_c('div',{staticClass:"credit-card-field-row",class:{'has-error': _vm.currentErrors.number}},[_c('input-field',{directives:[{name:"card-number",rawName:"v-card-number"},{name:"bubble",rawName:"v-bubble:blur",value:(_vm.onBlur),expression:"onBlur",arg:"blur"},{name:"bubble",rawName:"v-bubble:focus",value:(function () { return _vm.focused = 'number'; }),expression:"() => focused = 'number'",arg:"focus"},{name:"validate",rawName:"v-validate:number",value:(_vm.validated.number),expression:"validated.number",arg:"number"}],ref:"number",attrs:{"disabled":_vm.activity,"error":_vm.error,"errors":_vm.currentErrors,"custom":"","id":"number","name":"number","label":"Card Number","placeholder":"Credit Card Number"},on:{"validate":_vm.onValidate},nativeOn:{"card-types":function($event){return _vm.onCardTypeChange($event)},"valid":function($event){return (function () { return _vm.onValid('number', _vm.showName ? 'name' : 'expMonth'); })($event)}},scopedSlots:_vm._u([{key:"activity",fn:function(){return [_c('animate-css',{attrs:{"name":"fade"}},[(_vm.activity)?_c('activity-indicator',{key:"activity",attrs:{"size":_vm.size}}):_c('div',{key:"icons",staticClass:"credit-card-icons"},[_c('animate-css',{attrs:{"mode":"out-in","name":"flip","y":""}},[(_vm.focused !== 'cvc')?_c('div',{key:"front",staticClass:"credit-card-field-icon-card"},[_c('icon',{staticClass:"credit-card-field-icon",attrs:{"icon":[_vm.icon ? 'fab' : 'far', _vm.icon || 'credit-card'],"data-brand":_vm.type && _vm.type.niceType || 'unknown',"width":"20","height":"18"}})],1):_c('div',{key:"back",staticClass:"credit-card-field-icon-card"},[_c('icon',{staticClass:"credit-card-field-icon",attrs:{"icon":['fas', 'credit-card'],"width":"23.33","height":"20"}})],1)])],1)],1)]},proxy:true}]),model:{value:(_vm.card.numberFormatted),callback:function ($$v) {_vm.$set(_vm.card, "numberFormatted", $$v)},expression:"card.numberFormatted"}})],1),_c('animate-css',{attrs:{"name":"fade"}},[(_vm.showSecurityFields && _vm.showName)?_c('div',{staticClass:"credit-card-field-row",class:{'has-error': _vm.currentErrors.name}},[_c('input-field',{directives:[{name:"bubble",rawName:"v-bubble:focus",value:(function () { return _vm.focused = 'name'; }),expression:"() => focused = 'name'",arg:"focus"},{name:"validate",rawName:"v-validate:name",value:(_vm.validated.name),expression:"validated.name",arg:"name"}],ref:"name",staticClass:"credit-card-field-name",attrs:{"disabled":_vm.activity,"errors":_vm.currentErrors,"custom":"","id":"name","name":"name","label":"Name","placeholder":"Name on Card"},model:{value:(_vm.card.name),callback:function ($$v) {_vm.$set(_vm.card, "name", $$v)},expression:"card.name"}})],1):_vm._e()]),_c('animate-css',{attrs:{"name":"fade"}},[(_vm.showSecurityFields)?_c('div',{staticClass:"credit-card-field-row d-flex",class:{'has-error': _vm.currentErrors.expMonth || _vm.currentErrors.expYear || _vm.currentErrors.cvc || _vm.currentErrors.zip}},[_c('select-field',{directives:[{name:"bubble",rawName:"v-bubble"},{name:"bubble",rawName:"v-bubble:blur",value:(_vm.onBlur),expression:"onBlur",arg:"blur"},{name:"bubble",rawName:"v-bubble:focus",value:(function () { return _vm.focused = 'expMonth'; }),expression:"() => focused = 'expMonth'",arg:"focus"},{name:"validate",rawName:"v-validate:month",value:(_vm.validated.expMonth),expression:"validated.expMonth",arg:"month"}],ref:"expMonth",staticClass:"credit-card-field-month",attrs:{"disabled":_vm.activity,"errors":_vm.currentErrors,"custom":"","id":"expMonth","name":"expMonth","label":"Month","placeholder":"Month"},nativeOn:{"valid":function($event){return (function () { return _vm.onValid('expMonth', 'expYear'); })($event)}},model:{value:(_vm.card.expMonth),callback:function ($$v) {_vm.$set(_vm.card, "expMonth", $$v)},expression:"card.expMonth"}},_vm._l((12),function(i){return _c('option',{key:i},[_vm._v(_vm._s(_vm.padZero(i, 2)))])}),0),_c('select-field',{directives:[{name:"bubble",rawName:"v-bubble"},{name:"bubble",rawName:"v-bubble:blur",value:(_vm.onBlur),expression:"onBlur",arg:"blur"},{name:"bubble",rawName:"v-bubble:focus",value:(function () { return _vm.focused = 'expYear'; }),expression:"() => focused = 'expYear'",arg:"focus"},{name:"validate",rawName:"v-validate:year",value:(_vm.validated.expYear),expression:"validated.expYear",arg:"year"}],ref:"expYear",staticClass:"credit-card-field-year",attrs:{"disabled":_vm.activity,"errors":_vm.currentErrors,"custom":"","id":"expYear","name":"expYear","label":"Year","placeholder":"Year"},nativeOn:{"valid":function($event){return (function () { return _vm.onValid('expYear', 'cvc'); })($event)}},model:{value:(_vm.card.expYear),callback:function ($$v) {_vm.$set(_vm.card, "expYear", $$v)},expression:"card.expYear"}},_vm._l((_vm.years),function(i){return _c('option',{key:i},[_vm._v(_vm._s(i))])}),0),_c('input-field',{directives:[{name:"bubble",rawName:"v-bubble"},{name:"bubble",rawName:"v-bubble:blur",value:(_vm.onBlur),expression:"onBlur",arg:"blur"},{name:"bubble",rawName:"v-bubble:focus",value:(function () { return _vm.focused = 'cvc'; }),expression:"() => focused = 'cvc'",arg:"focus"},{name:"validate",rawName:"v-validate:cvc",value:(_vm.validated.cvc),expression:"validated.cvc",arg:"cvc"}],ref:"cvc",staticClass:"credit-card-field-cvc",attrs:{"disabled":_vm.activity,"errors":_vm.currentErrors,"maxlength":_vm.code && _vm.code.size,"label":_vm.code && _vm.code.name || 'CVC',"placeholder":_vm.code && _vm.code.name || 'CVC',"validator":function () { return _vm.type && _vm.type.code.size; },"custom":"","id":"cvc","name":"cvc"},nativeOn:{"valid":function($event){return (function () { return _vm.onValid('cvc', 'zip'); })($event)}},model:{value:(_vm.card.cvc),callback:function ($$v) {_vm.$set(_vm.card, "cvc", $$v)},expression:"card.cvc"}}),(_vm.showZip)?_c('input-field',{directives:[{name:"bubble",rawName:"v-bubble"},{name:"bubble",rawName:"v-bubble:blur",value:(_vm.onBlur),expression:"onBlur",arg:"blur"},{name:"bubble",rawName:"v-bubble:focus",value:(function () { return _vm.focused = 'zip'; }),expression:"() => focused = 'zip'",arg:"focus"},{name:"validate",rawName:"v-validate:zip",value:(_vm.validated.zip),expression:"validated.zip",arg:"zip"}],ref:"zip",staticClass:"credit-card-field-zip",attrs:{"disabled":_vm.activity,"errors":_vm.currentErrors,"validator":{minLength: 5},"custom":"","id":"zip","name":"zip","maxlength":"5","label":"Zip Code","placeholder":"Zip Code"},nativeOn:{"valid":function($event){return (function () { return _vm.onValid('zip'); })($event)}},model:{value:(_vm.card.zip),callback:function ($$v) {_vm.$set(_vm.card, "zip", $$v)},expression:"card.zip"}}):_vm._e()],1):_vm._e()])],1),_vm._t("default")],2),_vm._t("help",[(_vm.helpText)?_c('help-text',{domProps:{"innerHTML":_vm._s(_vm.helpText)}}):_vm._e()]),_vm._t("feedback",[(_vm.validFeedback)?_c('form-feedback',{attrs:{"valid":""},domProps:{"innerHTML":_vm._s(_vm.validFeedback)}}):_vm._e(),(_vm.invalidFeedback)?_c('form-feedback',{attrs:{"invalid":""},domProps:{"innerHTML":_vm._s(_vm.invalidFeedback)}}):_vm._e()])],2)}
var staticRenderFns = []
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Components/CreditCardField.vue?vue&type=template&id=62e89d3a&
// EXTERNAL MODULE: ./node_modules/vue-credit-card-field/src/icons.js
var icons = __webpack_require__("6123");
// EXTERNAL MODULE: ./node_modules/payment/lib/index.js
var lib = __webpack_require__("540a");
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Helpers/input.js
function input(el) {
return el.querySelector('input, textarea, select') || el;
}
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Helpers/attribute.js
function attribute(el, attr, value) {
input(el)[value ? 'setAttribute' : 'removeAttribute'](attr, value);
};
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Helpers/format.js
function format(cardNumber, type) {
if(!cardNumber || !type) {
return cardNumber;
}
cardNumber = cardNumber.replace(/[^\d\/]/g, '');
const parts = [], { gaps } = type;
const offsets = [].concat(0, gaps, cardNumber.length);
for(let i = 0; offsets[i] < cardNumber.length; i++) {
const start = offsets[i];
const end = Math.min(offsets[i + 1], cardNumber.length);
parts.push(cardNumber.substring(start, end));
}
return parts.join(' ');
};
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Helpers/set.js
function set_set(value) {
binding.expression.split('.').reduce((carry, attr) => {
if(vnode.context[attr] instanceof Object) {
return vnode.context[attr];
}
else {
vnode.context.$set(carry, attr, value);
}
}, null);
}
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Helpers/shouldFormat.js
function shouldFormat(e) {
return (
!e.altKey &&
!e.ctrlKey &&
!e.metaKey &&
!e.shiftyKey
);
};
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Helpers/value.js
function value_value(subject) {
if(subject instanceof Function) {
return subject();
}
return subject;
}
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Helpers/index.js
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Directives/Bubble.js
/* harmony default export */ var Bubble = ({
bind(el, { arg, value }, vnode) {
input(el).addEventListener(arg, e => {
if(value instanceof Function) {
value(e);
}
vnode.context.$emit(arg, e);
});
}
});
// EXTERNAL MODULE: ./node_modules/card-validator/index.js
var card_validator = __webpack_require__("d07d");
var card_validator_default = /*#__PURE__*/__webpack_require__.n(card_validator);
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Directives/Validate.js
const METHODS = {
'cvc': 'cvv',
'zip': 'postalCode',
'date': 'expirationDate',
'year': 'expirationYear',
'month': 'expirationMonth'
};
card_validator_default.a.name = function name(value) {
const isValid = value && value.length;
const isPotentiallyValid = isValid || !value;
return {
isValid,
isPotentiallyValid
};
};
/* harmony default export */ var Validate = ({
bind(el, binding, vnode) {
const method = card_validator_default.a[binding.arg] || card_validator_default.a[METHODS[binding.arg]];
if(!binding.arg || !method) {
throw Error('An argument with a valid method is required for v-validate.');
}
let prevValue;
function get() {
return binding.expression.split('.').reduce((carry, attr) => {
return carry[attr];
}, vnode.context);
}
function set(value) {
binding.expression.split('.').reduce((carry, attr) => {
if(vnode.context[attr] instanceof Object) {
return vnode.context[attr];
}
else {
vnode.context.$set(carry, attr, value);
}
}, null);
}
function validate(force = false) {
return e => {
if( shouldFormat(e) &&
!!e.target.value &&
(e.target.value !== prevValue || force)) {
dispatch(e.target.value, force);
prevValue = e.target.value;
}
};
}
function dispatch(str, force = false) {
const response = method(str, value_value(vnode.data.attrs.validator));
if(!response.isValid && (!response.isPotentiallyValid || force)) {
el.dispatchEvent(new Event('invalid'));
}
else if(response.isValid) {
el.dispatchEvent(new Event('valid'));
}
else if(response.isPotentiallyValid) {
el.dispatchEvent(new Event('potentially-valid'));
}
el.dispatchEvent(Object.assign(new Event('validate'), {
response
}));
}
const inputEl = input(el);
inputEl.addEventListener('paste', () => {
setTimeout(() => {
dispatch(inputEl.value);
});
});
inputEl.addEventListener('revalidate', dispatch);
inputEl.addEventListener('blur', validate(true));
if(inputEl.tagName === 'SELECT') {
inputEl.addEventListener('change', e => {
set(null);
setTimeout(() => {
dispatch(inputEl.value);
});
});
}
else {
inputEl.addEventListener('keyup', validate());
}
inputEl.addEventListener('keydown', e => {
if(shouldFormat(e)) {
prevValue = e.target.value;
}
});
el.addEventListener('valid', e => set(true));
el.addEventListener('invalid', e => set(false));
el.addEventListener('potentially-valid', e => set(null));
el.addEventListener('validate', ({ response }) => {
vnode.componentInstance.$emit('validate', el, response, get());
});
if(inputEl.value) {
if(get() !== false) {
set(null);
dispatch(inputEl.value);
}
}
}
});
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Directives/CardNumber.js
/* harmony default export */ var CardNumber = ({
bind(el, binding, vnode) {
let prevValue;
function dispatch(value, force = false) {
const types = Object(card_validator["creditCardType"])(value);
value = JSON.stringify(types);
if(value !== prevValue || force) {
event = new Event('card-types');
event.types = types;
el.dispatchEvent(event);
}
prevValue = value;
return types;
}
el.addEventListener('paste', e => {
const clipboardData = e.clipboardData || window.clipboardData;
const value = clipboardData.getData('text/plain');
dispatch(value);
});
el.addEventListener('keyup', e => {
if(shouldFormat(e)) {
dispatch(e.target.value);
}
});
el.addEventListener('card-types', ({ types }) => {
const [ type ] = types;
attribute(el, 'maxlength', type && (type.gaps.length + type.lengths.pop()));
});
const { value } = input(el);
if(value) {
vnode.context.$nextTick(() => dispatch(value, true));
}
}
});
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Mixins/Variant/index.js + 1 modules
var Variant = __webpack_require__("485b");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Components/HelpText/index.js + 5 modules
var HelpText = __webpack_require__("5138");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Helpers/Functions/index.js + 33 modules
var Functions = __webpack_require__("ca14");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Mixins/FormControl/index.js + 3 modules
var FormControl = __webpack_require__("0ab3");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Components/FormGroup/index.js + 5 modules
var FormGroup = __webpack_require__("2848");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Components/InputField/index.js + 5 modules
var InputField = __webpack_require__("46d8");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Mixins/MergeClasses/index.js + 1 modules
var MergeClasses = __webpack_require__("bc02");
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7ef6bfa2-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-interface/src/Components/AnimateCss/AnimateCss.vue?vue&type=template&id=46781450&
var AnimateCssvue_type_template_id_46781450_render = function () {
var this$1 = this;
var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"mode":_vm.mode,"enter-class":_vm.enterClass,"enter-to-class":_vm.enterToClass,"enter-active-class":_vm.enterActiveClassName,"leave-class":_vm.leaveClass,"leave-to-class":_vm.leaveToClass,"leave-active-class":_vm.leaveActiveClassName},on:{"before-enter":function () {
var ref;
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
return (ref = this$1).$emit.apply(ref, [ 'before-enter' ].concat( args ));
},"enter":function () {
var ref;
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
return (ref = this$1).$emit.apply(ref, [ 'enter' ].concat( args ));
},"after-enter":function () {
var ref;
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
return (ref = this$1).$emit.apply(ref, [ 'after-enter' ].concat( args ));
},"before-leave":function () {
var ref;
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
return (ref = this$1).$emit.apply(ref, [ 'before-leave' ].concat( args ));
},"leave":function () {
var ref;
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
return (ref = this$1).$emit.apply(ref, [ 'leave' ].concat( args ));
},"after-leave":function () {
var ref;
var args = [], len = arguments.length;
while ( len-- ) args[ len ] = arguments[ len ];
return (ref = this$1).$emit.apply(ref, [ 'after-leave' ].concat( args ));
}}},[_vm._t("default")],2)}
var AnimateCssvue_type_template_id_46781450_staticRenderFns = []
// CONCATENATED MODULE: ./node_modules/vue-interface/src/Components/AnimateCss/AnimateCss.vue?vue&type=template&id=46781450&
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Helpers/Functions/camelCase.js
var camelCase = __webpack_require__("fea0");
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-interface/src/Components/AnimateCss/AnimateCss.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var AnimateCssvue_type_script_lang_js_ = ({
props: {
delay: [String, Number, Function],
duration: [String, Number, Function],
mode: String,
enter: String,
enterClass: String,
leave: String,
enterToClass: String,
enterActiveClass: String,
leaveClass: String,
leaveToClass: String,
leaveActiveClass: String,
x: Boolean,
y: Boolean,
big: Boolean,
up: Boolean,
down: Boolean,
left: Boolean,
right: Boolean,
animated: {
type: Boolean,
default: true
},
name: String,
direction: {
type: String,
default() {
return (
this.x && 'x' ||
this.y && 'y' ||
this.up && 'up' ||
this.down && 'down' ||
this.left && 'left' ||
this.right && 'right'
) || undefined;
},
validate(value) {
return ['up', 'down', 'left', 'right'].indexOf(value.toLowerCase()) !== -1;
}
},
directionEffects: {
type: Array,
default: () => ([
'bounce',
'fade',
'flip',
'lightspeed',
'rotate',
'roll',
'slide',
'zoom'
])
},
special: {
type: Boolean,
default() {
return this.name && this.directionEffects.indexOf(this.name.toLowerCase()) === -1;
}
}
},
computed: {
enterActiveClassName() {
return this.enter && `${this.enter} ${this.animated && 'animated'}` ||
this.activeClass('in', this.enterActiveClass);
},
leaveActiveClassName() {
return this.leave && `${this.leave} ${this.animated && 'animated'}` ||
this.activeClass('out', this.leaveActiveClass);
}
},
updated() {
if(this.$slots.default && this.$slots.default.length) {
const [{ elm }] = this.$slots.default;
for(let attr of ['duration', 'delay']) {
const value = this[attr] instanceof Function
? this[attr]()
: this[attr];
elm.style[Object(camelCase["a" /* default */])(`animation_${attr}`)] = value;
}
}
/*
const duration = this.duration instanceof Function ? this.duration() : this.duration;
if(duration && this.$slots.default && this.$slots.default.length) {
const el = this.$slots.default[0].elm;
if(el.style.animationDuration !== duration) {
el.style.animationDuration = duration;
}
}
const delay = this.delay instanceof Function ? this.delay() : this.delay;
if(delay && this.$slots.default && this.$slots.default.length) {
const el = this.$slots.default[0].elm;
if(el.style.animationDelay !== delay) {
el.style.animationDelay = delay;
}
}
*/
},
methods: {
activeClass(key, ...classes) {
return [
Object(camelCase["a" /* default */])([
this.name,
!this.special && key,
this.direction,
this.big && 'big'
].filter(value => !!value).join(' '))
]
.concat([
this.animated && 'animated'
])
.concat(classes)
.join(' ');
}
}
});
// CONCATENATED MODULE: ./node_modules/vue-interface/src/Components/AnimateCss/AnimateCss.vue?vue&type=script&lang=js&
/* harmony default export */ var AnimateCss_AnimateCssvue_type_script_lang_js_ = (AnimateCssvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Components/AnimateCss/AnimateCss.vue?vue&type=style&index=0&lang=scss&
var AnimateCssvue_type_style_index_0_lang_scss_ = __webpack_require__("253b");
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__("2877");
// CONCATENATED MODULE: ./node_modules/vue-interface/src/Components/AnimateCss/AnimateCss.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
AnimateCss_AnimateCssvue_type_script_lang_js_,
AnimateCssvue_type_template_id_46781450_render,
AnimateCssvue_type_template_id_46781450_staticRenderFns,
false,
null,
null,
null
)
/* harmony default export */ var AnimateCss = (component.exports);
// CONCATENATED MODULE: ./node_modules/vue-interface/src/Components/AnimateCss/index.js
/* harmony default export */ var Components_AnimateCss = (AnimateCss);
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Components/SelectField/index.js + 5 modules
var SelectField = __webpack_require__("8cec");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Components/FormFeedback/index.js + 5 modules
var FormFeedback = __webpack_require__("a892");
// EXTERNAL MODULE: ./node_modules/@fortawesome/vue-fontawesome/index.es.js
var index_es = __webpack_require__("ad3d");
// EXTERNAL MODULE: ./node_modules/vue-interface/src/Components/ActivityIndicator/index.js + 16 modules
var ActivityIndicator = __webpack_require__("a633");
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-credit-card-field/src/Components/CreditCardField.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
const ICONS = {
'american-express': 'amex'
};
/* harmony default export */ var CreditCardFieldvue_type_script_lang_js_ = ({
name: 'CreditCardField',
mixins: [
MergeClasses["a" /* default */],
Variant["a" /* default */],
FormControl["a" /* default */]
],
components: {
Icon: index_es["a" /* FontAwesomeIcon */],
HelpText: HelpText["a" /* default */],
FormGroup: FormGroup["default"],
AnimateCss: Components_AnimateCss,
InputField: InputField["default"],
SelectField: SelectField["default"],
FormFeedback: FormFeedback["default"],
ActivityIndicator: ActivityIndicator["default"]
},
props: {
activity: {
type: Boolean,
default: false
},
name: String,
number: [Number, String],
expMonth: String,
expYear: String,
cvc: String,
zip: String,
showName: {
type: Boolean,
default() {
return !!this.name;
}
},
showZip: {
type: Boolean,
default() {
return !!this.zip;
}
}
},
directives: {
Bubble: Bubble,
Validate: Validate,
CardNumber: CardNumber
},
watch: {
card: {
deep: true,
handler(value) {
this.$emit('input', Object.assign(this.blankCard(), value));
}
},
validated: {
deep: true,
handler(value, oldValue) {
const entries = Object.entries(value);
entries.forEach(([key, value]) => {
this.$set(this.currentErrors, key, value === false ? (this.currentErrors[key] || true) : false);
});
if(this.showSecurityFields) {
this.$nextTick(() => {
if(this.totalFields === this.totalValidFields) {
this.isValid = true;
}
else if(this.totalInvalidFields) {
this.isValid = false;
}
else {
this.isValid = null;
}
});
}
}
},
['card.number'](value) {
this.card.number = value ? value.replace(/\s/g, '') : value;
},
['card.numberFormatted'](value) {
this.$set(this.card, 'number', value);
this.$set(this.card, 'numberFormatted', format(value, this.type));
},
['card.expMonth'](value) {
this.updateExpiration();
},
['card.expYear'](value) {
this.updateExpiration();
},
['validated.number'](value, old) {
if(!this.showSecurityFields && value === true) {
this.showSecurityFields = true;
}
},
isValid(value) {
if(value === true) {
this.dispatch('valid');
}
else if(value === false) {
this.dispatch('invalid');
}
},
showSecurityFields(value) {
this.$nextTick(() => {
const field = this.showName ? 'name' : 'expMonth';
this.$refs[field] && this.$refs[field].focus();
});
}
},
computed: {
invalidFeedback() {
return this.error || Object.entries(this.currentErrors)
.filter(([key, value]) => !!value && (typeof value === 'string'))
.map(([key, value]) => value.toString())
.join('<br>');
},
isPotentiallyValid() {
return this.isValid !== false;
},
totalFields() {
return Object.entries(this.$refs).length
},
totalValidFields() {
return Object.entries(this.validated)
.filter(([key, value]) => value === true)
.length;
},
totalInvalidFields() {
return Object.entries(this.validated)
.filter(([key, value]) => value === false)
.length;
},
hasErrors() {
return !!this.error || !!Object.entries(this.currentErrors)
.filter(([key, value]) => !!value)
.length;
},
years() {
const years = [], year = new Date().getFullYear();
for(let i = year; i < year + 15; i++) {
years.push(i);
}
return years;
}
},
methods: {
blankCard(defaultValues) {
return Object(Functions["o" /* pickBy */])(Object.assign({
number: null,
numberFormatted: null,
expMonth: null,
expYear: null,
expiration: null,
name: this.showName ? null : undefined,
zip: this.showZip ? null : undefined,
}, defaultValues || {}), value => value !== undefined);
},
dispatch(event) {
this.$emit(event, {
card: this.card,
type: this.type,
isValid: this.isValid,
isPotentiallyValid: this.isPotentiallyValid,
input: {
el: this.$el.querySelector(':focus'),
isValid: null,
isPotentiallyValid: null,
}
});
},
padZero(num, places) {
const zero = places - num.toString().length + 1;
return Array(+(zero > 0 && zero)).join('0') + num;
},
updateExpiration() {
if(this.card.expMonth && this.card.expYear) {
this.$set(this.card, 'expiration', `${this.card.expMonth} / ${this.card.expYear}`);
}
},
onBlur() {
setTimeout(() => {
if(!this.$el.querySelector(':focus')) {
this.focused = null;
}
});
},
onValid(current, next) {
if(this.$refs[current] && this.$refs[current].$el.querySelector(':focus')) {
if(this.$refs[next] && this.$refs[next].$el.classList.contains('is-empty')) {
input(this.$refs[next].$el).focus();
}
else if(!this.$refs[next]) {
input(this.$refs[current].$el).blur();
}
}
},
onValidate(el, { isValid, isPotentiallyValid }) {
this.$emit('change', {
card: this.card,
type: this.type,
isValid: this.isValid === true,
isPotentiallyValid: this.isPotentiallyValid,
input: {
el,
isValid,
isPotentiallyValid
}
});
},
onCardTypeChange({ types }) {
const [ type ] = types;
this.type = type;
this.code = type && type.code;
this.icon = type && `cc-${(ICONS[type.type] || type.type)}`;
this.$set(this.card, 'brand', type ? type.type : null);
this.$set(this.card, 'numberFormatted', format(this.card.number, this.type));
this.$refs.number.$el.dispatchEvent(new Event('revalidate'));
}
},
created() {
this.card.numberFormatted = this.card.number;
this.updateExpiration();
},
data() {
const card = this.blankCard({
number: this.number,
expMonth: this.expMonth,
expYear: this.expYear,
cvc: this.cvc,
zip: this.zip,
name: this.name
});
const validated = Object.keys(card)
.reduce((carry, value) => {
carry[value] = this.errors[value] ? false : null;
return carry;
}, {});
return {
card,
validated,
icon: null,
code: null,
type: null,
focused: null,
isValid: null,
showSecurityFields: !!card.number,
currentErrors: Object.assign({
number: this.error
}, this.errors)
}
}
});
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Components/CreditCardField.vue?vue&type=script&lang=js&
/* harmony default export */ var Components_CreditCardFieldvue_type_script_lang_js_ = (CreditCardFieldvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-credit-card-field/src/Components/CreditCardField.vue?vue&type=style&index=0&lang=scss&
var CreditCardFieldvue_type_style_index_0_lang_scss_ = __webpack_require__("b781");
// CONCATENATED MODULE: ./node_modules/vue-credit-card-field/src/Components/CreditCardField.vue
/* normalize component */
var CreditCardField_component = Object(componentNormalizer["a" /* default */])(
Components_CreditCardFieldvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
null
)
/* harmony default export */ var CreditCardField = __webpack_exports__["default"] = (CreditCardField_component.exports);
/***/ }),
/***/ "7913":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var luhn10 = __webpack_require__("7e86");
var getCardTypes = __webpack_require__("dd3d");
function verification(card, isPotentiallyValid, isValid) {
return {card: card, isPotentiallyValid: isPotentiallyValid, isValid: isValid};
}
function cardNumber(value, options) {
var potentialTypes, cardType, isPotentiallyValid, isValid, i, maxLength;
options = options || {};
if (typeof value === 'number') {
value = String(value);
}
if (typeof value !== 'string') { return verification(null, false, false); }
value = value.replace(/\-|\s/g, '');
if (!/^\d*$/.test(value)) { return verification(null, false, false); }
potentialTypes = getCardTypes(value);
if (potentialTypes.length === 0) {
return verification(null, false, false);
} else if (potentialTypes.length !== 1) {
return verification(null, true, false);
}
cardType = potentialTypes[0];
if (options.maxLength && value.length > options.maxLength) {
return verification(cardType, false, false);
}
if (cardType.type === getCardTypes.types.UNIONPAY && options.luhnValidateUnionPay !== true) {
isValid = true;
} else {
isValid = luhn10(value);
}
maxLength = Math.max.apply(null, cardType.lengths);
if (options.maxLength) {
maxLength = Math.min(options.maxLength, maxLength);
}
for (i = 0; i < cardType.lengths.length; i++) {
if (cardType.lengths[i] === value.length) {
isPotentiallyValid = value.length < maxLength || isValid;
return verification(cardType, isPotentiallyValid, isValid);
}
}
return verification(cardType, value.length < maxLength, false);
}
module.exports = cardNumber;
/***/ }),
/***/ "7e86":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
* Luhn algorithm implementation in JavaScript
* Copyright (c) 2009 Nicholas C. Zakas
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
function luhn10(identifier) {
var sum = 0;
var alt = false;
var i = identifier.length - 1;
var num;
while (i >= 0) {
num = parseInt(identifier.charAt(i), 10);
if (alt) {
num *= 2;
if (num > 9) {
num = (num % 10) + 1; // eslint-disable-line no-extra-parens
}
}
alt = !alt;
sum += num;
i--;
}
return sum % 10 === 0;
}
module.exports = luhn10;
/***/ }),
/***/ "9f23":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function isValidInputType(cardNumber) {
return typeof cardNumber === 'string' || cardNumber instanceof String;
}
module.exports = isValidInputType;
/***/ }),
/***/ "b30b":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var DEFAULT_MIN_POSTAL_CODE_LENGTH = 3;
function verification(isValid, isPotentiallyValid) {
return {isValid: isValid, isPotentiallyValid: isPotentiallyValid};
}
function postalCode(value, options) {
var minLength;
options = options || {};
minLength = options.minLength || DEFAULT_MIN_POSTAL_CODE_LENGTH;
if (typeof value !== 'string') {
return verification(false, false);
} else if (value.length < minLength) {
return verification(false, true);
}
return verification(true, true);
}
module.exports = postalCode;
/***/ }),
/***/ "b781":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_css_loader_dist_cjs_js_ref_8_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_8_oneOf_1_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_cache_loader_dist_cjs_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_CreditCardField_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("dc2d");
/* harmony import */ var _vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_css_loader_dist_cjs_js_ref_8_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_8_oneOf_1_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_cache_loader_dist_cjs_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_CreditCardField_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_css_loader_dist_cjs_js_ref_8_oneOf_1_1_vue_loader_lib_loaders_stylePostLoader_js_postcss_loader_src_index_js_ref_8_oneOf_1_2_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_cache_loader_dist_cjs_js_ref_0_0_vue_loader_lib_index_js_vue_loader_options_CreditCardField_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/***/ "b91c":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var DEFAULT_VALID_NUMBER_OF_YEARS_IN_THE_FUTURE = 19;
function verification(isValid, isPotentiallyValid, isCurrentYear) {
return {
isValid: isValid,
isPotentiallyValid: isPotentiallyValid,
isCurrentYear: isCurrentYear || false
};
}
function expirationYear(value, maxElapsedYear) {
var currentFirstTwo, currentYear, firstTwo, len, twoDigitYear, valid, isCurrentYear;
maxElapsedYear = maxElapsedYear || DEFAULT_VALID_NUMBER_OF_YEARS_IN_THE_FUTURE;
if (typeof value !== 'string') {
return verification(false, false);
}
if (value.replace(/\s/g, '') === '') {
return verification(false, true);
}
if (!/^\d*$/.test(value)) {
return verification(false, false);
}
len = value.length;
if (len < 2) {
return verification(false, true);
}
currentYear = new Date().getFullYear();
if (len === 3) {
// 20x === 20x
firstTwo = value.slice(0, 2);
currentFirstTwo = String(currentYear).slice(0, 2);
return verification(false, firstTwo === currentFirstTwo);
}
if (len > 4) {
return verification(false, false);
}
value = parseInt(value, 10);
twoDigitYear = Number(String(currentYear).substr(2, 2));
if (len === 2) {
isCurrentYear = twoDigitYear === value;
valid = value >= twoDigitYear && value <= twoDigitYear + maxElapsedYear;
} else if (len === 4) {
isCurrentYear = currentYear === value;
valid = value >= currentYear && value <= currentYear + maxElapsedYear;
}
return verification(valid, valid, isCurrentYear);
}
module.exports = expirationYear;
/***/ }),
/***/ "b958":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var clone = __webpack_require__("446a");
var matches = __webpack_require__("4400");
function addMatchingCardsToResults(cardNumber, cardConfiguration, results) {
var i, pattern, patternLength, clonedCardConfiguration;
for (i = 0; i < cardConfiguration.patterns.length; i++) {
pattern = cardConfiguration.patterns[i];
if (!matches(cardNumber, pattern)) {
continue;
}
clonedCardConfiguration = clone(cardConfiguration);
if (Array.isArray(pattern)) {
patternLength = String(pattern[0]).length;
} else {
patternLength = String(pattern).length;
}
if (cardNumber.length >= patternLength) {
clonedCardConfiguration.matchStrength = patternLength;
}
results.push(clonedCardConfiguration);
break;
}
}
module.exports = addMatchingCardsToResults;
/***/ }),
/***/ "bb85":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var parseDate = __webpack_require__("38ad");
var expirationMonth = __webpack_require__("d849");
var expirationYear = __webpack_require__("b91c");
function verification(isValid, isPotentiallyValid, month, year) {
return {
isValid: isValid,
isPotentiallyValid: isPotentiallyValid,
month: month,
year: year
};
}
function expirationDate(value, maxElapsedYear) {
var date, monthValid, yearValid, isValidForThisYear;
if (typeof value === 'string') {
value = value.replace(/^(\d\d) (\d\d(\d\d)?)$/, '$1/$2');
date = parseDate(value);
} else if (value !== null && typeof value === 'object') {
date = {
month: String(value.month),
year: String(value.year)
};
} else {
return verification(false, false, null, null);
}
monthValid = expirationMonth(date.month);
yearValid = expirationYear(date.year, maxElapsedYear);
if (monthValid.isValid) {
if (yearValid.isCurrentYear) {
isValidForThisYear = monthValid.isValidForThisYear;
return verification(isValidForThisYear, isValidForThisYear, date.month, date.year);
}
if (yearValid.isValid) {
return verification(true, true, date.month, date.year);
}
}
if (monthValid.isPotentiallyValid && yearValid.isPotentiallyValid) {
return verification(false, true, null, null);
}
return verification(false, false, null, null);
}
module.exports = expirationDate;
/***/ }),
/***/ "d07d":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
module.exports = {
number: __webpack_require__("7913"),
expirationDate: __webpack_require__("bb85"),
expirationMonth: __webpack_require__("d849"),
expirationYear: __webpack_require__("b91c"),
cvv: __webpack_require__("f981"),
postalCode: __webpack_require__("b30b"),
creditCardType: __webpack_require__("dd3d")
};
/***/ }),
/***/ "d849":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
function verification(isValid, isPotentiallyValid, isValidForThisYear) {
return {
isValid: isValid,
isPotentiallyValid: isPotentiallyValid,
isValidForThisYear: isValidForThisYear || false
};
}
function expirationMonth(value) {
var month, result;
var currentMonth = new Date().getMonth() + 1;
if (typeof value !== 'string') {
return verification(false, false);
}
if (value.replace(/\s/g, '') === '' || value === '0') {
return verification(false, true);
}
if (!/^\d*$/.test(value)) {
return verification(false, false);
}
month = parseInt(value, 10);
if (isNaN(value)) {
return verification(false, false);
}
result = month > 0 && month < 13;
return verification(result, result, result && month >= currentMonth);
}
module.exports = expirationMonth;
/***/ }),
/***/ "dc2d":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
/***/ "dd3d":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var types = __webpack_require__("5f74");
var clone = __webpack_require__("446a");
var findBestMatch = __webpack_require__("3182");
var isValidInputType = __webpack_require__("9f23");
var addMatchingCardsToResults = __webpack_require__("b958");
var testOrder;
var customCards = {};
var cardNames = {
VISA: 'visa',
MASTERCARD: 'mastercard',
AMERICAN_EXPRESS: 'american-express',
DINERS_CLUB: 'diners-club',
DISCOVER: 'discover',
JCB: 'jcb',
UNIONPAY: 'unionpay',
MAESTRO: 'maestro',
ELO: 'elo',
MIR: 'mir',
HIPER: 'hiper',
HIPERCARD: 'hipercard'
};
var ORIGINAL_TEST_ORDER = [
cardNames.VISA,
cardNames.MASTERCARD,
cardNames.AMERICAN_EXPRESS,
cardNames.DINERS_CLUB,
cardNames.DISCOVER,
cardNames.JCB,
cardNames.UNIONPAY,
cardNames.MAESTRO,
cardNames.ELO,
cardNames.MIR,
cardNames.HIPER,
cardNames.HIPERCARD
];
testOrder = clone(ORIGINAL_TEST_ORDER);
function findType(type) {
return customCards[type] || types[type];
}
function getAllCardTypes() {
return testOrder.map(function (type) {
return clone(findType(type));
});
}
function getCardPosition(name, ignoreErrorForNotExisting) {
var position = testOrder.indexOf(name);
if (!ignoreErrorForNotExisting && position === -1) {
throw new Error('"' + name + '" is not a supported card type.');
}
return position;
}
function creditCardType(cardNumber) {
var bestMatch;
var results = [];
if (!isValidInputType(cardNumber)) {
return [];
}
if (cardNumber.length === 0) {
return getAllCardTypes(testOrder);
}
testOrder.forEach(function (type) {
var cardConfiguration = findType(type);
addMatchingCardsToResults(cardNumber, cardConfiguration, results);
});
bestMatch = findBestMatch(results);
if (bestMatch) {
return [bestMatch];
}
return results;
}
creditCardType.getTypeInfo = function (type) {
return clone(findType(type));
};
creditCardType.removeCard = function (name) {
var position = getCardPosition(name);
testOrder.splice(position, 1);
};
creditCardType.addCard = function (config) {
var existingCardPosition = getCardPosition(config.type, true);
customCards[config.type] = config;
if (existingCardPosition === -1) {
testOrder.push(config.type);
}
};
creditCardType.updateCard = function (cardType, updates) {
var clonedCard;
var originalObject = customCards[cardType] || types[cardType];
if (!originalObject) {
throw new Error('"' + cardType + '" is not a recognized type. Use `addCard` instead.');
}
if (updates.type && originalObject.type !== updates.type) {
throw new Error('Cannot overwrite type parameter.');
}
clonedCard = clone(originalObject, true);
Object.keys(clonedCard).forEach(function (key) {
if (updates[key]) {
clonedCard[key] = updates[key];
}
});
customCards[clonedCard.type] = clonedCard;
};
creditCardType.changeOrder = function (name, position) {
var currentPosition = getCardPosition(name);
testOrder.splice(currentPosition, 1);
testOrder.splice(position, 0, name);
};
creditCardType.resetModifications = function () {
testOrder = clone(ORIGINAL_TEST_ORDER);
customCards = {};
};
creditCardType.types = cardNames;
module.exports = creditCardType;
/***/ }),
/***/ "f981":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var DEFAULT_LENGTH = 3;
function includes(array, thing) {
var i = 0;
for (; i < array.length; i++) {
if (thing === array[i]) { return true; }
}
return false;
}
function max(array) {
var maximum = DEFAULT_LENGTH;
var i = 0;
for (; i < array.length; i++) {
maximum = array[i] > maximum ? array[i] : maximum;
}
return maximum;
}
function verification(isValid, isPotentiallyValid) {
return {isValid: isValid, isPotentiallyValid: isPotentiallyValid};
}
function cvv(value, maxLength) {
maxLength = maxLength || DEFAULT_LENGTH;
maxLength = maxLength instanceof Array ? maxLength : [maxLength];
if (typeof value !== 'string') { return verification(false, false); }
if (!/^\d*$/.test(value)) { return verification(false, false); }
if (includes(maxLength, value.length)) { return verification(true, true); }
if (value.length < Math.min.apply(null, maxLength)) { return verification(false, true); }
if (value.length > max(maxLength)) { return verification(false, false); }
return verification(true, true);
}
module.exports = cvv;
/***/ })
}]);
//# sourceMappingURL=GiveworksForm.common.vendors~vue-credit-card-field.js.map