"+e.messages.message[0].code+": "+e.messages.message[0].text+"
"),document.getElementById("card_button").disabled=!1,document.querySelector("#card_button > svg").classList.add("hidden"),document.querySelector("#card_button > span").classList.remove("hidden")):"Ok"===e.messages.resultCode&&(document.getElementById("dataDescriptor").value=e.opaqueData.dataDescriptor,document.getElementById("dataValue").value=e.opaqueData.dataValue,document.getElementById("server_response").submit()),!1}},{key:"handle",value:function(){var e=this;return this.cardButton.addEventListener("click",(function(){e.cardButton.disabled=!e.cardButton.disabled,e.handleAuthorization()})),this}}])&&e(a.prototype,r),n&&e(a,n),Object.defineProperty(a,"prototype",{writable:!1}),t}();new t(document.querySelector('meta[name="authorize-public-key"]').content,document.querySelector('meta[name="authorize-login-id"]').content).handle()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +var __webpack_exports__ = {}; +/*!**************************************************************************!*\ + !*** ./resources/js/clients/payment_methods/authorize-authorize-card.js ***! + \**************************************************************************/ +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 AuthorizeAuthorizeCard = /*#__PURE__*/function () { + function AuthorizeAuthorizeCard(publicKey, loginId) { + _classCallCheck(this, AuthorizeAuthorizeCard); + + this.publicKey = publicKey; + this.loginId = loginId; + this.cardHolderName = document.getElementById("cardholder_name"); + this.cardButton = document.getElementById("card_button"); + } + + _createClass(AuthorizeAuthorizeCard, [{ + key: "handleAuthorization", + value: function handleAuthorization() { + var myCard = $('#my-card'); + var authData = {}; + authData.clientKey = this.publicKey; + authData.apiLoginID = this.loginId; + var cardData = {}; + cardData.cardNumber = myCard.CardJs('cardNumber').replace(/[^\d]/g, ''); + cardData.month = myCard.CardJs('expiryMonth').replace(/[^\d]/g, ''); + cardData.year = myCard.CardJs('expiryYear').replace(/[^\d]/g, ''); + cardData.cardCode = document.getElementById("cvv").value.replace(/[^\d]/g, ''); + ; + var secureData = {}; + secureData.authData = authData; + secureData.cardData = cardData; + document.getElementById('card_button').disabled = true; + document.querySelector('#card_button > svg').classList.remove('hidden'); + document.querySelector('#card_button > span').classList.add('hidden'); + Accept.dispatchData(secureData, this.responseHandler); + return false; + } + }, { + key: "responseHandler", + value: function responseHandler(response) { + if (response.messages.resultCode === "Error") { + var i = 0; + var $errors = $('#errors'); // get the reference of the div + + $errors.show().html("" + response.messages.message[i].code + ": " + response.messages.message[i].text + "
"); + document.getElementById('card_button').disabled = false; + document.querySelector('#card_button > svg').classList.add('hidden'); + document.querySelector('#card_button > span').classList.remove('hidden'); + } else if (response.messages.resultCode === "Ok") { + document.getElementById("dataDescriptor").value = response.opaqueData.dataDescriptor; + document.getElementById("dataValue").value = response.opaqueData.dataValue; + document.getElementById("server_response").submit(); + } + + return false; + } + }, { + key: "handle", + value: function handle() { + var _this = this; + + this.cardButton.addEventListener("click", function () { + _this.cardButton.disabled = !_this.cardButton.disabled; + + _this.handleAuthorization(); + }); + return this; + } + }]); + + return AuthorizeAuthorizeCard; +}(); + +var publicKey = document.querySelector('meta[name="authorize-public-key"]').content; +var loginId = document.querySelector('meta[name="authorize-login-id"]').content; +/** @handle */ + +new AuthorizeAuthorizeCard(publicKey, loginId).handle(); +/******/ })() +; \ No newline at end of file diff --git a/public/js/clients/payment_methods/authorize-checkout-card.js b/public/js/clients/payment_methods/authorize-checkout-card.js index 7aadb6be96c5..cf31ff489795 100644 --- a/public/js/clients/payment_methods/authorize-checkout-card.js +++ b/public/js/clients/payment_methods/authorize-checkout-card.js @@ -1,2 +1,59 @@ -/*! For license information please see authorize-checkout-card.js.LICENSE.txt */ -(()=>{function e(e,t){for(var n=0;n"+e.messages.message[0].code+": "+e.messages.message[0].text+"
"),document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}else if("Ok"===e.messages.resultCode){document.getElementById("dataDescriptor").value=e.opaqueData.dataDescriptor,document.getElementById("dataValue").value=e.opaqueData.dataValue;var t=document.querySelector("input[name=token-billing-checkbox]:checked");t&&(document.getElementById("store_card").value=t.value),document.getElementById("server_response").submit()}return!1})),t(this,"handle",(function(){Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach((function(e){return e.addEventListener("click",(function(e){document.getElementById("save-card--container").style.display="none",document.getElementById("authorize--credit-card-container").style.display="none",document.getElementById("token").value=e.target.dataset.token}))}));var e=document.getElementById("toggle-payment-with-credit-card");e&&e.addEventListener("click",(function(){document.getElementById("save-card--container").style.display="grid",document.getElementById("authorize--credit-card-container").style.display="flex",document.getElementById("token").value=null}));var t=document.getElementById("pay-now");return t&&t.addEventListener("click",(function(e){var t=document.getElementById("token");t.value?r.handlePayNowAction(t.value):r.handleAuthorization()})),r})),this.publicKey=e,this.loginId=a,this.cardHolderName=document.getElementById("cardholder_name")}var a,r,o;return a=n,(r=[{key:"handlePayNowAction",value:function(e){document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),document.getElementById("token").value=e,document.getElementById("server_response").submit()}}])&&e(a.prototype,r),o&&e(a,o),Object.defineProperty(a,"prototype",{writable:!1}),n}();new n(document.querySelector('meta[name="authorize-public-key"]').content,document.querySelector('meta[name="authorize-login-id"]').content).handle()})(); \ No newline at end of file +/******/ (() => { // webpackBootstrap +var __webpack_exports__ = {}; +/*!************************************************************************!*\ + !*** ./resources/js/clients/payments/authorize-credit-card-payment.js ***! + \************************************************************************/ +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; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +/** + * 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 AuthorizeAuthorizeCard = /*#__PURE__*/function () { + function AuthorizeAuthorizeCard(publicKey, loginId) { + var _this = this; + + _classCallCheck(this, AuthorizeAuthorizeCard); + + _defineProperty(this, "handleAuthorization", function () { + var myCard = $('#my-card'); + var authData = {}; + authData.clientKey = _this.publicKey; + authData.apiLoginID = _this.loginId; + var cardData = {}; + cardData.cardNumber = myCard.CardJs('cardNumber').replace(/[^\d]/g, ''); + cardData.month = myCard.CardJs('expiryMonth').replace(/[^\d]/g, ''); + cardData.year = myCard.CardJs('expiryYear').replace(/[^\d]/g, ''); + cardData.cardCode = document.getElementById("cvv").value.replace(/[^\d]/g, ''); + var secureData = {}; + secureData.authData = authData; + secureData.cardData = cardData; // If using banking information instead of card information, + // send the bankData object instead of the cardData object. + // + // secureData.bankData = bankData; + + var payNowButton = document.getElementById('pay-now'); + + if (payNowButton) { + document.getElementById('pay-now').disabled = true; + document.querySelector('#pay-now > svg').classList.remove('hidden'); + document.querySelector('#pay-now > span').classList.add('hidden'); + } + + Accept.dispatchData(secureData, _this.responseHandler); + return false; + }); + + _defineProperty(this, "responseHandler", function (response) { + if (response.messages.resultCode === "Error") { + var i = 0; + var $errors = $('#errors'); // get the reference of the div + + $errors.show().html("" + response.messages.message[i].code + ": " + response.messages.message[i].text + "
"); + document.getElementById('pay-now').disabled = false; + document.querySelector('#pay-now > svg').classList.add('hidden'); + document.querySelector('#pay-now > span').classList.remove('hidden'); + } else if (response.messages.resultCode === "Ok") { + document.getElementById("dataDescriptor").value = response.opaqueData.dataDescriptor; + document.getElementById("dataValue").value = response.opaqueData.dataValue; + var storeCard = document.querySelector('input[name=token-billing-checkbox]:checked'); + + if (storeCard) { + document.getElementById("store_card").value = storeCard.value; + } + + document.getElementById("server_response").submit(); + } + + return false; + }); + + _defineProperty(this, "handle", function () { + Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) { + return element.addEventListener('click', function (e) { + document.getElementById('save-card--container').style.display = 'none'; + document.getElementById('authorize--credit-card-container').style.display = 'none'; + document.getElementById('token').value = e.target.dataset.token; + }); + }); + var payWithCreditCardToggle = document.getElementById('toggle-payment-with-credit-card'); + + if (payWithCreditCardToggle) { + payWithCreditCardToggle.addEventListener('click', function () { + document.getElementById('save-card--container').style.display = 'grid'; + document.getElementById('authorize--credit-card-container').style.display = 'flex'; + document.getElementById('token').value = null; + }); + } + + var payNowButton = document.getElementById('pay-now'); + + if (payNowButton) { + payNowButton.addEventListener('click', function (e) { + var token = document.getElementById('token'); + token.value ? _this.handlePayNowAction(token.value) : _this.handleAuthorization(); + }); + } + + return _this; + }); + + this.publicKey = publicKey; + this.loginId = loginId; + this.cardHolderName = document.getElementById("cardholder_name"); + } + + _createClass(AuthorizeAuthorizeCard, [{ + key: "handlePayNowAction", + value: function handlePayNowAction(token_hashed_id) { + document.getElementById('pay-now').disabled = true; + document.querySelector('#pay-now > svg').classList.remove('hidden'); + document.querySelector('#pay-now > span').classList.add('hidden'); + document.getElementById("token").value = token_hashed_id; + document.getElementById("server_response").submit(); + } + }]); + + return AuthorizeAuthorizeCard; +}(); + +var publicKey = document.querySelector('meta[name="authorize-public-key"]').content; +var loginId = document.querySelector('meta[name="authorize-login-id"]').content; +/** @handle */ + +new AuthorizeAuthorizeCard(publicKey, loginId).handle(); +/******/ })() +; \ No newline at end of file diff --git a/public/js/clients/payments/braintree-credit-card.js b/public/js/clients/payments/braintree-credit-card.js index 307751827ef4..4d53b094f2c0 100644 --- a/public/js/clients/payments/braintree-credit-card.js +++ b/public/js/clients/payments/braintree-credit-card.js @@ -1,2 +1,147 @@ -/*! For license information please see braintree-credit-card.js.LICENSE.txt */ -(()=>{function e(e,t){for(var n=0;n{{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }} / {{ App\Models\RecurringInvoice::frequencyForKey($subscription->frequency_id) }}
{{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }}
{{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }} / {{ App\Models\RecurringInvoice::frequencyForKey($subscription->frequency_id) }}
{{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }}