@financial-times/n-conversion-forms 26.0.0 → 27.0.0

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 (111) hide show
  1. package/.circleci/config.yml +4 -4
  2. package/.eslintignore +1 -0
  3. package/.github/workflows/gh-pages-deploy.yml +1 -0
  4. package/.storybook/main.js +0 -1
  5. package/__mocks__/@financial-times/o-expander.js +9 -0
  6. package/__mocks__/@financial-times/o-forms-input.js +11 -0
  7. package/__mocks__/@financial-times/o-forms.js +40 -0
  8. package/build-state/npm-shrinkwrap.json +294 -6334
  9. package/components/__snapshots__/b2c-partnership-confirmation.spec.js.snap +1 -1
  10. package/components/__snapshots__/confirmation.spec.js.snap +0 -3
  11. package/components/__snapshots__/debug.spec.js.snap +25 -13
  12. package/components/__snapshots__/delivery-postcode.spec.js.snap +1 -1
  13. package/components/__snapshots__/payment-term.spec.js.snap +1 -1
  14. package/components/__snapshots__/payment-type.spec.js.snap +19 -0
  15. package/components/__snapshots__/registration-confirmation.spec.js.snap +230 -74
  16. package/components/accept-terms.jsx +57 -36
  17. package/components/accept-terms.stories.js +28 -1
  18. package/components/b2c-partnership-confirmation.jsx +1 -1
  19. package/components/confirmation.jsx +15 -8
  20. package/components/confirmation.spec.js +1 -1
  21. package/components/debug.jsx +19 -12
  22. package/components/debug.stories.js +13 -0
  23. package/components/delivery-address.jsx +21 -58
  24. package/components/delivery-address.stories.js +7 -0
  25. package/components/delivery-city.jsx +4 -2
  26. package/components/delivery-city.stories.js +9 -0
  27. package/components/delivery-option.jsx +5 -3
  28. package/components/delivery-option.stories.js +7 -1
  29. package/components/delivery-postcode.jsx +32 -13
  30. package/components/delivery-postcode.stories.js +2 -1
  31. package/components/delivery-security-instructions.spec.js +3 -3
  32. package/components/graduation-date.spec.js +8 -8
  33. package/components/index.jsx +1 -1
  34. package/components/message.jsx +1 -1
  35. package/components/payment-term.jsx +152 -25
  36. package/components/payment-term.spec.js +46 -4
  37. package/components/payment-term.stories.js +69 -14
  38. package/components/payment-type.jsx +3 -1
  39. package/components/position.jsx +6 -3
  40. package/components/position.spec.js +15 -5
  41. package/components/registration-confirmation.jsx +111 -32
  42. package/components/responsibility.jsx +6 -3
  43. package/components/responsibility.spec.js +15 -5
  44. package/components/text-input.jsx +73 -0
  45. package/components/text-input.spec.js +118 -0
  46. package/components/text-input.stories.js +31 -0
  47. package/dist/accept-terms.js +15 -7
  48. package/dist/b2c-partnership-confirmation.js +1 -1
  49. package/dist/confirmation.js +11 -2
  50. package/dist/debug.js +6 -6
  51. package/dist/delivery-address.js +19 -32
  52. package/dist/delivery-city.js +4 -2
  53. package/dist/delivery-option.js +5 -2
  54. package/dist/delivery-postcode.js +31 -12
  55. package/dist/index.js +9 -9
  56. package/dist/message.js +1 -1
  57. package/dist/payment-term.js +117 -11
  58. package/dist/payment-type.js +5 -2
  59. package/dist/position.js +6 -2
  60. package/dist/registration-confirmation.js +87 -29
  61. package/dist/responsibility.js +6 -2
  62. package/dist/text-input.js +84 -0
  63. package/helpers/constants.js +7 -0
  64. package/helpers/deliveryAddressMap.js +167 -0
  65. package/helpers/index.js +7 -0
  66. package/helpers/index.spec.js +11 -0
  67. package/helpers/ncf-common-data.spec.js +34 -0
  68. package/helpers/ncf-countries.spec.js +136 -0
  69. package/helpers/supportedCountries.js +76 -0
  70. package/helpers/supportedPostcodeExamples.js +57 -0
  71. package/helpers/supportedPostcodeValidators.js +53 -0
  72. package/helpers/utilities.js +14 -0
  73. package/jest.config.js +8 -1
  74. package/main.scss +461 -0
  75. package/package.json +6 -3
  76. package/styles/confirmation.scss +122 -0
  77. package/styles/payment-term.scss +3 -0
  78. package/utils/app-banner.spec.js +68 -0
  79. package/utils/apple-pay.spec.js +177 -0
  80. package/utils/billing-country.spec.js +87 -0
  81. package/utils/billing-postcode.spec.js +138 -0
  82. package/utils/company-name.spec.js +3 -7
  83. package/utils/country.spec.js +87 -0
  84. package/utils/delivery-address-type.spec.js +24 -11
  85. package/utils/delivery-option-messages.js +15 -0
  86. package/utils/delivery-option-messages.spec.js +3 -3
  87. package/utils/delivery-option.spec.js +100 -15
  88. package/utils/delivery-postcode.spec.js +138 -0
  89. package/utils/delivery-start-date.spec.js +177 -0
  90. package/utils/email.spec.js +210 -0
  91. package/utils/event-notifier.spec.js +116 -0
  92. package/utils/form-element.spec.js +71 -0
  93. package/utils/loader.spec.js +161 -0
  94. package/utils/password.spec.js +65 -0
  95. package/utils/payment-term.js +25 -1
  96. package/utils/payment-term.spec.js +198 -0
  97. package/utils/payment-type.js +1 -1
  98. package/utils/payment-type.spec.js +136 -0
  99. package/utils/postcode.spec.js +122 -0
  100. package/utils/salesforce.spec.js +30 -0
  101. package/utils/submit.spec.js +81 -0
  102. package/utils/tracking.spec.js +174 -0
  103. package/utils/validation.js +2 -2
  104. package/utils/validation.spec.js +234 -0
  105. package/utils/zuora.spec.js +249 -0
  106. package/components/__snapshots__/b2c-partnership-payment-term.spec.js.snap +0 -193
  107. package/components/b2c-partnership-payment-term.jsx +0 -126
  108. package/components/b2c-partnership-payment-term.spec.js +0 -52
  109. package/components/b2c-partnership-payment-term.stories.js +0 -44
  110. package/dist/b2c-partnership-payment-term.js +0 -91
  111. package/styles/b2c-partnership-payment-term.scss +0 -20
