@financial-times/n-conversion-forms 31.0.1 → 31.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/.babelrc.js +7 -0
  2. package/.storybook/main.js +18 -10
  3. package/.toolkitrc.yml +7 -0
  4. package/.toolkitstate/ci.json +2 -2
  5. package/README.md +1 -1
  6. package/dist/accept-terms-business.jsx +74 -0
  7. package/dist/accept-terms-business.spec.jsx +40 -0
  8. package/dist/accept-terms-privacy-policy.jsx +71 -0
  9. package/dist/accept-terms-subscription.jsx +150 -0
  10. package/dist/accept-terms.jsx +217 -0
  11. package/dist/app-banner.jsx +51 -0
  12. package/dist/b2c-partnership-confirmation.jsx +64 -0
  13. package/dist/billing-city.jsx +58 -0
  14. package/dist/billing-country.jsx +43 -0
  15. package/dist/billing-postcode.jsx +76 -0
  16. package/dist/company-name.jsx +78 -0
  17. package/dist/confirmation.jsx +117 -0
  18. package/dist/continue-reading.jsx +45 -0
  19. package/dist/country.jsx +106 -0
  20. package/dist/customer-care.jsx +52 -0
  21. package/dist/debug.jsx +50 -0
  22. package/dist/decision-maker.jsx +72 -0
  23. package/dist/deferred-billing-terms.jsx +112 -0
  24. package/dist/delivery-address-map.jsx +184 -0
  25. package/dist/delivery-address-type.jsx +74 -0
  26. package/dist/delivery-address.jsx +123 -0
  27. package/dist/delivery-city.jsx +70 -0
  28. package/dist/delivery-county.jsx +48 -0
  29. package/dist/delivery-instructions.jsx +123 -0
  30. package/dist/delivery-option.jsx +77 -0
  31. package/dist/delivery-po-box.jsx +75 -0
  32. package/dist/delivery-postcode.jsx +116 -0
  33. package/dist/delivery-security-instructions.jsx +72 -0
  34. package/dist/delivery-start-date.jsx +77 -0
  35. package/dist/education-job-title.jsx +67 -0
  36. package/dist/email.jsx +90 -0
  37. package/dist/error-page.jsx +45 -0
  38. package/dist/fieldset.jsx +58 -0
  39. package/dist/first-name.jsx +73 -0
  40. package/dist/form.jsx +29 -0
  41. package/dist/google-sign-in.jsx +24 -0
  42. package/dist/graduation-date.jsx +112 -0
  43. package/dist/index.jsx +432 -0
  44. package/dist/industry.jsx +81 -0
  45. package/dist/job-title.jsx +65 -0
  46. package/dist/last-name.jsx +73 -0
  47. package/dist/licence-confirmation.jsx +67 -0
  48. package/dist/licence-header.jsx +52 -0
  49. package/dist/licence-sign-in.jsx +36 -0
  50. package/dist/licence-title.jsx +46 -0
  51. package/dist/lite-sub-confirmation.jsx +118 -0
  52. package/dist/loader.jsx +54 -0
  53. package/dist/message.jsx +101 -0
  54. package/dist/message.spec.jsx +96 -0
  55. package/dist/organisation.jsx +73 -0
  56. package/dist/package-change.jsx +38 -0
  57. package/dist/password.jsx +95 -0
  58. package/dist/payment-term.jsx +328 -0
  59. package/dist/payment-type.jsx +213 -0
  60. package/dist/personal-title.jsx +94 -0
  61. package/dist/phone.jsx +85 -0
  62. package/dist/position.jsx +86 -0
  63. package/dist/progress-indicator.jsx +66 -0
  64. package/dist/province.jsx +80 -0
  65. package/dist/registration-confirmation.jsx +108 -0
  66. package/dist/responsibility.jsx +84 -0
  67. package/dist/section.jsx +20 -0
  68. package/dist/seven-day-pass-experiment-confirmation.jsx +93 -0
  69. package/dist/state.jsx +80 -0
  70. package/dist/submit.jsx +52 -0
  71. package/dist/text-input.jsx +78 -0
  72. package/dist/trial-banner.jsx +29 -0
  73. package/package.json +19 -19
  74. package/toolkit/run-storybook/.toolkitrc.yml +1 -0
  75. package/toolkit/run-storybook/index.js +17 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryOption = DeliveryOption;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _deliveryOptionMessages = require("../utils/delivery-option-messages");
12
+ var _supportedCountries = require("../helpers/supportedCountries");
13
+ function DeliveryOption(_ref) {
14
+ var _ref$fieldId = _ref.fieldId,
15
+ fieldId = _ref$fieldId === void 0 ? 'deliveryOptionField' : _ref$fieldId,
16
+ country = _ref.country,
17
+ _ref$productCode = _ref.productCode,
18
+ productCode = _ref$productCode === void 0 ? undefined : _ref$productCode,
19
+ _ref$options = _ref.options,
20
+ options = _ref$options === void 0 ? [] : _ref$options,
21
+ _ref$isSingle = _ref.isSingle,
22
+ isSingle = _ref$isSingle === void 0 ? false : _ref$isSingle;
23
+ var divClassName = (0, _classnames["default"])(['o-forms-field', 'ncf__delivery-option', {
24
+ 'ncf__delivery-option--single': isSingle
25
+ }]);
26
+ var FTShippingZone = (0, _supportedCountries.identifyFTShippingZone)(country);
27
+ return /*#__PURE__*/_react["default"].createElement("div", {
28
+ id: fieldId,
29
+ className: divClassName,
30
+ role: "group",
31
+ "aria-label": "Delivery options"
32
+ }, /*#__PURE__*/_react["default"].createElement("span", {
33
+ className: "o-forms-input o-forms-input--radio-round"
34
+ }, options.map(function (option) {
35
+ var value = option.value,
36
+ isValidDeliveryOption = option.isValidDeliveryOption,
37
+ isSelected = option.isSelected;
38
+ var deliveryOptionValue = (0, _deliveryOptionMessages.getDeliveryOption)(productCode, option, FTShippingZone);
39
+ if (!isValidDeliveryOption || !deliveryOptionValue) {
40
+ return null;
41
+ }
42
+
43
+ // in case the delivery option has a custom ID
44
+ var id = deliveryOptionValue.customId || value;
45
+ var inputProps = {
46
+ type: 'radio',
47
+ id: id,
48
+ name: 'deliveryOption',
49
+ value: value,
50
+ className: 'ncf__delivery-option__input',
51
+ defaultChecked: isSelected
52
+ };
53
+ return /*#__PURE__*/_react["default"].createElement("label", {
54
+ key: value,
55
+ className: "ncf__delivery-option__item",
56
+ htmlFor: id
57
+ }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", {
58
+ className: "o-forms-input__label ncf__delivery-option__label"
59
+ }, /*#__PURE__*/_react["default"].createElement("span", {
60
+ className: "ncf__delivery-option__title o-forms-title__main"
61
+ }, deliveryOptionValue.title), /*#__PURE__*/_react["default"].createElement("div", {
62
+ className: "ncf__delivery-option__description"
63
+ }, deliveryOptionValue.description)));
64
+ })));
65
+ }
66
+ DeliveryOption.propTypes = {
67
+ country: _propTypes["default"].oneOf(_supportedCountries.countriesSupportedISO).isRequired,
68
+ productCode: _propTypes["default"].string,
69
+ options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
70
+ value: _propTypes["default"].oneOf(['PV', 'HD', 'EV']),
71
+ isSelected: _propTypes["default"].bool,
72
+ deliveryOnPublicationDate: _propTypes["default"].bool,
73
+ flightMarket: _propTypes["default"].bool,
74
+ mailDelivery: _propTypes["default"].bool
75
+ })),
76
+ isSingle: _propTypes["default"].bool
77
+ };
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryPOBox = DeliveryPOBox;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var message = {
12
+ USA: 'A P.O. Box address is only deliverable by US Mail, and is subject to a delay of up to 5 business days. For delivery on the publication date, we recommend you enter a residential or business address.',
13
+ CAN: 'A P.O. Box address is only deliverable by Canada Post, and is subject to a delay of up to 5 business days. For delivery on the publication day, we recommend you enter a residential or business address.'
14
+ };
15
+ function DeliveryPOBox(_ref) {
16
+ var _ref$fieldId = _ref.fieldId,
17
+ fieldId = _ref$fieldId === void 0 ? 'deliveryPOBoxField' : _ref$fieldId,
18
+ _ref$inputId = _ref.inputId,
19
+ inputId = _ref$inputId === void 0 ? 'deliveryPOBox' : _ref$inputId,
20
+ _ref$hasError = _ref.hasError,
21
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
22
+ _ref$value = _ref.value,
23
+ value = _ref$value === void 0 ? '' : _ref$value,
24
+ _ref$isDisabled = _ref.isDisabled,
25
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
26
+ _ref$isHidden = _ref.isHidden,
27
+ isHidden = _ref$isHidden === void 0 ? false : _ref$isHidden,
28
+ _ref$maxlength = _ref.maxlength,
29
+ maxlength = _ref$maxlength === void 0 ? 50 : _ref$maxlength,
30
+ _ref$country = _ref.country,
31
+ country = _ref$country === void 0 ? '' : _ref$country;
32
+ var labelClassNames = (0, _classnames["default"])(['o-forms-field', 'ncf__validation-error', {
33
+ ncf__hidden: isHidden
34
+ }]);
35
+ var inputWrapperClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
36
+ 'o-forms-input--invalid': hasError
37
+ }]);
38
+ return /*#__PURE__*/_react["default"].createElement("label", {
39
+ id: fieldId,
40
+ className: labelClassNames,
41
+ "data-validate": "required",
42
+ htmlFor: inputId
43
+ }, /*#__PURE__*/_react["default"].createElement("span", {
44
+ className: "o-forms-title"
45
+ }, /*#__PURE__*/_react["default"].createElement("span", {
46
+ className: "o-forms-title__main"
47
+ }, "P.O. Box"), /*#__PURE__*/_react["default"].createElement("span", {
48
+ className: "o-forms-title__prompt"
49
+ }, message[country])), /*#__PURE__*/_react["default"].createElement("span", {
50
+ className: inputWrapperClassName
51
+ }, /*#__PURE__*/_react["default"].createElement("input", {
52
+ type: "text",
53
+ id: inputId,
54
+ name: inputId,
55
+ "data-trackable": "field-deliveryPOBox",
56
+ placeholder: "e.g. PO Box 1033",
57
+ maxLength: maxlength,
58
+ "aria-required": "true",
59
+ required: true,
60
+ disabled: isDisabled,
61
+ defaultValue: value
62
+ }), /*#__PURE__*/_react["default"].createElement("span", {
63
+ className: "o-forms-input__error"
64
+ }, "Please enter a valid P.O. Box address")));
65
+ }
66
+ DeliveryPOBox.propTypes = {
67
+ fieldId: _propTypes["default"].string,
68
+ inputId: _propTypes["default"].string,
69
+ value: _propTypes["default"].string,
70
+ hasError: _propTypes["default"].bool,
71
+ isDisabled: _propTypes["default"].bool,
72
+ isHidden: _propTypes["default"].bool,
73
+ maxlength: _propTypes["default"].number,
74
+ country: _propTypes["default"].string
75
+ };
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryPostcode = DeliveryPostcode;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _supportedCountries = require("../helpers/supportedCountries");
12
+ var _supportedPostcodeExamples = require("../helpers/supportedPostcodeExamples");
13
+ var postcodeLabel = Object.keys(_supportedCountries.countriesSupported).reduce(function (previous, countryCode) {
14
+ if (countryCode === 'USA') {
15
+ previous[countryCode] = 'Zip Code';
16
+ } else if (countryCode === 'GBR') {
17
+ previous[countryCode] = 'Postcode';
18
+ } else {
19
+ previous[countryCode] = 'Postal Code';
20
+ }
21
+ return previous;
22
+ }, {});
23
+ var promptLabel = Object.keys(_supportedCountries.countriesSupported).reduce(function (previous, countryCode) {
24
+ if (countryCode === 'USA') {
25
+ previous[countryCode] = 'Please enter your 5 digit Zip Code';
26
+ } else if (countryCode === 'CAN') {
27
+ previous[countryCode] = 'Please enter your 6 digit postal code';
28
+ } else if (countryCode !== 'GBR') {
29
+ //GBR has no label
30
+ previous[countryCode] = 'Please enter your postal code';
31
+ }
32
+ return previous;
33
+ }, {});
34
+ var placeholderLabel = Object.keys(_supportedPostcodeExamples.allSupportedPostcodeExamples).reduce(function (previous, countryCode) {
35
+ previous[countryCode] = 'e.g. ' + _supportedPostcodeExamples.allSupportedPostcodeExamples[countryCode];
36
+ return previous;
37
+ }, {});
38
+ function DeliveryPostcode(_ref) {
39
+ var _ref$value = _ref.value,
40
+ value = _ref$value === void 0 ? '' : _ref$value,
41
+ _ref$country = _ref.country,
42
+ country = _ref$country === void 0 ? '' : _ref$country,
43
+ _ref$isDisabled = _ref.isDisabled,
44
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
45
+ _ref$hasError = _ref.hasError,
46
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
47
+ _ref$isHidden = _ref.isHidden,
48
+ isHidden = _ref$isHidden === void 0 ? false : _ref$isHidden,
49
+ pattern = _ref.pattern,
50
+ additionalFieldInformation = _ref.additionalFieldInformation,
51
+ _ref$changePostcodeUr = _ref.changePostcodeUrl,
52
+ changePostcodeUrl = _ref$changePostcodeUr === void 0 ? '' : _ref$changePostcodeUr;
53
+ var postcodeReference = postcodeLabel[country.toUpperCase()] || 'Postcode';
54
+ var promptReference = promptLabel[country.toUpperCase()];
55
+ var placeholderReference = placeholderLabel[country.toUpperCase()] || "Enter your ".concat(postcodeReference);
56
+ var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
57
+ 'o-forms-input--invalid': hasError
58
+ }]);
59
+ var deliveryPostcodeFieldClassNames = (0, _classnames["default"])(['o-forms-field', {
60
+ ncf__hidden: isHidden
61
+ }]);
62
+ var fieldErrorClassNames = (0, _classnames["default"])(['o-forms-input__error', {
63
+ 'additional-field-information__with-field-error': additionalFieldInformation
64
+ }]);
65
+ return /*#__PURE__*/_react["default"].createElement("label", {
66
+ id: "deliveryPostcodeField",
67
+ className: deliveryPostcodeFieldClassNames,
68
+ "data-validate": "required",
69
+ htmlFor: "deliveryPostcode"
70
+ }, /*#__PURE__*/_react["default"].createElement("span", {
71
+ className: "o-forms-title"
72
+ }, /*#__PURE__*/_react["default"].createElement("span", {
73
+ className: "o-forms-title__main"
74
+ }, /*#__PURE__*/_react["default"].createElement("span", {
75
+ "data-reference": "postcode"
76
+ }, postcodeReference)), /*#__PURE__*/_react["default"].createElement("span", {
77
+ className: "o-forms-title__prompt"
78
+ }, promptReference)), /*#__PURE__*/_react["default"].createElement("span", {
79
+ className: inputWrapperClassNames
80
+ }, /*#__PURE__*/_react["default"].createElement("input", {
81
+ type: "text",
82
+ id: "deliveryPostcode",
83
+ name: "deliveryPostcode",
84
+ defaultValue: "".concat(value),
85
+ placeholder: placeholderReference,
86
+ autoComplete: "postal-code",
87
+ "data-trackable": "delivery-postcode",
88
+ "aria-required": "true",
89
+ required: true,
90
+ pattern: pattern,
91
+ disabled: isDisabled
92
+ }), /*#__PURE__*/_react["default"].createElement("span", {
93
+ className: fieldErrorClassNames
94
+ }, "Please enter a valid", ' ', /*#__PURE__*/_react["default"].createElement("span", {
95
+ "data-reference": "postcode"
96
+ }, postcodeReference), "."), additionalFieldInformation ? /*#__PURE__*/_react["default"].createElement("p", {
97
+ className: "additional-field-information"
98
+ }, additionalFieldInformation) : null, changePostcodeUrl ? /*#__PURE__*/_react["default"].createElement("a", {
99
+ href: changePostcodeUrl,
100
+ style: {
101
+ fontSize: '12px'
102
+ },
103
+ className: "change-postcode-url",
104
+ "data-trackable": "change-progress"
105
+ }, "Change ".concat(postcodeReference)) : null));
106
+ }
107
+ DeliveryPostcode.propTypes = {
108
+ country: _propTypes["default"].string,
109
+ value: _propTypes["default"].string,
110
+ pattern: _propTypes["default"].string,
111
+ isDisabled: _propTypes["default"].bool,
112
+ hasError: _propTypes["default"].bool,
113
+ isHidden: _propTypes["default"].bool,
114
+ additionalFieldInformation: _propTypes["default"].node,
115
+ changePostcodeUrl: _propTypes["default"].string
116
+ };
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliverySecurityInstructions = DeliverySecurityInstructions;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ 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; }
13
+ 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; }
14
+ function DeliverySecurityInstructions(_ref) {
15
+ var _ref$fieldId = _ref.fieldId,
16
+ fieldId = _ref$fieldId === void 0 ? 'deliverySecurityInstructionsField' : _ref$fieldId,
17
+ _ref$hasError = _ref.hasError,
18
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
19
+ _ref$inputId = _ref.inputId,
20
+ inputId = _ref$inputId === void 0 ? 'deliverySecurityInstructions' : _ref$inputId,
21
+ _ref$maxlength = _ref.maxlength,
22
+ maxlength = _ref$maxlength === void 0 ? null : _ref$maxlength,
23
+ _ref$rows = _ref.rows,
24
+ rows = _ref$rows === void 0 ? null : _ref$rows,
25
+ _ref$isDisabled = _ref.isDisabled,
26
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
27
+ _ref$placeholder = _ref.placeholder,
28
+ placeholder = _ref$placeholder === void 0 ? '' : _ref$placeholder,
29
+ _ref$value = _ref.value,
30
+ value = _ref$value === void 0 ? '' : _ref$value;
31
+ var textAreaWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--textarea', {
32
+ 'o-forms-input--invalid': hasError
33
+ }]);
34
+ var defaultPlaceholder = 'Please enter any secure information here, e.g. security gate access codes';
35
+ var textAreaProps = _objectSpread(_objectSpread(_objectSpread({
36
+ id: inputId,
37
+ name: inputId
38
+ }, maxlength && {
39
+ maxLength: maxlength
40
+ }), rows && {
41
+ rows: rows
42
+ }), {}, {
43
+ 'data-trackable': 'field-deliverySecurityInstructions',
44
+ placeholder: placeholder ? placeholder : defaultPlaceholder,
45
+ disabled: isDisabled,
46
+ defaultValue: value
47
+ });
48
+ return /*#__PURE__*/_react["default"].createElement("label", {
49
+ id: fieldId,
50
+ className: "o-forms-field o-forms-field--optional",
51
+ "data-validate": "required",
52
+ htmlFor: inputId
53
+ }, /*#__PURE__*/_react["default"].createElement("span", {
54
+ className: "o-forms-title"
55
+ }, /*#__PURE__*/_react["default"].createElement("span", {
56
+ className: "o-forms-title__main"
57
+ }, "Security instructions")), /*#__PURE__*/_react["default"].createElement("span", {
58
+ className: textAreaWrapperClassNames
59
+ }, /*#__PURE__*/_react["default"].createElement("textarea", textAreaProps)), /*#__PURE__*/_react["default"].createElement("span", {
60
+ className: "additional-field-information"
61
+ }, "NB. Details supplied here will not appear on packaging."));
62
+ }
63
+ DeliverySecurityInstructions.propTypes = {
64
+ fieldId: _propTypes["default"].string,
65
+ hasError: _propTypes["default"].bool,
66
+ inputId: _propTypes["default"].string,
67
+ maxlength: _propTypes["default"].number,
68
+ rows: _propTypes["default"].number,
69
+ isDisabled: _propTypes["default"].bool,
70
+ value: _propTypes["default"].string,
71
+ placeholder: _propTypes["default"].string
72
+ };
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryStartDate = DeliveryStartDate;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ 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; }
13
+ 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; }
14
+ function DeliveryStartDate(_ref) {
15
+ var _ref$hasError = _ref.hasError,
16
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
17
+ _ref$date = _ref.date,
18
+ date = _ref$date === void 0 ? '' : _ref$date,
19
+ _ref$value = _ref.value,
20
+ value = _ref$value === void 0 ? '' : _ref$value,
21
+ _ref$min = _ref.min,
22
+ min = _ref$min === void 0 ? null : _ref$min,
23
+ _ref$max = _ref.max,
24
+ max = _ref$max === void 0 ? null : _ref$max,
25
+ _ref$isDisabled = _ref.isDisabled,
26
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
27
+ _ref$isAddressUpdate = _ref.isAddressUpdate,
28
+ isAddressUpdate = _ref$isAddressUpdate === void 0 ? false : _ref$isAddressUpdate;
29
+ var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
30
+ 'o-forms-input--invalid': hasError
31
+ }]);
32
+ var inputProps = _objectSpread(_objectSpread(_objectSpread({
33
+ type: 'date',
34
+ id: 'deliveryStartDate',
35
+ name: 'deliveryStartDate'
36
+ }, min && {
37
+ min: min
38
+ }), max && {
39
+ max: max
40
+ }), {}, {
41
+ 'data-trackable': 'field-deliveryStartDate',
42
+ 'aria-required': 'true',
43
+ required: true,
44
+ disabled: isDisabled,
45
+ defaultValue: value
46
+ });
47
+ var startMessage = isAddressUpdate ? 'We’ll start delivering to this address from:' : 'Your print subscription will start from:';
48
+ return /*#__PURE__*/_react["default"].createElement("label", {
49
+ id: "deliveryStartDateField",
50
+ className: "o-forms-field ncf__validation-error",
51
+ "data-validate": "required",
52
+ htmlFor: inputProps.id
53
+ }, /*#__PURE__*/_react["default"].createElement("span", {
54
+ className: "o-forms-title"
55
+ }, /*#__PURE__*/_react["default"].createElement("span", {
56
+ className: "o-forms-title__main",
57
+ id: "start-date-picker-title-span"
58
+ }, "Delivery start date"), /*#__PURE__*/_react["default"].createElement("span", {
59
+ className: "o-forms-title__prompt"
60
+ }, "Earliest available delivery date: ", date)), /*#__PURE__*/_react["default"].createElement("span", {
61
+ className: inputWrapperClassNames
62
+ }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", {
63
+ className: "o-forms-input__error"
64
+ }, "Please select a valid start date")), /*#__PURE__*/_react["default"].createElement("p", null, startMessage, " ", /*#__PURE__*/_react["default"].createElement("strong", {
65
+ className: "js-start-date-text"
66
+ }, date)));
67
+ }
68
+ DeliveryStartDate.propTypes = {
69
+ hasError: _propTypes["default"].bool,
70
+ date: _propTypes["default"].node,
71
+ // could be a string or a component that formats the string
72
+ value: _propTypes["default"].string,
73
+ min: _propTypes["default"].string,
74
+ max: _propTypes["default"].string,
75
+ isDisabled: _propTypes["default"].bool,
76
+ isAddressUpdate: _propTypes["default"].bool
77
+ };
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.EducationJobTitle = EducationJobTitle;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ function EducationJobTitle(_ref) {
12
+ var _ref$value = _ref.value,
13
+ value = _ref$value === void 0 ? '' : _ref$value,
14
+ _ref$isDisabled = _ref.isDisabled,
15
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
16
+ _ref$hasError = _ref.hasError,
17
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
18
+ _ref$fieldId = _ref.fieldId,
19
+ fieldId = _ref$fieldId === void 0 ? 'jobTitleField' : _ref$fieldId,
20
+ _ref$inputId = _ref.inputId,
21
+ inputId = _ref$inputId === void 0 ? 'jobTitle' : _ref$inputId,
22
+ _ref$inputName = _ref.inputName,
23
+ inputName = _ref$inputName === void 0 ? 'jobTitle' : _ref$inputName,
24
+ _ref$isUSContract = _ref.isUSContract,
25
+ isUSContract = _ref$isUSContract === void 0 ? false : _ref$isUSContract;
26
+ var inputWrapperClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--select', {
27
+ 'o-forms-input--invalid': hasError
28
+ }]);
29
+ var availableJobTitles = ['Faculty/Other'].concat(isUSContract ? ['Graduate Student', 'Undergraduate Student'] : ['Student']);
30
+ return /*#__PURE__*/_react["default"].createElement("label", {
31
+ id: fieldId,
32
+ className: "o-forms-field",
33
+ "data-validate": "required",
34
+ htmlFor: inputId
35
+ }, /*#__PURE__*/_react["default"].createElement("span", {
36
+ className: "o-forms-title"
37
+ }, /*#__PURE__*/_react["default"].createElement("span", {
38
+ className: "o-forms-title__main"
39
+ }, "Occupation")), /*#__PURE__*/_react["default"].createElement("span", {
40
+ className: inputWrapperClassName
41
+ }, /*#__PURE__*/_react["default"].createElement("select", {
42
+ id: inputId,
43
+ name: inputName,
44
+ "data-trackable": "job-title",
45
+ "aria-required": "true",
46
+ required: true,
47
+ disabled: isDisabled,
48
+ defaultValue: value
49
+ }, /*#__PURE__*/_react["default"].createElement("option", {
50
+ value: ""
51
+ }, "Select your occupation"), availableJobTitles.map(function (jobTitle, index) {
52
+ return /*#__PURE__*/_react["default"].createElement("option", {
53
+ key: index
54
+ }, jobTitle);
55
+ })), /*#__PURE__*/_react["default"].createElement("span", {
56
+ className: "o-forms-input__error"
57
+ }, "Please enter your occupation.")));
58
+ }
59
+ EducationJobTitle.propTypes = {
60
+ value: _propTypes["default"].string,
61
+ isDisabled: _propTypes["default"].bool,
62
+ hasError: _propTypes["default"].bool,
63
+ fieldId: _propTypes["default"].string,
64
+ inputId: _propTypes["default"].string,
65
+ inputName: _propTypes["default"].string,
66
+ isUSContract: _propTypes["default"].bool
67
+ };
package/dist/email.jsx ADDED
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Email = Email;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ function Email(_ref) {
12
+ var _ref$dataTrackable = _ref.dataTrackable,
13
+ dataTrackable = _ref$dataTrackable === void 0 ? 'field-email' : _ref$dataTrackable,
14
+ _ref$description = _ref.description,
15
+ description = _ref$description === void 0 ? 'Please enter an email address' : _ref$description,
16
+ _ref$errorText = _ref.errorText,
17
+ errorText = _ref$errorText === void 0 ? 'This email address is not valid' : _ref$errorText,
18
+ _ref$fieldId = _ref.fieldId,
19
+ fieldId = _ref$fieldId === void 0 ? 'emailField' : _ref$fieldId,
20
+ _ref$hasError = _ref.hasError,
21
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
22
+ _ref$inputId = _ref.inputId,
23
+ inputId = _ref$inputId === void 0 ? 'email' : _ref$inputId,
24
+ _ref$isB2b = _ref.isB2b,
25
+ isB2b = _ref$isB2b === void 0 ? false : _ref$isB2b,
26
+ _ref$isDisabled = _ref.isDisabled,
27
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
28
+ _ref$label = _ref.label,
29
+ label = _ref$label === void 0 ? '' : _ref$label,
30
+ _ref$placeHolder = _ref.placeHolder,
31
+ placeHolder = _ref$placeHolder === void 0 ? 'Enter your email address' : _ref$placeHolder,
32
+ _ref$value = _ref.value,
33
+ value = _ref$value === void 0 ? '' : _ref$value,
34
+ _ref$isEducationalLic = _ref.isEducationalLicence,
35
+ isEducationalLicence = _ref$isEducationalLic === void 0 ? false : _ref$isEducationalLic,
36
+ _ref$isB2cPartnership = _ref.isB2cPartnershipLicence,
37
+ isB2cPartnershipLicence = _ref$isB2cPartnership === void 0 ? false : _ref$isB2cPartnership,
38
+ _ref$showTitle = _ref.showTitle,
39
+ showTitle = _ref$showTitle === void 0 ? true : _ref$showTitle;
40
+ var labelText = label || (isB2b && !(isEducationalLicence || isB2cPartnershipLicence) ? 'Work email address' : 'Email address');
41
+ var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
42
+ 'o-forms-input--invalid': hasError
43
+ }]);
44
+ var emailTitleClassNames = (0, _classnames["default"])(['o-forms-title', {
45
+ ncf__hidden: !showTitle
46
+ }]);
47
+ return /*#__PURE__*/_react["default"].createElement("label", {
48
+ id: fieldId,
49
+ className: "o-forms-field ncf__validation-error",
50
+ "data-validate": "required,email",
51
+ htmlFor: inputId
52
+ }, /*#__PURE__*/_react["default"].createElement("span", {
53
+ className: emailTitleClassNames
54
+ }, /*#__PURE__*/_react["default"].createElement("span", {
55
+ className: "o-forms-title__main"
56
+ }, labelText), description && /*#__PURE__*/_react["default"].createElement("span", {
57
+ className: "o-forms-title__prompt"
58
+ }, description)), /*#__PURE__*/_react["default"].createElement("span", {
59
+ className: inputWrapperClassNames
60
+ }, /*#__PURE__*/_react["default"].createElement("input", {
61
+ type: "email",
62
+ id: inputId,
63
+ name: inputId,
64
+ placeholder: placeHolder,
65
+ autoComplete: "email",
66
+ "data-trackable": dataTrackable,
67
+ "aria-required": "true",
68
+ required: true,
69
+ disabled: isDisabled,
70
+ defaultValue: value
71
+ }), /*#__PURE__*/_react["default"].createElement("span", {
72
+ className: "o-forms-input__error"
73
+ }, errorText)));
74
+ }
75
+ Email.propTypes = {
76
+ dataTrackable: _propTypes["default"].string,
77
+ description: _propTypes["default"].string,
78
+ errorText: _propTypes["default"].string,
79
+ fieldId: _propTypes["default"].string,
80
+ hasError: _propTypes["default"].bool,
81
+ inputId: _propTypes["default"].string,
82
+ isB2b: _propTypes["default"].bool,
83
+ isDisabled: _propTypes["default"].bool,
84
+ label: _propTypes["default"].string,
85
+ placeHolder: _propTypes["default"].string,
86
+ value: _propTypes["default"].string,
87
+ isEducationalLicence: _propTypes["default"].bool,
88
+ isB2cPartnershipLicence: _propTypes["default"].bool,
89
+ showTitle: _propTypes["default"].bool
90
+ };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ErrorPage = ErrorPage;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ function ErrorPage(_ref) {
11
+ var children = _ref.children,
12
+ _ref$header = _ref.header,
13
+ header = _ref$header === void 0 ? 'Sorry, something went wrong' : _ref$header,
14
+ _ref$message = _ref.message,
15
+ message = _ref$message === void 0 ? 'Speak to our Customer Care team now so we can help.' : _ref$message;
16
+ return /*#__PURE__*/_react["default"].createElement("div", {
17
+ className: "ncf__wrapper ncf__center ncf__error-page"
18
+ }, /*#__PURE__*/_react["default"].createElement("div", {
19
+ className: "ncf__icon ncf__icon--error ncf__icon--large"
20
+ }), /*#__PURE__*/_react["default"].createElement("div", {
21
+ className: "ncf__paragraph"
22
+ }, /*#__PURE__*/_react["default"].createElement("h1", {
23
+ className: "ncf__header"
24
+ }, header), /*#__PURE__*/_react["default"].createElement("p", {
25
+ id: "error-message"
26
+ }, message)), /*#__PURE__*/_react["default"].createElement("div", {
27
+ className: "ncf__error-page__content"
28
+ }, children), /*#__PURE__*/_react["default"].createElement("div", {
29
+ className: "ncf__paragraph"
30
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "International Toll Free Number"), /*#__PURE__*/_react["default"].createElement("a", {
31
+ id: "error-international-number",
32
+ className: "ncf__header ncf__link",
33
+ href: "tel:+80007056477"
34
+ }, "+ 800 0705 6477")), /*#__PURE__*/_react["default"].createElement("div", {
35
+ className: "ncf__paragraph"
36
+ }, /*#__PURE__*/_react["default"].createElement("a", {
37
+ className: "ncf__link",
38
+ href: "https://help.ft.com/help/contact-us/"
39
+ }, "Find a local phone number")));
40
+ }
41
+ ErrorPage.propTypes = {
42
+ children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]),
43
+ header: _propTypes["default"].string,
44
+ message: _propTypes["default"].string
45
+ };