2023-03-01 07:57:52 +01:00
|
|
|
/******/ (() => { // webpackBootstrap
|
|
|
|
var __webpack_exports__ = {};
|
|
|
|
/*!*************************************************************!*\
|
|
|
|
!*** ./resources/js/clients/payments/square-credit-card.js ***!
|
|
|
|
\*************************************************************/
|
|
|
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
|
|
|
|
|
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resol
|
|
|
|
|
|
|
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
|
|
|
|
|
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
|
|
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
|
|
|
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
|
|
|
|
|
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Invoice Ninja (https://invoiceninja.com).
|
|
|
|
*
|
|
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
|
|
*
|
|
|
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
|
|
|
*
|
|
|
|
* @license https://www.elastic.co/licensing/elastic-license
|
|
|
|
*/
|
|
|
|
var SquareCreditCard = /*#__PURE__*/function () {
|
|
|
|
function SquareCreditCard() {
|
|
|
|
_classCallCheck(this, SquareCreditCard);
|
|
|
|
|
|
|
|
this.appId = document.querySelector('meta[name=square-appId]').content;
|
|
|
|
this.locationId = document.querySelector('meta[name=square-locationId]').content;
|
|
|
|
this.isLoaded = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
_createClass(SquareCreditCard, [{
|
|
|
|
key: "init",
|
|
|
|
value: function () {
|
|
|
|
var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
|
|
var iframeContainer, toggleWithToken;
|
|
|
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
|
|
while (1) {
|
|
|
|
switch (_context.prev = _context.next) {
|
|
|
|
case 0:
|
|
|
|
this.payments = Square.payments(this.appId, this.locationId);
|
|
|
|
_context.next = 3;
|
|
|
|
return this.payments.card();
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
this.card = _context.sent;
|
|
|
|
_context.next = 6;
|
|
|
|
return this.card.attach('#card-container');
|
|
|
|
|
|
|
|
case 6:
|
|
|
|
this.isLoaded = true;
|
|
|
|
iframeContainer = document.querySelector('.sq-card-iframe-container');
|
|
|
|
|
|
|
|
if (iframeContainer) {
|
|
|
|
iframeContainer.setAttribute('style', '150px !important');
|
|
|
|
}
|
|
|
|
|
|
|
|
toggleWithToken = document.querySelector('.toggle-payment-with-token');
|
|
|
|
|
|
|
|
if (toggleWithToken) {
|
|
|
|
document.getElementById('card-container').classList.add('hidden');
|
|
|
|
}
|
|
|
|
|
|
|
|
case 11:
|
|
|
|
case "end":
|
|
|
|
return _context.stop();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, _callee, this);
|
|
|
|
}));
|
|
|
|
|
|
|
|
function init() {
|
|
|
|
return _init.apply(this, arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
return init;
|
|
|
|
}()
|
|
|
|
}, {
|
|
|
|
key: "completePaymentWithoutToken",
|
|
|
|
value: function () {
|
|
|
|
var _completePaymentWithoutToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(e) {
|
|
|
|
var result, verificationToken, verificationDetails, verificationResults, tokenBillingCheckbox;
|
|
|
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
|
|
while (1) {
|
|
|
|
switch (_context2.prev = _context2.next) {
|
|
|
|
case 0:
|
|
|
|
document.getElementById('errors').hidden = true;
|
|
|
|
e.target.parentElement.disabled = true;
|
|
|
|
_context2.next = 4;
|
|
|
|
return this.card.tokenize();
|
|
|
|
|
|
|
|
case 4:
|
|
|
|
result = _context2.sent;
|
|
|
|
_context2.prev = 5;
|
|
|
|
verificationDetails = {
|
|
|
|
amount: document.querySelector('meta[name=amount]').content,
|
|
|
|
billingContact: JSON.parse(document.querySelector('meta[name=square_contact]').content),
|
|
|
|
currencyCode: document.querySelector('meta[name=currencyCode]').content,
|
|
|
|
intent: 'CHARGE'
|
|
|
|
};
|
|
|
|
_context2.next = 9;
|
|
|
|
return this.payments.verifyBuyer(result.token, verificationDetails);
|
|
|
|
|
|
|
|
case 9:
|
|
|
|
verificationResults = _context2.sent;
|
|
|
|
verificationToken = verificationResults.token;
|
|
|
|
_context2.next = 16;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 13:
|
|
|
|
_context2.prev = 13;
|
|
|
|
_context2.t0 = _context2["catch"](5);
|
|
|
|
e.target.parentElement.disabled = true;
|
|
|
|
|
|
|
|
case 16:
|
|
|
|
document.querySelector('input[name="verificationToken"]').value = verificationToken;
|
|
|
|
|
|
|
|
if (!(result.status === 'OK')) {
|
|
|
|
_context2.next = 22;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
document.getElementById('sourceId').value = result.token;
|
|
|
|
tokenBillingCheckbox = document.querySelector('input[name="token-billing-checkbox"]:checked');
|
|
|
|
|
|
|
|
if (tokenBillingCheckbox) {
|
|
|
|
document.querySelector('input[name="store_card"]').value = tokenBillingCheckbox.value;
|
|
|
|
}
|
|
|
|
|
|
|
|
return _context2.abrupt("return", document.getElementById('server_response').submit());
|
|
|
|
|
|
|
|
case 22:
|
|
|
|
document.getElementById('errors').textContent = result.errors[0].message;
|
|
|
|
document.getElementById('errors').hidden = false;
|
|
|
|
e.target.parentElement.disabled = false;
|
|
|
|
|
|
|
|
case 25:
|
|
|
|
case "end":
|
|
|
|
return _context2.stop();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, _callee2, this, [[5, 13]]);
|
|
|
|
}));
|
|
|
|
|
|
|
|
function completePaymentWithoutToken(_x) {
|
|
|
|
return _completePaymentWithoutToken.apply(this, arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
return completePaymentWithoutToken;
|
|
|
|
}()
|
|
|
|
}, {
|
|
|
|
key: "completePaymentUsingToken",
|
|
|
|
value: function () {
|
|
|
|
var _completePaymentUsingToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(e) {
|
|
|
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
|
|
while (1) {
|
|
|
|
switch (_context3.prev = _context3.next) {
|
|
|
|
case 0:
|
|
|
|
e.target.parentElement.disabled = true;
|
|
|
|
return _context3.abrupt("return", document.getElementById('server_response').submit());
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
case "end":
|
|
|
|
return _context3.stop();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, _callee3);
|
|
|
|
}));
|
|
|
|
|
|
|
|
function completePaymentUsingToken(_x2) {
|
|
|
|
return _completePaymentUsingToken.apply(this, arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
return completePaymentUsingToken;
|
|
|
|
}()
|
|
|
|
/* SCA */
|
|
|
|
|
|
|
|
}, {
|
|
|
|
key: "verifyBuyer",
|
|
|
|
value: function () {
|
|
|
|
var _verifyBuyer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(token) {
|
|
|
|
var verificationDetails, verificationResults;
|
|
|
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
|
|
while (1) {
|
|
|
|
switch (_context4.prev = _context4.next) {
|
|
|
|
case 0:
|
|
|
|
verificationDetails = {
|
|
|
|
amount: document.querySelector('meta[name=amount]').content,
|
|
|
|
billingContact: document.querySelector('meta[name=square_contact]').content,
|
|
|
|
currencyCode: document.querySelector('meta[name=currencyCode]').content,
|
|
|
|
intent: 'CHARGE'
|
|
|
|
};
|
|
|
|
_context4.next = 3;
|
|
|
|
return this.payments.verifyBuyer(token, verificationDetails);
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
verificationResults = _context4.sent;
|
|
|
|
return _context4.abrupt("return", verificationResults.token);
|
|
|
|
|
|
|
|
case 5:
|
|
|
|
case "end":
|
|
|
|
return _context4.stop();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, _callee4, this);
|
|
|
|
}));
|
|
|
|
|
|
|
|
function verifyBuyer(_x3) {
|
|
|
|
return _verifyBuyer.apply(this, arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
return verifyBuyer;
|
|
|
|
}()
|
|
|
|
}, {
|
|
|
|
key: "handle",
|
|
|
|
value: function () {
|
|
|
|
var _handle = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
|
|
var _document$getElementB,
|
|
|
|
_this = this,
|
|
|
|
_document$getElementB2,
|
|
|
|
_document$getElementB3;
|
|
|
|
|
|
|
|
var toggleWithToken, _document$getElementB4;
|
|
|
|
|
|
|
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
|
|
while (1) {
|
|
|
|
switch (_context6.prev = _context6.next) {
|
|
|
|
case 0:
|
|
|
|
_context6.next = 2;
|
|
|
|
return this.init();
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
(_document$getElementB = document.getElementById('authorize-card')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.addEventListener('click', function (e) {
|
|
|
|
return _this.completePaymentWithoutToken(e);
|
|
|
|
});
|
|
|
|
(_document$getElementB2 = document.getElementById('pay-now')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.addEventListener('click', function (e) {
|
|
|
|
var tokenInput = document.querySelector('input[name=token]');
|
|
|
|
|
|
|
|
if (tokenInput.value) {
|
|
|
|
return _this.completePaymentUsingToken(e);
|
|
|
|
}
|
|
|
|
|
|
|
|
return _this.completePaymentWithoutToken(e);
|
|
|
|
});
|
|
|
|
Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
|
|
|
|
return element.addEventListener('click', function (element) {
|
|
|
|
document.getElementById('card-container').classList.add('hidden');
|
|
|
|
document.getElementById('save-card--container').style.display = 'none';
|
|
|
|
document.querySelector('input[name=token]').value = element.target.dataset.token;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
(_document$getElementB3 = document.getElementById('toggle-payment-with-credit-card')) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.addEventListener('click', /*#__PURE__*/function () {
|
|
|
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(element) {
|
|
|
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
|
|
while (1) {
|
|
|
|
switch (_context5.prev = _context5.next) {
|
|
|
|
case 0:
|
|
|
|
document.getElementById('card-container').classList.remove('hidden');
|
|
|
|
document.getElementById('save-card--container').style.display = 'grid';
|
|
|
|
document.querySelector('input[name=token]').value = '';
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
case "end":
|
|
|
|
return _context5.stop();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, _callee5);
|
|
|
|
}));
|
|
|
|
|
|
|
|
return function (_x4) {
|
|
|
|
return _ref.apply(this, arguments);
|
|
|
|
};
|
|
|
|
}());
|
|
|
|
toggleWithToken = document.querySelector('.toggle-payment-with-token');
|
|
|
|
|
|
|
|
if (!toggleWithToken) {
|
|
|
|
(_document$getElementB4 = document.getElementById('toggle-payment-with-credit-card')) === null || _document$getElementB4 === void 0 ? void 0 : _document$getElementB4.click();
|
|
|
|
}
|
|
|
|
|
|
|
|
case 8:
|
|
|
|
case "end":
|
|
|
|
return _context6.stop();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, _callee6, this);
|
|
|
|
}));
|
|
|
|
|
|
|
|
function handle() {
|
|
|
|
return _handle.apply(this, arguments);
|
|
|
|
}
|
|
|
|
|
|
|
|
return handle;
|
|
|
|
}()
|
|
|
|
}]);
|
|
|
|
|
|
|
|
return SquareCreditCard;
|
|
|
|
}();
|
|
|
|
|
|
|
|
new SquareCreditCard().handle();
|
|
|
|
/******/ })()
|
|
|
|
;
|