@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.
- package/.babelrc.js +7 -0
- package/.storybook/main.js +18 -10
- package/.toolkitrc.yml +7 -0
- package/.toolkitstate/ci.json +2 -2
- package/README.md +1 -1
- package/dist/accept-terms-business.jsx +74 -0
- package/dist/accept-terms-business.spec.jsx +40 -0
- package/dist/accept-terms-privacy-policy.jsx +71 -0
- package/dist/accept-terms-subscription.jsx +150 -0
- package/dist/accept-terms.jsx +217 -0
- package/dist/app-banner.jsx +51 -0
- package/dist/b2c-partnership-confirmation.jsx +64 -0
- package/dist/billing-city.jsx +58 -0
- package/dist/billing-country.jsx +43 -0
- package/dist/billing-postcode.jsx +76 -0
- package/dist/company-name.jsx +78 -0
- package/dist/confirmation.jsx +117 -0
- package/dist/continue-reading.jsx +45 -0
- package/dist/country.jsx +106 -0
- package/dist/customer-care.jsx +52 -0
- package/dist/debug.jsx +50 -0
- package/dist/decision-maker.jsx +72 -0
- package/dist/deferred-billing-terms.jsx +112 -0
- package/dist/delivery-address-map.jsx +184 -0
- package/dist/delivery-address-type.jsx +74 -0
- package/dist/delivery-address.jsx +123 -0
- package/dist/delivery-city.jsx +70 -0
- package/dist/delivery-county.jsx +48 -0
- package/dist/delivery-instructions.jsx +123 -0
- package/dist/delivery-option.jsx +77 -0
- package/dist/delivery-po-box.jsx +75 -0
- package/dist/delivery-postcode.jsx +116 -0
- package/dist/delivery-security-instructions.jsx +72 -0
- package/dist/delivery-start-date.jsx +77 -0
- package/dist/education-job-title.jsx +67 -0
- package/dist/email.jsx +90 -0
- package/dist/error-page.jsx +45 -0
- package/dist/fieldset.jsx +58 -0
- package/dist/first-name.jsx +73 -0
- package/dist/form.jsx +29 -0
- package/dist/google-sign-in.jsx +24 -0
- package/dist/graduation-date.jsx +112 -0
- package/dist/index.jsx +432 -0
- package/dist/industry.jsx +81 -0
- package/dist/job-title.jsx +65 -0
- package/dist/last-name.jsx +73 -0
- package/dist/licence-confirmation.jsx +67 -0
- package/dist/licence-header.jsx +52 -0
- package/dist/licence-sign-in.jsx +36 -0
- package/dist/licence-title.jsx +46 -0
- package/dist/lite-sub-confirmation.jsx +118 -0
- package/dist/loader.jsx +54 -0
- package/dist/message.jsx +101 -0
- package/dist/message.spec.jsx +96 -0
- package/dist/organisation.jsx +73 -0
- package/dist/package-change.jsx +38 -0
- package/dist/password.jsx +95 -0
- package/dist/payment-term.jsx +328 -0
- package/dist/payment-type.jsx +213 -0
- package/dist/personal-title.jsx +94 -0
- package/dist/phone.jsx +85 -0
- package/dist/position.jsx +86 -0
- package/dist/progress-indicator.jsx +66 -0
- package/dist/province.jsx +80 -0
- package/dist/registration-confirmation.jsx +108 -0
- package/dist/responsibility.jsx +84 -0
- package/dist/section.jsx +20 -0
- package/dist/seven-day-pass-experiment-confirmation.jsx +93 -0
- package/dist/state.jsx +80 -0
- package/dist/submit.jsx +52 -0
- package/dist/text-input.jsx +78 -0
- package/dist/trial-banner.jsx +29 -0
- package/package.json +19 -19
- package/toolkit/run-storybook/.toolkitrc.yml +1 -0
- 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
|
+
};
|