/******/ (() => { // webpackBootstrap
var __webpack_exports__ = {};
/*!***************************************************************!*\
  !*** ./resources/js/clients/payments/checkout-credit-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 CheckoutCreditCard = /*#__PURE__*/function () {
  function CheckoutCreditCard() {
    _classCallCheck(this, CheckoutCreditCard);

    this.tokens = [];
  }

  _createClass(CheckoutCreditCard, [{
    key: "mountFrames",
    value: function mountFrames() {
      console.log('Mount checkout frames..');
    }
  }, {
    key: "handlePaymentUsingToken",
    value: function handlePaymentUsingToken(e) {
      document.getElementById('checkout--container').classList.add('hidden');
      document.getElementById('pay-now-with-token--container').classList.remove('hidden');
      document.getElementById('save-card--container').style.display = 'none';
      document.querySelector('input[name=token]').value = e.target.dataset.token;
    }
  }, {
    key: "handlePaymentUsingCreditCard",
    value: function handlePaymentUsingCreditCard(e) {
      var _document$querySelect;

      document.getElementById('checkout--container').classList.remove('hidden');
      document.getElementById('pay-now-with-token--container').classList.add('hidden');
      document.getElementById('save-card--container').style.display = 'grid';
      document.querySelector('input[name=token]').value = '';
      var payButton = document.getElementById('pay-button');
      var publicKey = (_document$querySelect = document.querySelector('meta[name="public-key"]').content) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
      var form = document.getElementById('payment-form');
      Frames.init(publicKey);
      Frames.addEventHandler(Frames.Events.CARD_VALIDATION_CHANGED, function (event) {
        payButton.disabled = !Frames.isCardValid();
      });
      Frames.addEventHandler(Frames.Events.CARD_TOKENIZATION_FAILED, function (event) {
        pay.button.disabled = false;
      });
      Frames.addEventHandler(Frames.Events.CARD_TOKENIZED, function (event) {
        payButton.disabled = true;
        document.querySelector('input[name="gateway_response"]').value = JSON.stringify(event);
        document.querySelector('input[name="store_card"]').value = document.querySelector('input[name=token-billing-checkbox]:checked').value;
        document.getElementById('server-response').submit();
      });
      form.addEventListener('submit', function (event) {
        event.preventDefault();
        Frames.submitCard();
      });
    }
  }, {
    key: "completePaymentUsingToken",
    value: function completePaymentUsingToken(e) {
      var btn = document.getElementById('pay-now-with-token');
      btn.disabled = true;
      btn.querySelector('svg').classList.remove('hidden');
      btn.querySelector('span').classList.add('hidden');
      document.getElementById('server-response').submit();
    }
  }, {
    key: "handle",
    value: function handle() {
      var _this = this;

      this.handlePaymentUsingCreditCard();
      Array.from(document.getElementsByClassName('toggle-payment-with-token')).forEach(function (element) {
        return element.addEventListener('click', _this.handlePaymentUsingToken);
      });
      document.getElementById('toggle-payment-with-credit-card').addEventListener('click', this.handlePaymentUsingCreditCard);
      document.getElementById('pay-now-with-token').addEventListener('click', this.completePaymentUsingToken);
    }
  }]);

  return CheckoutCreditCard;
}();

new CheckoutCreditCard().handle();
/******/ })()
;