"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.AcceptTermsSubscription = AcceptTermsSubscription;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function AcceptTermsSubscription(_ref) {
  var _ref$hasError = _ref.hasError,
    hasError = _ref$hasError === void 0 ? false : _ref$hasError,
    _ref$isSignup = _ref.isSignup,
    isSignup = _ref$isSignup === void 0 ? false : _ref$isSignup,
    _ref$isEmbedded = _ref.isEmbedded,
    isEmbedded = _ref$isEmbedded === void 0 ? false : _ref$isEmbedded,
    _ref$isTrial = _ref.isTrial,
    isTrial = _ref$isTrial === void 0 ? false : _ref$isTrial,
    _ref$isPrintProduct = _ref.isPrintProduct,
    isPrintProduct = _ref$isPrintProduct === void 0 ? false : _ref$isPrintProduct,
    _ref$isSingleTerm = _ref.isSingleTerm,
    isSingleTerm = _ref$isSingleTerm === void 0 ? false : _ref$isSingleTerm,
    _ref$isNonRenewingSub = _ref.isNonRenewingSubscriptionTermType,
    isNonRenewingSubscriptionTermType = _ref$isNonRenewingSub === void 0 ? false : _ref$isNonRenewingSub,
    _ref$isTransition = _ref.isTransition,
    isTransition = _ref$isTransition === void 0 ? false : _ref$isTransition,
    _ref$transitionType = _ref.transitionType,
    transitionType = _ref$transitionType === void 0 ? null : _ref$transitionType,
    _ref$isDeferredBillin = _ref.isDeferredBilling,
    isDeferredBilling = _ref$isDeferredBillin === void 0 ? false : _ref$isDeferredBillin,
    _ref$additionalClassN = _ref.additionalClassNames,
    additionalClassNames = _ref$additionalClassN === void 0 ? [] : _ref$additionalClassN;
  var divProps = _objectSpread({
    id: 'acceptTermsField',
    className: (0, _classnames["default"])(['o-forms-field', 'o-layout-typography', 'ncf__validation-error'].concat((0, _toConsumableArray2["default"])(additionalClassNames))),
    'data-validate': 'required,checked'
  }, isSignup && {
    'data-trackable': 'sign-up-terms'
  });
  var labelClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--checkbox', {
    'o-forms-input--invalid': hasError
  }]);
  var inputProps = {
    id: 'termsAcceptance',
    type: 'checkbox',
    name: 'termsAcceptance',
    value: 'true',
    'data-trackable': 'field-terms',
    'aria-required': 'true',
    required: true
  };
  var autoRenewingTerms = !isSingleTerm && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-auto-renew o3-type-body-base"
  }, "I give consent for my chosen payment method to be charged automatically at the end of each subscription term until I cancel it by contacting", ' ', /*#__PURE__*/_react["default"].createElement("a", {
    href: "https://help.ft.com/help/contact-us/",
    target: isEmbedded ? '_top' : '_blank',
    rel: "noopener noreferrer"
  }, "customer care through chat, phone or email"), "."));
  if (isNonRenewingSubscriptionTermType) {
    return /*#__PURE__*/_react["default"].createElement("div", divProps, /*#__PURE__*/_react["default"].createElement("ul", {
      className: "o3-typography-ul ncf__accept-terms-list"
    }, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
      className: "terms-transition terms-transition--immediate"
    }, "I give consent for the chosen payment method to be charged automatically.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
      className: "terms-transition terms-transition--immediate"
    }, "By placing your order subject to the Terms & Conditions (save for section 2) referred to below, you are waiving your statutory right to cancel our contract within 14 days of payment. Your payment is a one-time payment collected at the time of checkout, and unsubscribing or cancelling at any point (whether before or after the 14-day period) will not entitle you to a refund.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
      className: "terms-transition o3-type-body-base"
    }, "Please see here for the complete", ' ', /*#__PURE__*/_react["default"].createElement("a", {
      href: "http://help.ft.com/help/legal-privacy/terms-conditions/",
      target: "_blank",
      rel: "noopener noreferrer"
    }, "Terms & Conditions"), "."))), /*#__PURE__*/_react["default"].createElement("label", {
      className: labelClassName,
      htmlFor: "termsAcceptance"
    }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", {
      className: "o-forms-input__label"
    }, "I agree to the above terms & conditions."), /*#__PURE__*/_react["default"].createElement("p", {
      className: "o-forms-input__error"
    }, "Please accept our terms & conditions")));
  }
  var transitionTerms = isTransition && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, transitionType === 'immediate' ? /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-transition terms-transition--immediate"
  }, "By placing my order, my subscription will start immediately and I am aware and agree that I will therefore lose my statutory right to cancel my subscription within 14 days of acceptance of my order. Any notice of cancellation that I provide will only take effect at the end of my subscription period and previously paid amounts are non-refundable, except in the event that there is a fault in the provision of the services.")) : /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-transition terms-transition--other"
  }, "By placing my order, I acknowledge that my subscription will start", isSingleTerm ? ' and the chosen payment method will be charged ' : ' ', "on the date given above. Any cancellation notice received after that date will take effect at the end of my subscription term and previously paid amounts are non-refundable.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-transition o3-type-body-base"
  }, "Find out more about our cancellation policy in our", ' ', /*#__PURE__*/_react["default"].createElement("a", {
    href: "http://help.ft.com/help/legal-privacy/terms-conditions/",
    target: "_blank",
    rel: "noopener noreferrer"
  }, "Terms & Conditions"), ".")));
  var deferredBillingTerms = isDeferredBilling && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-deferred"
  }, "Please note if you fail to make payment for your deferred billing plan within due date your subscription will be automatically cancelled."));
  var printSignupTermText = isTrial ? 'Credits for delivery suspension or delivery failure are not available during introductory offer periods.' : 'Credit for delivery suspensions is only available for hand-delivered subscriptions and is limited to a maximum of 48 issues per yearly subscription terms (8 issues per yearly FT Weekend subscription term).';
  var printTerms = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-print"
  }, printSignupTermText)), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-print o3-type-body-base"
  }, "Find out more about your delivery start date in our", ' ', /*#__PURE__*/_react["default"].createElement("a", {
    href: "http://help.ft.com/help/legal-privacy/terms-conditions/",
    target: isEmbedded ? '_top' : '_blank',
    rel: "noopener noreferrer"
  }, "Terms & Conditions"), ".")));
  var nonPrintTerms = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-signup"
  }, "By placing my order, my subscription will start immediately and I am aware and agree that I will therefore lose my statutory right to cancel my subscription within 14 days of acceptance of my order. Any notice of cancellation that I provide will only take effect at the end of my subscription period and previously paid amounts are non-refundable, except in the event that there is a fault in the provision of the services.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
    className: "terms-signup o3-type-body-base"
  }, "Find out more about our cancellation policy in our", ' ', /*#__PURE__*/_react["default"].createElement("a", {
    href: "https://help.ft.com/legal-privacy/terms-and-conditions/",
    target: isEmbedded ? '_top' : '_blank',
    rel: "noopener noreferrer"
  }, "Terms & Conditions"), ".")));
  var signupTerms = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isPrintProduct ? printTerms : nonPrintTerms);
  return /*#__PURE__*/_react["default"].createElement("div", divProps, /*#__PURE__*/_react["default"].createElement("ul", {
    className: "ncf__accept-terms-list"
  }, autoRenewingTerms, transitionTerms, signupTerms, deferredBillingTerms), /*#__PURE__*/_react["default"].createElement("label", {
    className: labelClassName,
    htmlFor: "termsAcceptance"
  }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", {
    className: "o-forms-input__label"
  }, "I agree to the above terms & conditions."), /*#__PURE__*/_react["default"].createElement("p", {
    className: "o-forms-input__error"
  }, "Please accept our terms & conditions")));
}
AcceptTermsSubscription.propTypes = {
  hasError: _propTypes["default"].bool,
  isSignup: _propTypes["default"].bool,
  isEmbedded: _propTypes["default"].bool,
  isTrial: _propTypes["default"].bool,
  isPrintProduct: _propTypes["default"].bool,
  isSingleTerm: _propTypes["default"].bool,
  isNonRenewingSubscriptionTermType: _propTypes["default"].bool,
  isTransition: _propTypes["default"].bool,
  transitionType: _propTypes["default"].string,
  isDeferredBilling: _propTypes["default"].bool,
  additionalClassNames: _propTypes["default"].arrayOf(_propTypes["default"].string)
};