@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,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LicenceConfirmation = LicenceConfirmation;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ 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; }
12
+ 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; }
13
+ function LicenceConfirmation(_ref) {
14
+ var _ref$isTrial = _ref.isTrial,
15
+ isTrial = _ref$isTrial === void 0 ? false : _ref$isTrial,
16
+ _ref$isEmbedded = _ref.isEmbedded,
17
+ isEmbedded = _ref$isEmbedded === void 0 ? false : _ref$isEmbedded,
18
+ _ref$duration = _ref.duration,
19
+ duration = _ref$duration === void 0 ? null : _ref$duration,
20
+ _ref$isEducationalLic = _ref.isEducationalLicence,
21
+ isEducationalLicence = _ref$isEducationalLic === void 0 ? false : _ref$isEducationalLic,
22
+ _ref$contentId = _ref.contentId,
23
+ contentId = _ref$contentId === void 0 ? '' : _ref$contentId,
24
+ _ref$ctaElement = _ref.ctaElement,
25
+ ctaElement = _ref$ctaElement === void 0 ? null : _ref$ctaElement,
26
+ _ref$bodyContent = _ref.bodyContent,
27
+ bodyContent = _ref$bodyContent === void 0 ? null : _ref$bodyContent;
28
+ var readingLinkProps = _objectSpread({
29
+ href: contentId === '' ? '/' : "/content/".concat(contentId),
30
+ className: 'ncf__link'
31
+ }, isEmbedded && {
32
+ target: '_top'
33
+ });
34
+ return /*#__PURE__*/_react["default"].createElement("div", {
35
+ className: "ncf ncf__wrapper"
36
+ }, /*#__PURE__*/_react["default"].createElement("div", {
37
+ className: "ncf__center"
38
+ }, /*#__PURE__*/_react["default"].createElement("div", {
39
+ className: "ncf__icon ncf__icon--tick ncf__icon--large"
40
+ }), /*#__PURE__*/_react["default"].createElement("div", {
41
+ className: "ncf__paragraph"
42
+ }, isTrial ? /*#__PURE__*/_react["default"].createElement("h1", {
43
+ className: "ncf__header ncf__header--confirmation"
44
+ }, "Your", duration ? " ".concat(duration) : '', " trial has started") : /*#__PURE__*/_react["default"].createElement("h1", {
45
+ className: "ncf__header ncf__header--confirmation"
46
+ }, "Great news, you have joined your", ' ', isEducationalLicence ? 'school' : 'company', " licence"))), bodyContent ? bodyContent : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("p", {
47
+ className: "ncf__paragraph"
48
+ }, "Go to myFT to personalise your feed & follow topics & articles of interest to you. Set this up now or later."), /*#__PURE__*/_react["default"].createElement("p", {
49
+ className: "ncf__paragraph"
50
+ }, "Explore the homepage & enjoy your unlimited access & exclusive content.")), ctaElement || /*#__PURE__*/_react["default"].createElement("p", {
51
+ className: "ncf__paragraph ncf__center"
52
+ }, /*#__PURE__*/_react["default"].createElement("a", {
53
+ className: "ncf__button ncf__button--submit",
54
+ href: "/myft"
55
+ }, "Go to myFT")), /*#__PURE__*/_react["default"].createElement("p", {
56
+ className: "ncf__paragraph ncf__center"
57
+ }, /*#__PURE__*/_react["default"].createElement("a", readingLinkProps, "Go to homepage")));
58
+ }
59
+ LicenceConfirmation.propTypes = {
60
+ isTrial: _propTypes["default"].bool,
61
+ isEmbedded: _propTypes["default"].bool,
62
+ duration: _propTypes["default"].string,
63
+ isEducationalLicence: _propTypes["default"].bool,
64
+ contentId: _propTypes["default"].string,
65
+ ctaElement: _propTypes["default"].node,
66
+ bodyContent: _propTypes["default"].element
67
+ };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LicenceHeader = LicenceHeader;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _licenceSignIn = require("./licence-sign-in");
11
+ var _licenceTitle = require("./licence-title");
12
+ function LicenceHeader(props) {
13
+ var _props$displayName = props.displayName,
14
+ displayName = _props$displayName === void 0 ? '' : _props$displayName,
15
+ _props$logoUrl = props.logoUrl,
16
+ logoUrl = _props$logoUrl === void 0 ? '' : _props$logoUrl,
17
+ _props$isTrial = props.isTrial,
18
+ isTrial = _props$isTrial === void 0 ? false : _props$isTrial,
19
+ _props$isB2cPartnersh = props.isB2cPartnershipLicence,
20
+ isB2cPartnershipLicence = _props$isB2cPartnersh === void 0 ? false : _props$isB2cPartnersh,
21
+ _props$welcomeText = props.welcomeText,
22
+ welcomeText = _props$welcomeText === void 0 ? '' : _props$welcomeText,
23
+ _props$url = props.url,
24
+ url = _props$url === void 0 ? '' : _props$url;
25
+ function createMarkup(text) {
26
+ return {
27
+ __html: text
28
+ };
29
+ }
30
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, Boolean(logoUrl) && /*#__PURE__*/_react["default"].createElement("img", {
31
+ className: "ncf__logo",
32
+ alt: "logo",
33
+ src: logoUrl
34
+ }), /*#__PURE__*/_react["default"].createElement(_licenceTitle.LicenceTitle, {
35
+ displayName: displayName,
36
+ isTrial: isTrial,
37
+ isB2cPartnershipLicence: isB2cPartnershipLicence
38
+ }), !isTrial && !isB2cPartnershipLicence && /*#__PURE__*/_react["default"].createElement(_licenceSignIn.LicenceSignIn, {
39
+ displayName: displayName,
40
+ url: url
41
+ }), welcomeText && /*#__PURE__*/_react["default"].createElement("p", {
42
+ dangerouslySetInnerHTML: createMarkup(welcomeText)
43
+ }));
44
+ }
45
+ LicenceHeader.propTypes = {
46
+ displayName: _propTypes["default"].string,
47
+ logoUrl: _propTypes["default"].string,
48
+ isTrial: _propTypes["default"].bool,
49
+ welcomeText: _propTypes["default"].string,
50
+ isB2cPartnershipLicence: _propTypes["default"].bool,
51
+ url: _propTypes["default"].string
52
+ };
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LicenceSignIn = LicenceSignIn;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ function LicenceSignIn(_ref) {
11
+ var _ref$displayName = _ref.displayName,
12
+ displayName = _ref$displayName === void 0 ? '' : _ref$displayName,
13
+ _ref$url = _ref.url,
14
+ url = _ref$url === void 0 ? '' : _ref$url;
15
+ return /*#__PURE__*/_react["default"].createElement("div", {
16
+ className: "ncf__center"
17
+ }, renderSignInTitle(displayName), url !== '' && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("a", {
18
+ href: url,
19
+ className: "ncf__button--secondary ncf__button--mid-width"
20
+ }, "Sign in")));
21
+ }
22
+ function renderSignInTitle(displayName) {
23
+ var signInTitle;
24
+ if (displayName !== '') {
25
+ signInTitle = /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("span", null, "Have you already joined the "), /*#__PURE__*/_react["default"].createElement("span", {
26
+ className: "ncf__bold-licence-text"
27
+ }, displayName), /*#__PURE__*/_react["default"].createElement("span", null, " account?"));
28
+ } else {
29
+ signInTitle = /*#__PURE__*/_react["default"].createElement("p", null, "Already have a subscription?");
30
+ }
31
+ return signInTitle;
32
+ }
33
+ LicenceSignIn.propTypes = {
34
+ displayName: _propTypes["default"].string,
35
+ url: _propTypes["default"].string
36
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LicenceTitle = LicenceTitle;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ function LicenceTitle(_ref) {
11
+ var _ref$displayName = _ref.displayName,
12
+ displayName = _ref$displayName === void 0 ? '' : _ref$displayName,
13
+ _ref$isTrial = _ref.isTrial,
14
+ isTrial = _ref$isTrial === void 0 ? false : _ref$isTrial,
15
+ _ref$isB2cPartnership = _ref.isB2cPartnershipLicence,
16
+ isB2cPartnershipLicence = _ref$isB2cPartnership === void 0 ? false : _ref$isB2cPartnership;
17
+ if (isB2cPartnershipLicence || isTrial) {
18
+ return /*#__PURE__*/_react["default"].createElement("h1", {
19
+ className: "ncf__header"
20
+ }, displayName || 'Welcome to the Financial Times');
21
+ }
22
+ {
23
+ return renderB2BTitle(displayName);
24
+ }
25
+ }
26
+ function renderB2BTitle(displayName) {
27
+ if (!displayName) {
28
+ return /*#__PURE__*/_react["default"].createElement("h1", {
29
+ className: "ncf__header"
30
+ }, "Join your FT.com subscription");
31
+ }
32
+ return /*#__PURE__*/_react["default"].createElement("h1", {
33
+ className: "ncf__header"
34
+ }, /*#__PURE__*/_react["default"].createElement("span", {
35
+ className: "ncf__light-licence-text"
36
+ }, "Great news!", /*#__PURE__*/_react["default"].createElement("span", {
37
+ className: "ncf__bold-licence-text"
38
+ }, " ", displayName, " "), "has an", /*#__PURE__*/_react["default"].createElement("span", {
39
+ className: "ncf__bold-licence-text"
40
+ }, " FT subscription "), "you can join"));
41
+ }
42
+ LicenceTitle.propTypes = {
43
+ displayName: _propTypes["default"].string,
44
+ isTrial: _propTypes["default"].bool,
45
+ isB2cPartnershipLicence: _propTypes["default"].bool
46
+ };
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LiteSubConfirmation = LiteSubConfirmation;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var EMAIL_DEFAULT_TEXT = 'your email';
11
+ var PREMIUM_OFFER = 'P2';
12
+ var isPremium = function isPremium(productCode) {
13
+ return productCode === PREMIUM_OFFER;
14
+ };
15
+ var DetailsMobileView = function DetailsMobileView(_ref) {
16
+ var details = _ref.details;
17
+ return /*#__PURE__*/_react["default"].createElement("dl", {
18
+ className: "ncf__list ncf__lite-sub__details ncf__lite-sub-confirmation--hidden-md ncf__lite-sub-confirmation--hidden-lg"
19
+ }, details.map(function (detail, index) {
20
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
21
+ key: index
22
+ }, /*#__PURE__*/_react["default"].createElement("dt", {
23
+ className: "ncf__list-title"
24
+ }, detail.title), /*#__PURE__*/_react["default"].createElement("dd", {
25
+ className: "ncf__list-data"
26
+ }, detail.data));
27
+ }));
28
+ };
29
+ function LiteSubConfirmation(_ref2) {
30
+ var _ref2$productCode = _ref2.productCode,
31
+ productCode = _ref2$productCode === void 0 ? '' : _ref2$productCode,
32
+ _ref2$offerName = _ref2.offerName,
33
+ offerName = _ref2$offerName === void 0 ? '' : _ref2$offerName,
34
+ _ref2$subscriptionAmo = _ref2.subscriptionAmount,
35
+ subscriptionAmount = _ref2$subscriptionAmo === void 0 ? '' : _ref2$subscriptionAmo,
36
+ _ref2$email = _ref2.email,
37
+ email = _ref2$email === void 0 ? EMAIL_DEFAULT_TEXT : _ref2$email,
38
+ _ref2$details = _ref2.details,
39
+ details = _ref2$details === void 0 ? [] : _ref2$details;
40
+ var detailElements = details && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("h2", {
41
+ className: "ncf__header2--afterline"
42
+ }, "Your billing details"), /*#__PURE__*/_react["default"].createElement("dl", {
43
+ className: "ncf__list ncf__lite-sub-confirmation--hidden-sm"
44
+ }, details.map(function (detail, index) {
45
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
46
+ key: index
47
+ }, /*#__PURE__*/_react["default"].createElement("dt", {
48
+ className: "ncf__list-title"
49
+ }, detail.title), /*#__PURE__*/_react["default"].createElement("dd", {
50
+ className: "ncf__list-data"
51
+ }, detail.data));
52
+ })), /*#__PURE__*/_react["default"].createElement(DetailsMobileView, {
53
+ details: details
54
+ }));
55
+ return /*#__PURE__*/_react["default"].createElement("div", {
56
+ className: "ncf ncf__wrapper"
57
+ }, /*#__PURE__*/_react["default"].createElement("div", {
58
+ className: "ncf__center"
59
+ }, /*#__PURE__*/_react["default"].createElement("div", {
60
+ className: "ncf__icon ncf__icon--tick ncf__icon--large"
61
+ }), /*#__PURE__*/_react["default"].createElement("p", {
62
+ className: "ncf__paragraph--reduced-padding ncf__paragraph--subscription-confirmation"
63
+ }, "You've been upgraded to:"), /*#__PURE__*/_react["default"].createElement("h1", {
64
+ className: "ncf__header ncf__header--confirmation"
65
+ }, isPremium(productCode) ? 'Premium Digital' : 'Standard Digital')), /*#__PURE__*/_react["default"].createElement("p", {
66
+ className: "ncf__paragraph"
67
+ }, "Thank you for choosing to subscribe to ", /*#__PURE__*/_react["default"].createElement("strong", null, offerName), ". We are not quite ready to deliver this type of subscription, so we have upgraded you to a ", isPremium(productCode) ? 'Premium' : 'Digital', " 3 month subscription at no additional cost."), /*#__PURE__*/_react["default"].createElement("p", {
68
+ className: "ncf__paragraph"
69
+ }, "For ", subscriptionAmount, " a month, here's what your subscription covers:"), /*#__PURE__*/_react["default"].createElement("ul", {
70
+ className: "ncf__unordered-list"
71
+ }, /*#__PURE__*/_react["default"].createElement("li", null, "Access to stories from over 600 journalists in 50+ countries covering markets, politics, business, tech and more"), /*#__PURE__*/_react["default"].createElement("li", null, "FirstFT: a daily newsletter with the global stories you need to know"), /*#__PURE__*/_react["default"].createElement("li", null, "Share 10 articles per month with colleagues, family and friends")), /*#__PURE__*/_react["default"].createElement("p", {
72
+ className: "ncf__paragraph"
73
+ }, "However, if you would like to cancel your subscription, please contact our", ' ', /*#__PURE__*/_react["default"].createElement("a", {
74
+ className: "ncf__link ncf__link--external",
75
+ href: "https://help.ft.com/contact/",
76
+ target: "_blank",
77
+ rel: "noopener noreferrer"
78
+ }, "customer care team"), ' ', "and they will arrange this for you."), /*#__PURE__*/_react["default"].createElement("p", {
79
+ className: "ncf__center"
80
+ }, /*#__PURE__*/_react["default"].createElement("a", {
81
+ href: "/",
82
+ className: "ncf__button ncf__button--submit ncf__button--margin ncf__lite-sub-confirmation--lite-sub-cta"
83
+ }, "Go to FT.com")), /*#__PURE__*/_react["default"].createElement("p", {
84
+ className: "ncf__paragraph"
85
+ }, "We've sent confirmation to ", email, ". Make sure you check your spam folder if you don\u2019t receive it."), /*#__PURE__*/_react["default"].createElement("p", {
86
+ className: "ncf__paragraph"
87
+ }, "Here's a summary of your", ' ', isPremium(productCode) ? 'Premium Digital' : 'Standard Digital', ' ', "subscription:"), detailElements, /*#__PURE__*/_react["default"].createElement("div", {
88
+ className: "ncf__headed-paragraph"
89
+ }, /*#__PURE__*/_react["default"].createElement("h3", {
90
+ className: "ncf__header"
91
+ }, "Something not right?"), /*#__PURE__*/_react["default"].createElement("p", {
92
+ className: "ncf__paragraph"
93
+ }, "Go to your", ' ', /*#__PURE__*/_react["default"].createElement("a", {
94
+ className: "ncf__link ncf__link--external",
95
+ href: "https://www.ft.com/myaccount/personal-details",
96
+ target: "_blank",
97
+ rel: "noopener noreferrer",
98
+ "data-trackable": "yourAccount"
99
+ }, "account settings"), ' ', "to view or edit your account. If you need to get in touch call us on", ' ', /*#__PURE__*/_react["default"].createElement("a", {
100
+ href: "tel:+18556852372",
101
+ className: "ncf__link ncf__link--external"
102
+ }, "+1 855 685 2372"), ". Or", ' ', /*#__PURE__*/_react["default"].createElement("a", {
103
+ className: "ncf__link ncf__link--external",
104
+ href: "https://help.ft.com/contact/",
105
+ target: "_blank",
106
+ rel: "noopener noreferrer"
107
+ }, "contact us"), ' ', "for additional support.")));
108
+ }
109
+ LiteSubConfirmation.propTypes = {
110
+ offerName: _propTypes["default"].string.isRequired,
111
+ subscriptionAmount: _propTypes["default"].string.isRequired,
112
+ productCode: _propTypes["default"].string,
113
+ email: _propTypes["default"].string,
114
+ details: _propTypes["default"].arrayOf(_propTypes["default"].shape({
115
+ title: _propTypes["default"].string.isRequired,
116
+ data: _propTypes["default"].string.isRequired
117
+ }))
118
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Loader = Loader;
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 Loader(_ref) {
15
+ var children = _ref.children,
16
+ showLoader = _ref.showLoader,
17
+ title = _ref.title,
18
+ inElement = _ref.inElement;
19
+ var label = title ? /*#__PURE__*/_react["default"].createElement("div", {
20
+ className: "ncf__loader__content__title",
21
+ id: "loader-aria-label"
22
+ }, title) : /*#__PURE__*/_react["default"].createElement("div", {
23
+ className: "ncf__hidden",
24
+ id: "loader-aria-label"
25
+ }, "Loading");
26
+ var className = (0, _classnames["default"])(['ncf__loader', {
27
+ 'is-visible': showLoader
28
+ }, {
29
+ ncf__hidden: !showLoader
30
+ }, {
31
+ 'ncf__loader--element': inElement
32
+ }]);
33
+ var props = _objectSpread({
34
+ className: className,
35
+ role: 'dialog',
36
+ 'aria-labelledby': 'loader-aria-label',
37
+ 'aria-describedby': 'loader-aria-description',
38
+ 'aria-modal': true
39
+ }, showLoader && {
40
+ tabIndex: 1
41
+ });
42
+ return /*#__PURE__*/_react["default"].createElement("div", props, /*#__PURE__*/_react["default"].createElement("div", {
43
+ className: "ncf__loader__content"
44
+ }, label, /*#__PURE__*/_react["default"].createElement("div", {
45
+ className: "ncf__loader__content__main",
46
+ id: "loader-aria-description"
47
+ }, children)));
48
+ }
49
+ Loader.propTypes = {
50
+ children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]),
51
+ showLoader: _propTypes["default"].bool,
52
+ title: _propTypes["default"].string,
53
+ inElement: _propTypes["default"].bool
54
+ };
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Message = Message;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ function Message(_ref) {
12
+ var title = _ref.title,
13
+ message = _ref.message,
14
+ _ref$additional = _ref.additional,
15
+ additional = _ref$additional === void 0 ? [] : _ref$additional,
16
+ _ref$actions = _ref.actions,
17
+ actions = _ref$actions === void 0 ? null : _ref$actions,
18
+ name = _ref.name,
19
+ target = _ref.target,
20
+ isNotice = _ref.isNotice,
21
+ isError = _ref.isError,
22
+ isSuccess = _ref.isSuccess,
23
+ isInform = _ref.isInform,
24
+ isStaticMessage = _ref.isStaticMessage,
25
+ isHidden = _ref.isHidden;
26
+ var additionalMessages = additional.map(function (text, index) {
27
+ return /*#__PURE__*/_react["default"].createElement("p", {
28
+ className: "o-message__content--additional",
29
+ key: index,
30
+ dangerouslySetInnerHTML: {
31
+ __html: text
32
+ }
33
+ });
34
+ });
35
+ var oMessageClassNames = (0, _classnames["default"])({
36
+ 'o-message': true,
37
+ 'o-message--inner': !isStaticMessage,
38
+ 'o-message--notice': isNotice && !isStaticMessage,
39
+ 'o-message--alert': !isNotice && !isStaticMessage,
40
+ 'o-message--error': isError,
41
+ 'o-message--success': !isError && isSuccess,
42
+ 'o-message--inform': !isError && !isSuccess && isInform,
43
+ 'o-message--neutral': !isError && !isSuccess && !isInform
44
+ });
45
+ var ncfClassNames = (0, _classnames["default"])('ncf__message', {
46
+ ncf__hidden: isHidden
47
+ });
48
+ var callToActionsList = actions ? /*#__PURE__*/_react["default"].createElement("div", {
49
+ className: "o-message__actions"
50
+ }, actions.map(function (_ref2, index) {
51
+ var link = _ref2.link,
52
+ isSecondary = _ref2.isSecondary,
53
+ text = _ref2.text;
54
+ return /*#__PURE__*/_react["default"].createElement("a", {
55
+ href: link,
56
+ key: index,
57
+ target: target,
58
+ className: isSecondary ? 'o-message__actions__secondary' : 'o-message__actions__primary'
59
+ }, text);
60
+ })) : null;
61
+ return /*#__PURE__*/_react["default"].createElement("div", {
62
+ className: ncfClassNames,
63
+ "data-message-name": name
64
+ }, /*#__PURE__*/_react["default"].createElement("div", {
65
+ className: oMessageClassNames,
66
+ "data-o-component": "o-message"
67
+ }, /*#__PURE__*/_react["default"].createElement("div", {
68
+ className: "o-message__container"
69
+ }, /*#__PURE__*/_react["default"].createElement("div", {
70
+ className: "o-message__content"
71
+ }, /*#__PURE__*/_react["default"].createElement("p", {
72
+ className: "o-message__content-main"
73
+ }, title ? /*#__PURE__*/_react["default"].createElement("span", {
74
+ className: "o-message__content-highlight"
75
+ }, title) : null, /*#__PURE__*/_react["default"].createElement("span", {
76
+ className: "o-message__content-detail",
77
+ dangerouslySetInnerHTML: {
78
+ __html: message
79
+ }
80
+ })), additionalMessages, callToActionsList))));
81
+ }
82
+ var actionType = _propTypes["default"].shape({
83
+ link: _propTypes["default"].string.isRequired,
84
+ isSecondary: _propTypes["default"].bool,
85
+ text: _propTypes["default"].string,
86
+ target: _propTypes["default"].oneOf(['_self'])
87
+ });
88
+ Message.propTypes = {
89
+ title: _propTypes["default"].string,
90
+ message: _propTypes["default"].string.isRequired,
91
+ additional: _propTypes["default"].arrayOf(_propTypes["default"].string),
92
+ actions: _propTypes["default"].arrayOf(actionType),
93
+ name: _propTypes["default"].string,
94
+ target: _propTypes["default"].string,
95
+ isStaticMessage: _propTypes["default"].bool,
96
+ isNotice: _propTypes["default"].bool,
97
+ isError: _propTypes["default"].bool,
98
+ isSuccess: _propTypes["default"].bool,
99
+ isInform: _propTypes["default"].bool,
100
+ isHidden: _propTypes["default"].bool
101
+ };
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
+ var _index = require("./index");
6
+ var _expectToRenderCorrectly = require("../test-jest/helpers/expect-to-render-correctly");
7
+ 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; }
8
+ 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; }
9
+ expect.extend(_expectToRenderCorrectly.expectToRenderCorrectly);
10
+ var ACTION_MOCK = {
11
+ text: 'Listen on Spotify',
12
+ link: 'https://open.spotify.com/album/2EpuND32cO7CX0gXZl2NB6'
13
+ };
14
+ describe('Message', function () {
15
+ it('render a message', function () {
16
+ var props = {
17
+ message: 'My message in a bottle'
18
+ };
19
+ expect(_index.Message).toRenderCorrectly(props);
20
+ });
21
+ it('can render a title', function () {
22
+ var props = {
23
+ title: 'Reggatta de Blanc',
24
+ message: 'My message in a bottle'
25
+ };
26
+ expect(_index.Message).toRenderCorrectly(props);
27
+ });
28
+ it('can render additional information', function () {
29
+ var props = {
30
+ title: 'Reggatta de Blanc',
31
+ message: 'My message in a bottle',
32
+ additional: ['Sting', 'Steward Copeland', 'Andy Summers']
33
+ };
34
+ expect(_index.Message).toRenderCorrectly(props);
35
+ });
36
+ it('can render some actions as primary', function () {
37
+ var props = {
38
+ title: 'Reggatta de Blanc',
39
+ message: 'My message in a bottle',
40
+ actions: [ACTION_MOCK]
41
+ };
42
+ expect(_index.Message).toRenderCorrectly(props);
43
+ });
44
+ it('can render some actions as secondary', function () {
45
+ var props = {
46
+ title: 'Reggatta de Blanc',
47
+ message: 'My message in a bottle',
48
+ actions: [_objectSpread(_objectSpread({}, ACTION_MOCK), {}, {
49
+ isSecondary: true
50
+ })]
51
+ };
52
+ expect(_index.Message).toRenderCorrectly(props);
53
+ });
54
+ it('can render a message as a Notice', function () {
55
+ var props = {
56
+ message: 'My message in a bottle',
57
+ isNotice: true
58
+ };
59
+ expect(_index.Message).toRenderCorrectly(props);
60
+ });
61
+ it('can render a message as an Error', function () {
62
+ var props = {
63
+ message: 'My message in a bottle',
64
+ isError: true
65
+ };
66
+ expect(_index.Message).toRenderCorrectly(props);
67
+ });
68
+ it('can render a message as a Success', function () {
69
+ var props = {
70
+ message: 'My message in a bottle',
71
+ isSuccess: true
72
+ };
73
+ expect(_index.Message).toRenderCorrectly(props);
74
+ });
75
+ it('can render a message as an Inform', function () {
76
+ var props = {
77
+ message: 'My message in a bottle',
78
+ isInform: true
79
+ };
80
+ expect(_index.Message).toRenderCorrectly(props);
81
+ });
82
+ it('can add a data attribute name', function () {
83
+ var props = {
84
+ message: 'My message in a bottle',
85
+ name: 'The Police best album ever'
86
+ };
87
+ expect(_index.Message).toRenderCorrectly(props);
88
+ });
89
+ it('can set the action link target of call to action buttons', function () {
90
+ var props = {
91
+ target: '_top',
92
+ actions: [ACTION_MOCK]
93
+ };
94
+ expect(_index.Message).toRenderCorrectly(props);
95
+ });
96
+ });
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Organisation = Organisation;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ function Organisation(_ref) {
12
+ var _ref$dataTrackable = _ref.dataTrackable,
13
+ dataTrackable = _ref$dataTrackable === void 0 ? 'organization' : _ref$dataTrackable,
14
+ _ref$errorText = _ref.errorText,
15
+ errorText = _ref$errorText === void 0 ? 'Please enter your organisation' : _ref$errorText,
16
+ _ref$fieldId = _ref.fieldId,
17
+ fieldId = _ref$fieldId === void 0 ? 'organisationField' : _ref$fieldId,
18
+ _ref$hasError = _ref.hasError,
19
+ hasError = _ref$hasError === void 0 ? false : _ref$hasError,
20
+ _ref$inputId = _ref.inputId,
21
+ inputId = _ref$inputId === void 0 ? 'organisation' : _ref$inputId,
22
+ inputName = _ref.inputName,
23
+ _ref$isDisabled = _ref.isDisabled,
24
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
25
+ _ref$label = _ref.label,
26
+ label = _ref$label === void 0 ? 'Organisation' : _ref$label,
27
+ _ref$placeHolder = _ref.placeHolder,
28
+ placeHolder = _ref$placeHolder === void 0 ? 'Enter your organisation' : _ref$placeHolder,
29
+ _ref$value = _ref.value,
30
+ value = _ref$value === void 0 ? '' : _ref$value;
31
+ // Use inputId if inputName is not explicitly passed.
32
+ inputName = inputName || inputId;
33
+ var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
34
+ 'o-forms-input--invalid': hasError
35
+ }]);
36
+ return /*#__PURE__*/_react["default"].createElement("label", {
37
+ id: fieldId,
38
+ className: "o-forms-field ncf__validation-error",
39
+ "data-validate": "required",
40
+ htmlFor: inputId
41
+ }, /*#__PURE__*/_react["default"].createElement("span", {
42
+ className: "o-forms-title"
43
+ }, /*#__PURE__*/_react["default"].createElement("span", {
44
+ className: "o-forms-title__main"
45
+ }, label)), /*#__PURE__*/_react["default"].createElement("span", {
46
+ className: inputWrapperClassNames
47
+ }, /*#__PURE__*/_react["default"].createElement("input", {
48
+ type: "text",
49
+ id: inputId,
50
+ name: inputName,
51
+ placeholder: placeHolder,
52
+ autoComplete: "organization",
53
+ "data-trackable": dataTrackable,
54
+ "aria-required": "true",
55
+ required: true,
56
+ disabled: isDisabled,
57
+ defaultValue: value
58
+ }), /*#__PURE__*/_react["default"].createElement("span", {
59
+ className: "o-forms-input__error"
60
+ }, errorText)));
61
+ }
62
+ Organisation.propTypes = {
63
+ dataTrackable: _propTypes["default"].string,
64
+ errorText: _propTypes["default"].string,
65
+ fieldId: _propTypes["default"].string,
66
+ hasError: _propTypes["default"].bool,
67
+ inputId: _propTypes["default"].string,
68
+ inputName: _propTypes["default"].string,
69
+ isDisabled: _propTypes["default"].bool,
70
+ label: _propTypes["default"].string,
71
+ placeHolder: _propTypes["default"].string,
72
+ value: _propTypes["default"].string
73
+ };