"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DeferredBillingTerms = DeferredBillingTerms;
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; }
var CONSENT_AGE = 16;
function DeferredBillingTerms(_ref) {
  var _ref$isDeferredBillin = _ref.isDeferredBilling,
    isDeferredBilling = _ref$isDeferredBillin === void 0 ? false : _ref$isDeferredBillin,
    _ref$checkBoxTrackabl = _ref.checkBoxTrackableAttr,
    checkBoxTrackableAttr = _ref$checkBoxTrackabl === void 0 ? 'field-terms' : _ref$checkBoxTrackabl,
    _ref$trackableAttr = _ref.trackableAttr,
    trackableAttr = _ref$trackableAttr === void 0 ? 'deferred-billing-terms' : _ref$trackableAttr,
    _ref$errorMessage = _ref.errorMessage,
    errorMessage = _ref$errorMessage === void 0 ? 'Please accept our terms &amp; conditions' : _ref$errorMessage,
    _ref$inputId = _ref.inputId,
    inputId = _ref$inputId === void 0 ? 'accept-deferred-billing-terms' : _ref$inputId,
    _ref$fieldId = _ref.fieldId,
    fieldId = _ref$fieldId === void 0 ? 'accept-deferred-terms' : _ref$fieldId,
    _ref$isChecked = _ref.isChecked,
    isChecked = _ref$isChecked === void 0 ? false : _ref$isChecked,
    _ref$hasError = _ref.hasError,
    hasError = _ref$hasError === void 0 ? false : _ref$hasError;
  var labelClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--checkbox', {
    'o-forms-input--invalid': hasError
  }]);
  var inputProps = _objectSpread({
    id: "".concat(inputId),
    type: 'checkbox',
    name: "".concat(inputId),
    value: 'true',
    'data-trackable': checkBoxTrackableAttr,
    'aria-required': 'true',
    required: true
  }, isChecked && {
    defaultChecked: true
  });
  var divProps = _objectSpread({
    id: 'acceptTermsField',
    className: 'o-forms-field o-layout-typography ncf__validation-error',
    'data-validate': 'required,checked'
  }, isChecked && {
    'data-trackable': trackableAttr
  });
  return isDeferredBilling && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("p", {
    className: labelClassName
  }, /*#__PURE__*/_react["default"].createElement("span", {
    className: "ncf__paragraph"
  }, "I confirm I am ", CONSENT_AGE, " years or older and have read and agree to the", ' ', /*#__PURE__*/_react["default"].createElement("a", {
    className: "ncf__link--external",
    href: "https://help.ft.com/legal-privacy/terms-and-conditions/",
    title: "FT Legal Terms and Conditions help page",
    target: "_blank",
    rel: "noopener noreferrer",
    "data-trackable": "terms-and-conditions"
  }, "Terms & Conditions"), ".")), /*#__PURE__*/_react["default"].createElement("p", {
    className: labelClassName
  }, /*#__PURE__*/_react["default"].createElement("span", {
    className: "ncf__paragraph"
  }, "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 Customer Care through chat, phone or email.")), /*#__PURE__*/_react["default"].createElement("p", {
    className: labelClassName
  }, /*#__PURE__*/_react["default"].createElement("span", {
    className: "ncf__paragraph"
  }, "By placing my order, I acknowledge that my subscription will start 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("p", {
    className: labelClassName
  }, /*#__PURE__*/_react["default"].createElement("span", {
    className: "ncf__paragraph"
  }, "Find out more about our cancellation policy in our", ' ', /*#__PURE__*/_react["default"].createElement("a", {
    className: "ncf__link--external",
    href: "https://help.ft.com/legal-privacy/terms-and-conditions/",
    title: "FT Legal Terms and Conditions help page",
    target: "_blank",
    rel: "noopener noreferrer",
    "data-trackable": "terms-and-conditions"
  }, "Terms & Conditions"), ".")), /*#__PURE__*/_react["default"].createElement("p", {
    className: labelClassName
  }, /*#__PURE__*/_react["default"].createElement("span", {
    className: "ncf__paragraph"
  }, "Please note that if you fail to make payment for your Deferred Billing Plan within the due date your subscription will be automatically cancelled.", ' ', /*#__PURE__*/_react["default"].createElement("a", {
    className: "ncf__link--external",
    href: "https://help.ft.com/legal-privacy/terms-and-conditions/",
    title: "FT Legal Terms and Conditions help page",
    target: "_blank",
    rel: "noopener noreferrer",
    "data-trackable": "terms-and-conditions"
  }, "Terms & Conditions"), ".")), /*#__PURE__*/_react["default"].createElement("div", divProps, /*#__PURE__*/_react["default"].createElement("label", {
    className: labelClassName,
    htmlFor: inputId,
    id: fieldId
  }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", {
    className: "o-forms-input__label"
  }, "I agree with terms & conditions."), /*#__PURE__*/_react["default"].createElement("p", {
    className: "o-forms-input__error"
  }, errorMessage))));
}
DeferredBillingTerms.propTypes = {
  hasError: _propTypes["default"].bool,
  isChecked: _propTypes["default"].bool,
  isDeferredBilling: _propTypes["default"].bool,
  fieldId: _propTypes["default"].string,
  inputId: _propTypes["default"].string,
  trackableAttr: _propTypes["default"].string,
  errorMessage: _propTypes["default"].string
};