@@ -7,7 +7,7 @@ exports[`B2CPartnershipConfirmation renders as default 1`] = `
7
7
  </div>
8
8
  <div class="ncf__paragraph">
9
9
  <h1 class="ncf__header ncf__header--confirmation">
10
- Welcome to your three months&#x27; Premium access
10
+ Welcome to your 30 days&#x27; Premium access
11
11
  </h1>
12
12
  </div>
13
13
  </div>
@@ -14,9 +14,6 @@ exports[`Confirmation renders appropriately if is B2C Partnership 1`] = `
14
14
  <p class="ncf__paragraph">
15
15
  We’ve sent confirmation to your email. Make sure you check your spam folder if you don’t receive it.
16
16
  </p>
17
- <p>
18
- We&#x27;ve also sent you an email to start your 90-day All Access Digital subscription with The Washington Post.
19
- </p>
20
17
  <p class="ncf__paragraph">
21
18
  Here’s a summary of your subscription:
22
19
  </p>
@@ -5,7 +5,7 @@ exports[`Debug renders with default props 1`] = `""`;
5
5
  exports[`Debug renders with isTest 1`] = `
6
6
  <div class="ncf__debug-panel">
7
7
  <span class="ncf__debug-environment">
8
- <a class="ncf__button ncf__button--inverse ncf__debug-button--test"
8
+ <a class="ncf__button ncf__button--debug ncf__button--inverse ncf__debug-button--test"
9
9
  onclick="setTestEnvironment('off');"
10
10
  >
11
11
  <strong>
@@ -30,7 +30,7 @@ exports[`Debug renders with isTest 1`] = `
30
30
  GBR: 'EC4M9BT',
31
31
  USA: '10028',
32
32
  CAN: 'K0E 9Z9'
33
- }
33
+ };
34
34
 
