@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,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _constants = require("../helpers/constants");
8
+ var React = require('react');
9
+ var addressTemplateGenerator = function addressTemplateGenerator(addressLine1, addressLine2, addressLine3) {
10
+ return /*#__PURE__*/React.createElement(React.Fragment, null, addressLine1, addressLine2, addressLine3);
11
+ };
12
+ var deliveryAddressMap = {
13
+ home: {
14
+ addressLine1Placeholder: {
15
+ GBR: 'e.g. 10 Elm Street',
16
+ USA: 'e.g. 10 Elm St.',
17
+ CAN: 'e.g. 36 Poirier Blvd.',
18
+ CEMEA_V1: 'Street and House Number',
19
+ CEMEA_V2: 'House Number and Street',
20
+ APAC: 'Street name',
21
+ ARE: 'PO Box 12345'
22
+ },
23
+ addressLine2Placeholder: {
24
+ CEMEA_V1: 'Apt No./Floor/Building',
25
+ CEMEA_V2: 'Apt No./Floor/Building',
26
+ APAC: 'House/Apartment/Building name'
27
+ },
28
+ addressLine3Placeholder: {
29
+ USA: 'e.g Apt 2C / FL 10 / STE 50',
30
+ CAN: 'e.g Apt 2C / FL 10 / STE 50',
31
+ CEMEA_V1: ' ',
32
+ CEMEA_V2: ' ',
33
+ APAC: 'District/County/Province/Ward'
34
+ },
35
+ addressLine1Title: {
36
+ ARE: 'PO Box'
37
+ },
38
+ // Overrides auto-complete
39
+ addressLine2AutoComplete: {
40
+ USA: _constants.addressLine3AutoComplete,
41
+ CAN: _constants.addressLine3AutoComplete
42
+ },
43
+ // Overrides auto-complete
44
+ addressLine3AutoComplete: {
45
+ USA: _constants.addressLine2AutoComplete,
46
+ CAN: _constants.addressLine2AutoComplete
47
+ },
48
+ addressLine3Title: {
49
+ GBR: 'Address line 3',
50
+ USA: 'APT/FL/STE',
51
+ CAN: 'APT/FL/STE',
52
+ CEMEA_V1: 'Address line 3',
53
+ CEMEA_V2: 'Address line 3',
54
+ APAC: 'Address line 3'
55
+ },
56
+ addressLine3Prompt: {
57
+ USA: 'Max. 6 characters. Please enter “Apartment 2C” as “Apt 2C”, “Floor 10 as FL 10”',
58
+ CAN: 'Max. 6 characters. Please enter “Apartment 2C” as “Apt 2C”, “Floor 10 as FL 10”'
59
+ },
60
+ addressLine3MaxLength: {
61
+ USA: 6,
62
+ CAN: 6
63
+ },
64
+ template: function template(addressLine1, addressLine2, addressLine3, region) {
65
+ var addressLines = {
66
+ GBR: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
67
+ USA: addressTemplateGenerator(addressLine1, addressLine3, addressLine2),
68
+ CAN: addressTemplateGenerator(addressLine1, addressLine3, addressLine2),
69
+ CEMEA_V1: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
70
+ CEMEA_V2: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
71
+ APAC: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
72
+ ARE: /*#__PURE__*/React.createElement(React.Fragment, null, " ", addressLine1, " ")
73
+ };
74
+ return addressLines[region];
75
+ }
76
+ },
77
+ company: {
78
+ addressLine1Placeholder: {
79
+ GBR: 'e.g. 10 Elm Street',
80
+ USA: 'e.g. 10 Elm St.',
81
+ CAN: 'e.g. 36 Poirier Blvd.',
82
+ CEMEA_V1: 'Street and House Number',
83
+ CEMEA_V2: 'House Number and Street',
84
+ APAC: 'Street name',
85
+ ARE: 'PO Box 12345'
86
+ },
87
+ addressLine2Placeholder: {
88
+ CEMEA_V1: 'Apt No./Floor/Building/Department',
89
+ CEMEA_V2: 'Apt No./Floor/Building/Department',
90
+ APAC: 'House/Apartment/Building name'
91
+ },
92
+ addressLine3Placeholder: {
93
+ USA: 'e.g Apt 2C / FL 10 / STE 50',
94
+ CAN: 'e.g Apt 2C / FL 10 / STE 50',
95
+ CEMEA_V1: 'Department name/job title',
96
+ CEMEA_V2: 'Department name/job title',
97
+ APAC: 'District/County/Province/Ward'
98
+ },
99
+ addressLine3Title: {
100
+ GBR: 'Address line 3',
101
+ USA: 'APT/FL/STE',
102
+ CAN: 'APT/FL/STE',
103
+ CEMEA_V1: 'Address line 3',
104
+ CEMEA_V2: 'Address line 3'
105
+ },
106
+ addressLine3Prompt: {
107
+ USA: 'Max. 6 characters. Please enter “Apartment 2C” as “Apt 2C”, “Floor 10 as FL 10”',
108
+ CAN: 'Max. 6 characters. Please enter “Apartment 2C” as “Apt 2C”, “Floor 10 as FL 10”'
109
+ },
110
+ addressLine1Title: {
111
+ ARE: 'PO Box'
112
+ },
113
+ // Overrides auto-complete
114
+ addressLine2AutoComplete: {
115
+ USA: _constants.addressLine3AutoComplete,
116
+ CAN: _constants.addressLine3AutoComplete
117
+ },
118
+ // Overrides auto-complete
119
+ addressLine3AutoComplete: {
120
+ USA: _constants.addressLine2AutoComplete,
121
+ CAN: _constants.addressLine2AutoComplete
122
+ },
123
+ addressLine3MaxLength: {
124
+ USA: 6,
125
+ CAN: 6
126
+ },
127
+ template: function template(addressLine1, addressLine2, addressLine3, region) {
128
+ var addressLines = {
129
+ GBR: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
130
+ USA: addressTemplateGenerator(addressLine1, addressLine3, addressLine2),
131
+ CAN: addressTemplateGenerator(addressLine1, addressLine3, addressLine2),
132
+ CEMEA_V1: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
133
+ CEMEA_V2: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
134
+ APAC: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
135
+ ARE: /*#__PURE__*/React.createElement(React.Fragment, null, " ", addressLine1, " ")
136
+ };
137
+ return addressLines[region];
138
+ }
139
+ },
140
+ pobox: {
141
+ addressLine1Placeholder: {
142
+ GBR: 'e.g. 10 Elm Street',
143
+ USA: 'e.g. 10 Elm St.',
144
+ CAN: 'e.g. 36 Poirier Blvd.',
145
+ CEMEA_V1: 'P.O. Box',
146
+ CEMEA_V2: 'P.O. Box'
147
+ },
148
+ addressLine2Placeholder: {},
149
+ addressLine3Placeholder: {},
150
+ addressLine1Title: {},
151
+ addressLine3Title: {
152
+ GBR: 'Address line 3',
153
+ USA: 'APT/FL/STE',
154
+ CAN: 'APT/FL/STE'
155
+ },
156
+ // Overrides auto-complete
157
+ addressLine2AutoComplete: {
158
+ USA: _constants.addressLine3AutoComplete,
159
+ CAN: _constants.addressLine3AutoComplete
160
+ },
161
+ // Overrides auto-complete
162
+ addressLine3AutoComplete: {
163
+ USA: _constants.addressLine2AutoComplete,
164
+ CAN: _constants.addressLine2AutoComplete
165
+ },
166
+ addressLine3Prompt: {
167
+ USA: 'Max. 6 characters. Please enter “Apartment 2C” as “Apt 2C”, “Floor 10 as FL 10”',
168
+ CAN: 'Max. 6 characters. Please enter “Apartment 2C” as “Apt 2C”, “Floor 10 as FL 10”'
169
+ },
170
+ addressLine3MaxLength: {},
171
+ template: function template(addressLine1, addressLine2, addressLine3, region) {
172
+ var addressLines = {
173
+ GBR: addressTemplateGenerator(addressLine1, addressLine2, addressLine3),
174
+ USA: addressTemplateGenerator(addressLine1, addressLine3, addressLine2),
175
+ CAN: addressTemplateGenerator(addressLine1, addressLine3, addressLine2),
176
+ CEMEA_V1: /*#__PURE__*/React.createElement(React.Fragment, null, " ", addressLine1, " "),
177
+ CEMEA_V2: /*#__PURE__*/React.createElement(React.Fragment, null, " ", addressLine1, " ")
178
+ };
179
+ return addressLines[region];
180
+ }
181
+ }
182
+ };
183
+ var _default = deliveryAddressMap;
184
+ exports["default"] = _default;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryAddressType = DeliveryAddressType;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var addressTypes = [{
11
+ id: 'home',
12
+ label: 'Home Address'
13
+ }, {
14
+ id: 'company',
15
+ label: 'Company Address'
16
+ }, {
17
+ id: 'pobox',
18
+ label: 'P.O. Box'
19
+ }];
20
+ function DeliveryAddressType(_ref) {
21
+ var _ref$value = _ref.value,
22
+ value = _ref$value === void 0 ? 'home' : _ref$value,
23
+ _ref$fieldId = _ref.fieldId,
24
+ fieldId = _ref$fieldId === void 0 ? 'deliveryAddressTypeField' : _ref$fieldId,
25
+ _ref$inputName = _ref.inputName,
26
+ inputName = _ref$inputName === void 0 ? 'deliveryAddressType' : _ref$inputName,
27
+ _ref$options = _ref.options,
28
+ options = _ref$options === void 0 ? ['home', 'company', 'pobox'] : _ref$options,
29
+ _ref$editMode = _ref.editMode,
30
+ editMode = _ref$editMode === void 0 ? false : _ref$editMode,
31
+ _ref$titlePrompt = _ref.titlePrompt,
32
+ titlePrompt = _ref$titlePrompt === void 0 ? '' : _ref$titlePrompt;
33
+ return /*#__PURE__*/_react["default"].createElement("div", {
34
+ id: fieldId,
35
+ className: "o-forms-field ncf__delivery-address-type",
36
+ role: "group",
37
+ "aria-label": "Delivery Address Type"
38
+ }, /*#__PURE__*/_react["default"].createElement("span", {
39
+ className: "o-forms-title"
40
+ }, /*#__PURE__*/_react["default"].createElement("span", {
41
+ className: "o-forms-title__main"
42
+ }, "Address type"), /*#__PURE__*/_react["default"].createElement("span", {
43
+ className: "o-forms-title__prompt"
44
+ }, titlePrompt)), /*#__PURE__*/_react["default"].createElement("div", {
45
+ className: "o-forms-input o-forms-input--inline o-forms-input--radio-round"
46
+ }, options.map(function (option) {
47
+ var type = addressTypes.find(function (item) {
48
+ return item.id === option;
49
+ });
50
+ return !type ? null : /*#__PURE__*/_react["default"].createElement("label", {
51
+ htmlFor: type.id,
52
+ "aria-label": type.label,
53
+ key: type.id
54
+ }, /*#__PURE__*/_react["default"].createElement("input", {
55
+ type: "radio",
56
+ id: type.id,
57
+ name: inputName,
58
+ value: type.id,
59
+ className: "ncf__delivery-address-type__input",
60
+ disabled: editMode && type.id !== value,
61
+ defaultChecked: type.id === value
62
+ }), /*#__PURE__*/_react["default"].createElement("span", {
63
+ className: "o-forms-input__label o-forms-input__address-type__label",
64
+ "aria-hidden": "true"
65
+ }, type.label));
66
+ })));
67
+ }
68
+ DeliveryAddressType.propTypes = {
69
+ fieldId: _propTypes["default"].string,
70
+ inputName: _propTypes["default"].string,
71
+ value: _propTypes["default"].oneOf(['home', 'company', 'pobox']),
72
+ options: _propTypes["default"].arrayOf(_propTypes["default"].oneOf(['home', 'company', 'pobox'])),
73
+ titlePrompt: _propTypes["default"].string
74
+ };
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryAddress = DeliveryAddress;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _deliveryAddressMap = _interopRequireDefault(require("./delivery-address-map"));
12
+ var _constants = require("../helpers/constants");
13
+ var _supportedCountries = require("../helpers/supportedCountries");
14
+ function DeliveryAddress(_ref) {
15
+ var _ref$fieldId = _ref.fieldId,
16
+ fieldId = _ref$fieldId === void 0 ? 'deliveryAddressFields' : _ref$fieldId,
17
+ _ref$hasError = _ref.hasError,
18
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
19
+ _ref$line = _ref.line1,
20
+ line1 = _ref$line === void 0 ? '' : _ref$line,
21
+ _ref$line2 = _ref.line2,
22
+ line2 = _ref$line2 === void 0 ? '' : _ref$line2,
23
+ _ref$line3 = _ref.line3,
24
+ line3 = _ref$line3 === void 0 ? '' : _ref$line3,
25
+ _ref$isDisabled = _ref.isDisabled,
26
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
27
+ _ref$isHidden = _ref.isHidden,
28
+ isHidden = _ref$isHidden === void 0 ? false : _ref$isHidden,
29
+ _ref$country = _ref.country,
30
+ country = _ref$country === void 0 ? 'GBR' : _ref$country,
31
+ _ref$addressType = _ref.addressType,
32
+ addressType = _ref$addressType === void 0 ? 'home' : _ref$addressType;
33
+ var divClassNames = (0, _classnames["default"])([{
34
+ ncf__hidden: isHidden
35
+ }]);
36
+ var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
37
+ 'o-forms-input--invalid': hasError
38
+ }]);
39
+ var FTShippingZone = (0, _supportedCountries.identifyFTShippingZone)(country);
40
+ var addressLine1 = /*#__PURE__*/_react["default"].createElement("label", {
41
+ className: "o-forms-field ncf__validation-error",
42
+ htmlFor: "deliveryAddressLine1"
43
+ }, /*#__PURE__*/_react["default"].createElement("span", {
44
+ className: "o-forms-title"
45
+ }, /*#__PURE__*/_react["default"].createElement("span", {
46
+ className: "o-forms-title__main"
47
+ }, _deliveryAddressMap["default"][addressType].addressLine1Title[FTShippingZone] || 'Address line 1')), /*#__PURE__*/_react["default"].createElement("span", {
48
+ className: inputWrapperClassNames
49
+ }, /*#__PURE__*/_react["default"].createElement("input", {
50
+ type: "text",
51
+ id: "deliveryAddressLine1",
52
+ name: "deliveryAddressLine1",
53
+ "data-trackable": "field-deliveryAddressLine1",
54
+ autoComplete: _constants.addressLine1AutoComplete,
55
+ placeholder: _deliveryAddressMap["default"][addressType].addressLine1Placeholder[FTShippingZone],
56
+ maxLength: 50,
57
+ "aria-required": "true",
58
+ required: true,
59
+ disabled: isDisabled,
60
+ defaultValue: line1
61
+ }), /*#__PURE__*/_react["default"].createElement("span", {
62
+ className: "o-forms-input__error"
63
+ }, "Please enter a valid address")));
64
+ var addressLine2 = /*#__PURE__*/_react["default"].createElement("label", {
65
+ className: "o-forms-field o-forms-field--optional",
66
+ htmlFor: "deliveryAddressLine2"
67
+ }, /*#__PURE__*/_react["default"].createElement("span", {
68
+ className: "o-forms-title"
69
+ }, /*#__PURE__*/_react["default"].createElement("span", {
70
+ className: "o-forms-title__main"
71
+ }, "Address line 2")), /*#__PURE__*/_react["default"].createElement("span", {
72
+ className: inputWrapperClassNames
73
+ }, /*#__PURE__*/_react["default"].createElement("input", {
74
+ type: "text",
75
+ id: "deliveryAddressLine2",
76
+ name: "deliveryAddressLine2",
77
+ "data-trackable": "field-deliveryAddressLine2",
78
+ autoComplete: _deliveryAddressMap["default"][addressType].addressLine2AutoComplete[FTShippingZone] || _constants.addressLine2AutoComplete,
79
+ placeholder: _deliveryAddressMap["default"][addressType].addressLine2Placeholder[FTShippingZone] || '',
80
+ maxLength: 50,
81
+ disabled: isDisabled,
82
+ defaultValue: line2
83
+ })));
84
+ var addressLine3 = /*#__PURE__*/_react["default"].createElement("label", {
85
+ className: "o-forms-field o-forms-field--optional",
86
+ htmlFor: "deliveryAddressLine3"
87
+ }, /*#__PURE__*/_react["default"].createElement("span", {
88
+ className: "o-forms-title"
89
+ }, /*#__PURE__*/_react["default"].createElement("span", {
90
+ className: "o-forms-title__main"
91
+ }, _deliveryAddressMap["default"][addressType].addressLine3Title[FTShippingZone]), /*#__PURE__*/_react["default"].createElement("span", {
92
+ className: "o-forms-title__prompt"
93
+ }, _deliveryAddressMap["default"][addressType].addressLine3Prompt[FTShippingZone])), /*#__PURE__*/_react["default"].createElement("span", {
94
+ className: inputWrapperClassNames
95
+ }, /*#__PURE__*/_react["default"].createElement("input", {
96
+ type: "text",
97
+ id: "deliveryAddressLine3",
98
+ name: "deliveryAddressLine3",
99
+ "data-trackable": "field-deliveryAddressLine3",
100
+ autoComplete: _deliveryAddressMap["default"][addressType].addressLine3AutoComplete[FTShippingZone] || _constants.addressLine3AutoComplete,
101
+ placeholder: _deliveryAddressMap["default"][addressType].addressLine3Placeholder[FTShippingZone] || 'e.g. Apt. 1',
102
+ maxLength: _deliveryAddressMap["default"][addressType].addressLine3MaxLength[country] || 50,
103
+ disabled: isDisabled,
104
+ defaultValue: line3
105
+ })));
106
+ var addressLines = _deliveryAddressMap["default"][addressType].template(addressLine1, addressLine2, addressLine3, FTShippingZone);
107
+ return /*#__PURE__*/_react["default"].createElement("div", {
108
+ id: fieldId,
109
+ "data-validate": "required",
110
+ className: divClassNames
111
+ }, addressLines);
112
+ }
113
+ DeliveryAddress.propTypes = {
114
+ fieldId: _propTypes["default"].string,
115
+ hasError: _propTypes["default"].bool,
116
+ line1: _propTypes["default"].string,
117
+ line2: _propTypes["default"].string,
118
+ line3: _propTypes["default"].string,
119
+ isDisabled: _propTypes["default"].bool,
120
+ isHidden: _propTypes["default"].bool,
121
+ country: _propTypes["default"].oneOf(_supportedCountries.countriesSupportedISO),
122
+ addressType: _propTypes["default"].oneOf(['home', 'company', 'pobox'])
123
+ };
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryCity = DeliveryCity;
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
+ function DeliveryCity(_ref) {
13
+ var _ref$hasError = _ref.hasError,
14
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
15
+ _ref$value = _ref.value,
16
+ value = _ref$value === void 0 ? '' : _ref$value,
17
+ _ref$isDisabled = _ref.isDisabled,
18
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
19
+ _ref$country = _ref.country,
20
+ country = _ref$country === void 0 ? 'GBR' : _ref$country;
21
+ var inputWrapperClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
22
+ 'o-forms-input--invalid': hasError
23
+ }]);
24
+ var inputPlaceholder = {
25
+ GBR: 'e.g. Bath',
26
+ USA: 'e.g. Los Angeles',
27
+ CAN: 'e.g. Montreal',
28
+ ARE: 'e.g. Dubai'
29
+ };
30
+ var FTShippingZone = (0, _supportedCountries.identifyFTShippingZone)(country);
31
+ var labelMapping = {
32
+ ARE: 'Emirate or City',
33
+ APAC: 'City/Prefecture',
34
+ DEFAULT: 'City'
35
+ };
36
+ var inputLabel = labelMapping[FTShippingZone] ? labelMapping[FTShippingZone] : labelMapping['DEFAULT'];
37
+ return /*#__PURE__*/_react["default"].createElement("label", {
38
+ id: "deliveryCityField",
39
+ className: "o-forms-field ncf__validation-error",
40
+ "data-validate": "required",
41
+ htmlFor: "deliveryCity"
42
+ }, /*#__PURE__*/_react["default"].createElement("span", {
43
+ className: "o-forms-title"
44
+ }, /*#__PURE__*/_react["default"].createElement("span", {
45
+ className: "o-forms-title__main"
46
+ }, inputLabel)), /*#__PURE__*/_react["default"].createElement("span", {
47
+ className: inputWrapperClassName
48
+ }, /*#__PURE__*/_react["default"].createElement("input", {
49
+ type: "text",
50
+ id: "deliveryCity",
51
+ name: "deliveryCity",
52
+ "data-trackable": "field-deliveryCity",
53
+ autoComplete: "address-level2",
54
+ placeholder: inputPlaceholder[country] || '',
55
+ maxLength: 40,
56
+ "aria-required": "true",
57
+ required: true,
58
+ disabled: isDisabled,
59
+ defaultValue: value
60
+ }), /*#__PURE__*/_react["default"].createElement("span", {
61
+ className: "o-forms-input__error"
62
+ }, "Please enter a valid city or town")));
63
+ }
64
+ DeliveryCity.propTypes = {
65
+ hasError: _propTypes["default"].bool,
66
+ value: _propTypes["default"].string,
67
+ isDisabled: _propTypes["default"].bool,
68
+ maxlength: _propTypes["default"].number,
69
+ country: _propTypes["default"].oneOf(_supportedCountries.countriesSupportedISO)
70
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryCounty = DeliveryCounty;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ function DeliveryCounty(_ref) {
12
+ var _ref$hasError = _ref.hasError,
13
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
14
+ _ref$value = _ref.value,
15
+ value = _ref$value === void 0 ? '' : _ref$value,
16
+ _ref$isDisabled = _ref.isDisabled,
17
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
18
+ var inputWrapperClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
19
+ 'o-forms-input--invalid': hasError
20
+ }]);
21
+ return /*#__PURE__*/_react["default"].createElement("label", {
22
+ id: "deliveryCountyField",
23
+ className: "o-forms-field o-forms-field--optional",
24
+ "data-validate": "required",
25
+ htmlFor: "deliveryCounty"
26
+ }, /*#__PURE__*/_react["default"].createElement("span", {
27
+ className: "o-forms-title"
28
+ }, /*#__PURE__*/_react["default"].createElement("span", {
29
+ className: "o-forms-title__main"
30
+ }, "County")), /*#__PURE__*/_react["default"].createElement("span", {
31
+ className: inputWrapperClassName
32
+ }, /*#__PURE__*/_react["default"].createElement("input", {
33
+ type: "text",
34
+ id: "deliveryCounty",
35
+ name: "deliveryCounty",
36
+ "data-trackable": "field-deliveryCounty",
37
+ autoComplete: "address-level3",
38
+ placeholder: "e.g. Somerset",
39
+ maxLength: 40,
40
+ disabled: isDisabled,
41
+ defaultValue: value
42
+ })));
43
+ }
44
+ DeliveryCounty.propTypes = {
45
+ hasError: _propTypes["default"].bool,
46
+ value: _propTypes["default"].string,
47
+ isDisabled: _propTypes["default"].bool
48
+ };
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DeliveryInstructions = DeliveryInstructions;
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
+ var _supportedCountries = require("../helpers/supportedCountries");
13
+ 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; }
14
+ 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; }
15
+ var spanMessageByCountry = {
16
+ GBR: /*#__PURE__*/_react["default"].createElement("span", {
17
+ className: "o-forms-title__prompt"
18
+ }, "For newspaper delivery, we can only deliver to the ground floor, so if you live in an apartment, we\u2019ll leave the newspaper at reception or by the entrance. We deliver in the early hours of the morning so our drivers won\u2019t be able to contact you or ring your doorbell."),
19
+ USA: /*#__PURE__*/_react["default"].createElement("span", {
20
+ className: "o-forms-title__prompt"
21
+ }, "Please note we cannot guarantee delivery of the newspaper to a specific location on your property, which also includes delivery to a specific floor/suite in a building. US Federal Law prohibits delivery of newspapers into a mailbox, except via a USPS mail carrier. If you prefer delivery to a mailbox, please either select the \"PO Box\" delivery option from the top of this form, or contact \xA0", /*#__PURE__*/_react["default"].createElement("a", {
22
+ href: "https://help.ft.com/contact/"
23
+ }, "FT Customer Care"), "."),
24
+ CAN: /*#__PURE__*/_react["default"].createElement("span", {
25
+ className: "o-forms-title__prompt"
26
+ }, "Please note we cannot guarantee delivery of the newspaper to a specific location on your property, which also includes delivery to a specific floor/suite in a building. If you prefer delivery by Canada Post, please either select the \"PO Box\" delivery option from the top of this form, or contact \xA0", /*#__PURE__*/_react["default"].createElement("a", {
27
+ href: "https://help.ft.com/contact/"
28
+ }, "FT Customer Care"), "."),
29
+ CEMEA_V1: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
30
+ className: "o-forms-title__prompt"
31
+ }, "Newspaper delivery is restricted to ground floor addresses. If you live in an apartment the newspaper will be left at reception or by the entrance. Delivery is made in the early hours making it sometimes difficult to identify the right delivery location or gaining access where letter boxes are inside a building."), /*#__PURE__*/_react["default"].createElement("span", {
32
+ className: "o-forms-title__prompt"
33
+ }, "Special characters including punctuation cannot be used in the delivery instructions."), /*#__PURE__*/_react["default"].createElement("span", {
34
+ className: "o-forms-title__prompt"
35
+ }, "If you prefer delivery to a mailbox, please either select the \u201CPO Box\u201D delivery option from the top of this form, or contact\xA0", /*#__PURE__*/_react["default"].createElement("a", {
36
+ href: "https://help.ft.com/contact/"
37
+ }, "FT Customer Care"), ".")),
38
+ CEMEA_V2: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
39
+ className: "o-forms-title__prompt"
40
+ }, "Newspaper delivery is restricted to ground floor addresses. If you live in an apartment the newspaper will be left at reception or by the entrance. Delivery is made in the early hours making it sometimes difficult to identify the right delivery location or gaining access where letter boxes are inside a building."), /*#__PURE__*/_react["default"].createElement("span", {
41
+ className: "o-forms-title__prompt"
42
+ }, "Special characters including punctuation cannot be used in the delivery instructions."), /*#__PURE__*/_react["default"].createElement("span", {
43
+ className: "o-forms-title__prompt"
44
+ }, "If you prefer delivery to a mailbox, please either select the \u201CPO Box\u201D delivery option from the top of this form, or contact\xA0", /*#__PURE__*/_react["default"].createElement("a", {
45
+ href: "https://help.ft.com/contact/"
46
+ }, "FT Customer Care"), ".")),
47
+ APAC: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
48
+ className: "o-forms-title__prompt"
49
+ }, "Newspaper delivery is restricted to ground floor addresses. If you live in an apartment the newspaper will be left at reception or by the entrance. Delivery is made in the early hours making it sometimes difficult to identify the right delivery location or gaining access where letter boxes are inside a building."), /*#__PURE__*/_react["default"].createElement("span", {
50
+ className: "o-forms-title__prompt"
51
+ }, "Special characters including punctuation cannot be used in the delivery instructions."), /*#__PURE__*/_react["default"].createElement("span", {
52
+ className: "o-forms-title__prompt"
53
+ }, "If you prefer delivery to a mailbox, please either select the \u201CPO Box\u201D delivery option from the top of this form, or contact\xA0", /*#__PURE__*/_react["default"].createElement("a", {
54
+ href: "https://help.ft.com/contact/"
55
+ }, "FT Customer Care"), "."))
56
+ };
57
+ function DeliveryInstructions(_ref) {
58
+ var _ref$fieldId = _ref.fieldId,
59
+ fieldId = _ref$fieldId === void 0 ? 'deliveryInstructionsField' : _ref$fieldId,
60
+ _ref$hasError = _ref.hasError,
61
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
62
+ _ref$inputId = _ref.inputId,
63
+ inputId = _ref$inputId === void 0 ? 'deliveryInstructions' : _ref$inputId,
64
+ _ref$maxlength = _ref.maxlength,
65
+ maxlength = _ref$maxlength === void 0 ? null : _ref$maxlength,
66
+ _ref$rows = _ref.rows,
67
+ rows = _ref$rows === void 0 ? null : _ref$rows,
68
+ _ref$isDisabled = _ref.isDisabled,
69
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
70
+ _ref$placeholder = _ref.placeholder,
71
+ placeholder = _ref$placeholder === void 0 ? '' : _ref$placeholder,
72
+ _ref$value = _ref.value,
73
+ value = _ref$value === void 0 ? '' : _ref$value,
74
+ country = _ref.country;
75
+ var textAreaWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--textarea', {
76
+ 'o-forms-input--invalid': hasError
77
+ }]);
78
+ var FTShippingZone = (0, _supportedCountries.identifyFTShippingZone)(country);
79
+ var extraInstruction = country === 'GBR' ? '' : "\n- Special handling, e.g. place in plastic bag, 24/7 security on reception";
80
+ var defaultPlaceholder = {
81
+ CEMEA_V1: "Enter instructions ".concat(maxlength && "(Max. ".concat(maxlength, " characters)"), ":\n- Door colour, letterbox location\n- Door entry codes, etc."),
82
+ CEMEA_V2: "Enter instructions ".concat(maxlength && "(Max. ".concat(maxlength, " characters)"), ":\n- Door colour, letterbox location\n- Door entry codes, etc."),
83
+ GBR: "Enter instructions ".concat(maxlength && "(Max. ".concat(maxlength, " characters)"), ":\n- Door colour, letterbox location\n- Placement i.e. letterbox delivery").concat(extraInstruction),
84
+ USA: "Enter instructions ".concat(maxlength && "(Max. ".concat(maxlength, " characters)"), ":\n- Door colour, driveway signage\n- Cross street").concat(extraInstruction),
85
+ CAN: "Enter instructions ".concat(maxlength && "(Max. ".concat(maxlength, " characters)"), ":\n- Door colour, driveway signage\n- Cross street").concat(extraInstruction)
86
+ };
87
+ var textAreaProps = _objectSpread(_objectSpread(_objectSpread({
88
+ id: inputId,
89
+ name: inputId
90
+ }, maxlength && {
91
+ maxLength: maxlength
92
+ }), rows && {
93
+ rows: rows
94
+ }), {}, {
95
+ 'data-trackable': 'field-deliveryInstructions',
96
+ placeholder: placeholder ? placeholder : defaultPlaceholder[FTShippingZone],
97
+ disabled: isDisabled,
98
+ defaultValue: value
99
+ });
100
+ var deliveryInstructionsMessage = /*#__PURE__*/_react["default"].createElement("span", {
101
+ className: "o-forms-title__prompt"
102
+ }, "Special characters including punctuation cannot be used in the delivery instructions.");
103
+ return /*#__PURE__*/_react["default"].createElement("label", {
104
+ id: fieldId,
105
+ className: "o-forms-field o-forms-field--optional",
106
+ "data-validate": "required",
107
+ htmlFor: inputId
108
+ }, /*#__PURE__*/_react["default"].createElement("span", {
109
+ className: "o-forms-title"
110
+ }, /*#__PURE__*/_react["default"].createElement("span", {
111
+ className: "o-forms-title__main"
112
+ }, "Delivery instructions"), spanMessageByCountry[FTShippingZone], country === 'GBR' && deliveryInstructionsMessage), /*#__PURE__*/_react["default"].createElement("span", {
113
+ className: textAreaWrapperClassNames
114
+ }, /*#__PURE__*/_react["default"].createElement("textarea", textAreaProps)));
115
+ }
116
+ DeliveryInstructions.propTypes = {
117
+ hasError: _propTypes["default"].bool,
118
+ maxlength: _propTypes["default"].number,
119
+ rows: _propTypes["default"].number,
120
+ isDisabled: _propTypes["default"].bool,
121
+ value: _propTypes["default"].string,
122
+ country: _propTypes["default"].oneOf(['GBR', 'USA', 'CAN']).isRequired
123
+ };