35
35
  var debugData = {
36
36
  billingCity: 'London',
@@ -54,9 +54,12 @@ exports[`Debug renders with isTest 1`] = `
54
54
  postCode: postcodeByCountry[COUNTRY_CODE],
55
55
  primaryTelephone: '0987654321',
56
56
  responsibility: 'ADL',
57
- ukVisa: '4111111111111111',
57
+ ukVisaWorldpay: '4111111111111111',
58
58
  usAmex: '378282246310005',
59
- usVisa: '4112344112344113'
59
+ usVisaWorldpay: '4112344112344113',
60
+ checkoutVisa: '4242424242424242',
61
+ checkout3dsChallenge: 'Checkout1!',
62
+ chaseVisa: '4011361100000010',
60
63
  };
61
64
 
62
65
  function logout () {
@@ -75,7 +78,7 @@ exports[`Debug renders with isTest 1`] = `
75
78
 
76
79
  var inputs = document.querySelectorAll(INPUT_SELECTOR + ', ' + SELECT_SELECTOR);
77
80
  inputs.forEach(function (input) {
78
- if (!/hidden/i.test(input.type)) {
81
+ if (!/hidden/i.test(input.type) && input.disabled === false) {
79
82
  var value = debugData[input.name];
80
83
  input.value = value;
81
84
  input.dispatchEvent(changeEvent);
@@ -130,6 +133,9 @@ exports[`Debug renders with isTest 1`] = `
130
133
  .ncf__debug-button--production {
131
134
  background-color: #990000;
132
135
  }
136
+ .ncf__button--debug {
137
+ padding: 0px 5px;
138
+ }
133
139
  </style>
134
140
  `;
135
141
 
@@ -138,7 +144,7 @@ exports[`Debug renders with links 1`] = `""`;
138
144
  exports[`Debug renders with showHelpers 1`] = `
139
145
  <div class="ncf__debug-panel">
140
146
  <span class="ncf__debug-environment">
141
- <a class="ncf__button ncf__button--inverse ncf__debug-button--production"
147
+ <a class="ncf__button ncf__button--debug ncf__button--inverse ncf__debug-button--production"
142
148
  onclick="setTestEnvironment('on');"
143
149
  >
144
150
  <strong>
@@ -148,19 +154,19 @@ exports[`Debug renders with showHelpers 1`] = `
148
154
  </a>
149
155
  </span>
150
156
  <span class="ncf__debug-helpers">
151
- <button class="ncf__button ncf__button--inverse"
157
+ <button class="ncf__button ncf__button--debug ncf__button--inverse"
152
158
  onclick="logout();"
153
159
  title="Logout and refresh"
154
160
  >
155
161
  Logout
156
162
  </button>
157
- <button class="ncf__button ncf__button--inverse"
163
+ <button class="ncf__button ncf__button--debug ncf__button--inverse"
158
164
  onclick="fillForm();"
159
165
  title="Fill form with debug data"
160
166
  >
161
167
  Fill
162
168
  </button>
163
- <button class="ncf__button ncf__button--inverse"
169
+ <button class="ncf__button ncf__button--debug ncf__button--inverse"
164
170
  onclick="fillForm(); submitForm();"
165
171
  title="Fill form with debug data and submit"
166
172
  >
@@ -183,7 +189,7 @@ exports[`Debug renders with showHelpers 1`] = `
183
189
  GBR: 'EC4M9BT',
184
190
  USA: '10028',
185
191
  CAN: 'K0E 9Z9'
186
- }
192
+ };
187
193
 
188
194
  var debugData = {
189
195
  billingCity: 'London',
@@ -207,9 +213,12 @@ exports[`Debug renders with showHelpers 1`] = `
207
213
  postCode: postcodeByCountry[COUNTRY_CODE],
208
214
  primaryTelephone: '0987654321',
209
215
  responsibility: 'ADL',
210
- ukVisa: '4111111111111111',
216
+ ukVisaWorldpay: '4111111111111111',
211
217
  usAmex: '378282246310005',
212
- usVisa: '4112344112344113'
218
+ usVisaWorldpay: '4112344112344113',
219
+ checkoutVisa: '4242424242424242',
220
+ checkout3dsChallenge: 'Checkout1!',
221
+ chaseVisa: '4011361100000010',
213
222
  };
214
223
 
215
224
  function logout () {
@@ -228,7 +237,7 @@ exports[`Debug renders with showHelpers 1`] = `
228
237
 
229
238
  var inputs = document.querySelectorAll(INPUT_SELECTOR + ', ' + SELECT_SELECTOR);
230
239
  inputs.forEach(function (input) {
231
- if (!/hidden/i.test(input.type)) {
240
+ if (!/hidden/i.test(input.type) && input.disabled === false) {
232
241
  var value = debugData[input.name];
233
242
  input.value = value;
234
243
  input.dispatchEvent(changeEvent);
@@ -283,5 +292,8 @@ exports[`Debug renders with showHelpers 1`] = `
283
292
  .ncf__debug-button--production {
284
293
  background-color: #990000;
285
294
  }
295
+ .ncf__button--debug {
296
+ padding: 0px 5px;
297
+ }
286
298
  </style>
287
299
  `;
@@ -175,7 +175,7 @@ exports[`Delivery Postcode renders a postcode input with a label set as postal c
175
175
  <input type="text"
176
176
  id="deliveryPostcode"
177
177
  name="deliveryPostcode"
178
- placeholder="e.g. M4W 2C6"
178
+ placeholder="e.g. M5H 3E5"
179
179
  autocomplete="postal-code"
180
180
  data-trackable="delivery-postcode"
181
181
  aria-required="true"
@@ -16,7 +16,7 @@ exports[`PaymentTerm When using custom options renders when not using an option
16
16
  class="o-forms-input__label ncf__payment-term__label"
17
17
  >
18
18
  <span class="ncf__payment-term__discount">
19
- Best offer - 33% off RRP
19
+ Best offer
20
20
  </span>
21
21
  <span class="ncf__payment-term__title ncf__payment-term__title--large-price">
22
22
  Annual
@@ -72,6 +72,8 @@ exports[`PaymentType can initialise with the loader visible 1`] = `
72
72
  Please enter a valid payment type
73
73
  </div>
74
74
  </div>
75
+ <div class="o-forms-field">
76
+ </div>
75
77
  `;
76
78
 
77
79
  exports[`PaymentType render with default props 1`] = `
@@ -146,6 +148,8 @@ exports[`PaymentType render with default props 1`] = `
146
148
  Please enter a valid payment type
147
149
  </div>
148
150
  </div>
151
+ <div class="o-forms-field">
152
+ </div>
149
153
  `;
150
154
 
151
155
  exports[`PaymentType render with enableApplepay 1`] = `
@@ -220,6 +224,8 @@ exports[`PaymentType render with enableApplepay 1`] = `
220
224
  Please enter a valid payment type
221
225
  </div>
222
226
  </div>
227
+ <div class="o-forms-field">
228
+ </div>
223
229
  `;
224
230
 
225
231
  exports[`PaymentType render with enableCreditcard 1`] = `
@@ -314,6 +320,8 @@ exports[`PaymentType render with enableCreditcard 1`] = `
314
320
  </script>
315
321
  </div>
316
322
  </div>
323
+ <div class="o-forms-field">
324
+ </div>
317
325
  `;
318
326
 
319
327
  exports[`PaymentType render with enableDirectdebit 1`] = `
@@ -447,6 +455,8 @@ exports[`PaymentType render with enableDirectdebit 1`] = `
447
455
  </script>
448
456
  </div>
449
457
  </div>
458
+ <div class="o-forms-field">
459
+ </div>
450
460
  `;
451
461
 
452
462
  exports[`PaymentType render with enablePaypal 1`] = `
@@ -521,6 +531,8 @@ exports[`PaymentType render with enablePaypal 1`] = `
521
531
  Please enter a valid payment type
522
532
  </div>
523
533
  </div>
534
+ <div class="o-forms-field">
535
+ </div>
524
536
  `;
525
537
 
526
538
  exports[`PaymentType render with isSingleTerm 1`] = `
@@ -594,6 +606,8 @@ exports[`PaymentType render with isSingleTerm 1`] = `
594
606
  <div class="o-forms-input__error">
595
607
  Please enter a valid payment type
596
608
  </div>
609
+ </div>
610
+ <div class="o-forms-field">
597
611
  <label class="o-forms-input o-forms-input--checkbox o-forms-input--suffix ncf__payment-type-pay-faster-next-time-checkbox"
598
612
  for="payFasterNextTime"
599
613
  >
@@ -601,6 +615,7 @@ exports[`PaymentType render with isSingleTerm 1`] = `
601
615
  id="payFasterNextTime"
602
616
  name="payFasterNextTime"
603
617
  value="true"
618
+ checked
604
619
  >
605
620
  <span class="o-forms-input__label">
606
621
  Use these details to pay faster next time
@@ -680,6 +695,8 @@ exports[`PaymentType render with isSingleTermChecked 1`] = `
680
695
  <div class="o-forms-input__error">
681
696
  Please enter a valid payment type
682
697
  </div>
698
+ </div>
699
+ <div class="o-forms-field">
683
700
  <label class="o-forms-input o-forms-input--checkbox o-forms-input--suffix ncf__payment-type-pay-faster-next-time-checkbox"
684
701
  for="payFasterNextTime"
685
702
  >
@@ -769,4 +786,6 @@ exports[`PaymentType render with value 1`] = `
769
786
  Please enter a valid payment type
770
787
  </div>
771
788
  </div>
789
+ <div class="o-forms-field">
790
+ </div>
772
791
  `;
@@ -1,95 +1,251 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`RegistrationConfirmation renders with a custom email 1`] = `
4
- <div class="ncf ncf__wrapper">
5
- <div class="ncf__center">
4
+ <div class="ncf">
5
+ <div class="ncf__center ncf__margin">
6
6
  <div class="ncf__icon ncf__icon--tick ncf__icon--large">
7
7
  </div>
8
- <div class="ncf__paragraph">
9
- <h1 class="ncf__header ncf__header--confirmation">
10
- Welcome to FT.com
11
- </h1>
12
- </div>
8
+ <h1 class="ncf__header ncf__header--confirmation">
9
+ Success
10
+ </h1>
11
+ <p class="ncf__confirmation--message">
12
+ We’ve sent confirmation to test@example.com.
13
+ </p>
13
14
  </div>
14
- <p class="ncf__paragraph">
15
- We’ve sent confirmation of your new account to test@example.com.
16
- </p>
17
- <div class="ncf__headed-paragraph">
18
- <h2 class="ncf__header">
19
- Something not right?
20
- </h2>
21
- <p class="ncf__paragraph">
22
- Go to your
23
- <a class="ncf__link ncf__link--external"
24
- href="https://www.ft.com/myaccount/personal-details"
25
- target="_blank"
26
- rel="noopener noreferrer"
27
- data-trackable="yourAccount"
28
- >
29
- account settings
30
- </a>
31
- to view or edit your account. If you need to get in touch call us on
32
- <a href="tel:+442077556248"
33
- class="ncf__link ncf__link--external"
15
+ <div class="ncf__divider-horizontal">
16
+ </div>
17
+ <div class="ncf__confirmation--links ncf__margin">
18
+ <div class="ncf__confirmation--socials">
19
+ <b>
20
+ Breaking news alerts, direct to your lock screen
21
+ </b>
22
+ <p class="ncf__confirmation--mobile">
23
+ Download our apps or follow us on our socials
24
+ </p>
25
+ <p class="ncf__confirmation--desktop">
26
+ Find us in the app and google play stores or follow us on our socials
27
+ </p>
28
+ <div class="ncf__confirmation--badges">
29
+ <div class="o-social-follow"
30
+ aria-label="Follow on social media"
31
+ >
32
+ <a href="https://www.instagram.com/financialtimes"
33
+ class="o-social-follow-icon o-social-follow-icon--instagram"
34
+ target="_blank"
35
+ rel="noopener noreferrer"
36
+ data-trackable="register-social-instagram"
37
+ >
38
+ <span class="o-social-follow-icon__label">
39
+ on instagram
40
+ </span>
41
+ </a>
42
+ <a href="https://www.linkedin.com/company/financial-times"
43
+ class="o-social-follow-icon o-social-follow-icon--linkedin"
44
+ target="_blank"
45
+ rel="noopener noreferrer"
46
+ data-trackable="register-social-linkedin"
47
+ >
48
+ <span class="o-social-follow-icon__label">
49
+ on linkedin
50
+ </span>
51
+ </a>
52
+ <a href="https://twitter.com/FT"
53
+ class="o-social-follow-icon o-social-follow-icon--twitter"
54
+ target="_blank"
55
+ rel="noopener noreferrer"
56
+ data-trackable="register-social-twitter"
57
+ >
58
+ <span class="o-social-follow-icon__label">
59
+ on twitter
60
+ </span>
61
+ </a>
62
+ <a href="https://www.facebook.com/financialtimes"
63
+ class="o-social-follow-icon o-social-follow-icon--facebook"
64
+ target="_blank"
65
+ rel="noopener noreferrer"
66
+ data-trackable="register-social-facebook"
67
+ >
68
+ <span class="o-social-follow-icon__label">
69
+ on facebook
70
+ </span>
71
+ </a>
72
+ </div>
73
+ <div class="ncf__confirmation--mobile ncf__confirmation--app-badges"
74
+ aria-label="Download the app"
75
+ >
76
+ <a href="https://apps.apple.com/app/apple-store/id1200842933"
77
+ class="ncf-icon ncf-icon--apple"
78
+ target="_blank"
79
+ rel="noopener noreferrer"
80
+ data-trackable="register-app-apple"
81
+ >
82
+ <span class="o-social-follow-icon__label">
83
+ on apple
84
+ </span>
85
+ </a>
86
+ <a href="https://play.google.com/store/apps/details?id=com.ft.news"
87
+ class="ncf-icon ncf-icon--android"
88
+ target="_blank"
89
+ rel="noopener noreferrer"
90
+ data-trackable="register-app-android"
91
+ >
92
+ <span class="o-social-follow-icon__label">
93
+ on android
94
+ </span>
95
+ </a>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ <div class="ncf__confirmation--alerts">
100
+ <b>
101
+ Set up email alerts in
102
+ <span aria-label="myFT"
103
+ class="ncf-icon ncf-icon--myft"
104
+ >
105
+ </span>
106
+ </b>
107
+ <p>
108
+ Choose the content you want to follow by personalising your alerts for the most important topics and additional newsletters
109
+ </p>
110
+ <a href="/myft"
111
+ class="margin-top-x4 ncf__button ncf__button--secondary"
112
+ data-trackable="register-personalise-my-alerts"
34
113
  >
35
- +44 (0) 207 755 6248
114
+ Personalise my alerts
36
115
  </a>
37
- . Or contact us for additional support.
38
- </p>
116
+ </div>
39
117
  </div>
40
- <p class="ncf__center">
41
- <a href="/products "
42
- class="ncf__button ncf__button--submit"
43
- >
44
- See our subscription packages
45
- </a>
46
- </p>
118
+ <a href="/"
119
+ target="_parent"
120
+ class="ncf__confirmation--finish ncf__button ncf__button--submit"
121
+ data-trackable="register-finish"
122
+ >
123
+ Finish
124
+ </a>
47
125
  </div>
48
126
  `;
49
127
 
50
128
  exports[`RegistrationConfirmation renders with default props 1`] = `
51
- <div class="ncf ncf__wrapper">
52
- <div class="ncf__center">
129
+ <div class="ncf">
130
+ <div class="ncf__center ncf__margin">
53
131
  <div class="ncf__icon ncf__icon--tick ncf__icon--large">
54
132
  </div>
55
- <div class="ncf__paragraph">
56
- <h1 class="ncf__header ncf__header--confirmation">
57
- Welcome to FT.com
58
- </h1>
59
- </div>
133
+ <h1 class="ncf__header ncf__header--confirmation">
134
+ Success
135
+ </h1>
136
+ <p class="ncf__confirmation--message">
137
+ We’ve sent confirmation to your email.
138
+ </p>
60
139
  </div>
61
- <p class="ncf__paragraph">
62
- We’ve sent confirmation of your new account to your email.
63
- </p>
64
- <div class="ncf__headed-paragraph">
65
- <h2 class="ncf__header">
66
- Something not right?
67
- </h2>
68
- <p class="ncf__paragraph">
69
- Go to your
70
- <a class="ncf__link ncf__link--external"
71
- href="https://www.ft.com/myaccount/personal-details"
72
- target="_blank"
73
- rel="noopener noreferrer"
74
- data-trackable="yourAccount"
75
- >
76
- account settings
77
- </a>
78
- to view or edit your account. If you need to get in touch call us on
79
- <a href="tel:+442077556248"
80
- class="ncf__link ncf__link--external"
140
+ <div class="ncf__divider-horizontal">
141
+ </div>
142
+ <div class="ncf__confirmation--links ncf__margin">
143
+ <div class="ncf__confirmation--socials">
144
+ <b>
145
+ Breaking news alerts, direct to your lock screen
146
+ </b>
147
+ <p class="ncf__confirmation--mobile">
148
+ Download our apps or follow us on our socials
149
+ </p>
150
+ <p class="ncf__confirmation--desktop">
151
+ Find us in the app and google play stores or follow us on our socials
152
+ </p>
153
+ <div class="ncf__confirmation--badges">
154
+ <div class="o-social-follow"
155
+ aria-label="Follow on social media"
156
+ >
157
+ <a href="https://www.instagram.com/financialtimes"
158
+ class="o-social-follow-icon o-social-follow-icon--instagram"
159
+ target="_blank"
160
+ rel="noopener noreferrer"
161
+ data-trackable="register-social-instagram"
162
+ >
163
+ <span class="o-social-follow-icon__label">
164
+ on instagram
165
+ </span>
166
+ </a>
167
+ <a href="https://www.linkedin.com/company/financial-times"
168
+ class="o-social-follow-icon o-social-follow-icon--linkedin"
169
+ target="_blank"
170
+ rel="noopener noreferrer"
171
+ data-trackable="register-social-linkedin"
172
+ >
173
+ <span class="o-social-follow-icon__label">
174
+ on linkedin
175
+ </span>
176
+ </a>
177
+ <a href="https://twitter.com/FT"
178
+ class="o-social-follow-icon o-social-follow-icon--twitter"
179
+ target="_blank"
180
+ rel="noopener noreferrer"
181
+ data-trackable="register-social-twitter"
182
+ >
183
+ <span class="o-social-follow-icon__label">
184
+ on twitter
185
+ </span>
186
+ </a>
187
+ <a href="https://www.facebook.com/financialtimes"
188
+ class="o-social-follow-icon o-social-follow-icon--facebook"
189
+ target="_blank"
190
+ rel="noopener noreferrer"
191
+ data-trackable="register-social-facebook"
192
+ >
193
+ <span class="o-social-follow-icon__label">
194
+ on facebook
195
+ </span>
196
+ </a>
197
+ </div>
198
+ <div class="ncf__confirmation--mobile ncf__confirmation--app-badges"
199
+ aria-label="Download the app"
200
+ >
201
+ <a href="https://apps.apple.com/app/apple-store/id1200842933"
202
+ class="ncf-icon ncf-icon--apple"
203
+ target="_blank"
204
+ rel="noopener noreferrer"
205
+ data-trackable="register-app-apple"
206
+ >
207
+ <span class="o-social-follow-icon__label">
208
+ on apple
209
+ </span>
210
+ </a>
211
+ <a href="https://play.google.com/store/apps/details?id=com.ft.news"
212
+ class="ncf-icon ncf-icon--android"
213
+ target="_blank"
214
+ rel="noopener noreferrer"
215
+ data-trackable="register-app-android"
216
+ >
217
+ <span class="o-social-follow-icon__label">
218
+ on android
219
+ </span>
220
+ </a>
221
+ </div>
222
+ </div>
223
+ </div>
224
+ <div class="ncf__confirmation--alerts">
225
+ <b>
226
+ Set up email alerts in
227
+ <span aria-label="myFT"
228
+ class="ncf-icon ncf-icon--myft"
229
+ >
230
+ </span>
231
+ </b>
232
+ <p>
233
+ Choose the content you want to follow by personalising your alerts for the most important topics and additional newsletters
234
+ </p>
235
+ <a href="/myft"
236
+ class="margin-top-x4 ncf__button ncf__button--secondary"
237
+ data-trackable="register-personalise-my-alerts"
81
238
  >
82
- +44 (0) 207 755 6248
239
+ Personalise my alerts
83
240
  </a>
84
- . Or contact us for additional support.
85
- </p>
241
+ </div>
86
242
  </div>
87
- <p class="ncf__center">
88
- <a href="/products "
89
- class="ncf__button ncf__button--submit"
90
- >
91
- See our subscription packages
92
- </a>
93
- </p>
243
+ <a href="/"
244
+ target="_parent"
245
+ class="ncf__confirmation--finish ncf__button ncf__button--submit"
246
+ data-trackable="register-finish"
247
+ >
248
+ Finish
249
+ </a>
94
250
  </div>
95
251
  `;