gogoclient 1.2.2

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 (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/components/AuthWrapper.js +61 -0
  4. package/dist/components/PageLayout.js +53 -0
  5. package/dist/components/RequireAuth.js +86 -0
  6. package/dist/components/index.js +27 -0
  7. package/dist/helpers/Root.js +206 -0
  8. package/dist/helpers/SubscriptionManager.js +61 -0
  9. package/dist/helpers/currentUserContext.js +12 -0
  10. package/dist/helpers/currentUserQuery.js +11 -0
  11. package/dist/helpers/getUrl.js +18 -0
  12. package/dist/helpers/sentry.js +25 -0
  13. package/dist/helpers/startClient.js +25 -0
  14. package/dist/helpers/subscriptionManagerContext.js +22 -0
  15. package/dist/index.js +109 -0
  16. package/dist/pages/ProviderConnection.page.js +99 -0
  17. package/dist/pages/ProviderConnection.queries.js +12 -0
  18. package/dist/pages/index.js +28 -0
  19. package/dist/theme/elements/Action.js +29 -0
  20. package/dist/theme/elements/ActionGroup.js +14 -0
  21. package/dist/theme/elements/AppBar.js +17 -0
  22. package/dist/theme/elements/Button.js +31 -0
  23. package/dist/theme/elements/Checkbox.js +38 -0
  24. package/dist/theme/elements/GlobalStyle.js +10 -0
  25. package/dist/theme/elements/Logo.js +10 -0
  26. package/dist/theme/elements/Menu.js +15 -0
  27. package/dist/theme/elements/Radio.js +27 -0
  28. package/dist/theme/elements/TextField.js +39 -0
  29. package/dist/theme/elements/index.js +76 -0
  30. package/dist/theme/index.js +93 -0
  31. package/dist/toolkit/darkenLighten.js +57 -0
  32. package/dist/toolkit/headingScale.js +29 -0
  33. package/dist/toolkit/index.js +79 -0
  34. package/dist/toolkit/media.js +23 -0
  35. package/dist/toolkit/override.js +74 -0
  36. package/dist/toolkit/styles/fadeInOut.js +11 -0
  37. package/dist/toolkit/styles/rotate360.js +11 -0
  38. package/dist/toolkit/themeHelper.js +53 -0
  39. package/dist/ui/_helpers/_helpers.js +69 -0
  40. package/dist/ui/_helpers/cssSnippets.js +11 -0
  41. package/dist/ui/_helpers/index.js +40 -0
  42. package/dist/ui/_helpers/useBreakpoint.js +35 -0
  43. package/dist/ui/assignReviewers/AssignReviewers.js +174 -0
  44. package/dist/ui/assignReviewers/InviteRowProp.js +130 -0
  45. package/dist/ui/assignReviewers/ReviewerTable.js +268 -0
  46. package/dist/ui/assignReviewers/SearchBox.js +160 -0
  47. package/dist/ui/assignReviewers/SuggestedReviewer.js +28 -0
  48. package/dist/ui/assignReviewers/index.js +13 -0
  49. package/dist/ui/authentication/AuthenticationForm.js +87 -0
  50. package/dist/ui/authentication/AuthenticationHeader.js +13 -0
  51. package/dist/ui/authentication/AuthenticationWrapper.js +13 -0
  52. package/dist/ui/authentication/ChangePassword.js +128 -0
  53. package/dist/ui/authentication/DeactivatedUser.js +17 -0
  54. package/dist/ui/authentication/Login.js +74 -0
  55. package/dist/ui/authentication/ProfileForm.js +79 -0
  56. package/dist/ui/authentication/ProviderConnection.js +69 -0
  57. package/dist/ui/authentication/RequestPasswordReset.js +89 -0
  58. package/dist/ui/authentication/ResetPassword.js +96 -0
  59. package/dist/ui/authentication/Signup.js +180 -0
  60. package/dist/ui/authentication/SuccessSubTitle.js +20 -0
  61. package/dist/ui/authentication/VerifyCheck.js +55 -0
  62. package/dist/ui/authentication/VerifyEmail.js +119 -0
  63. package/dist/ui/authentication/index.js +104 -0
  64. package/dist/ui/chat/ChatInput.js +63 -0
  65. package/dist/ui/chat/ChatMessage.js +67 -0
  66. package/dist/ui/chat/ChatMessageList.js +45 -0
  67. package/dist/ui/chat/ChatThread.js +41 -0
  68. package/dist/ui/chat/index.js +34 -0
  69. package/dist/ui/common/AutoComplete.js +56 -0
  70. package/dist/ui/common/Button.js +83 -0
  71. package/dist/ui/common/ButtonGroup.js +58 -0
  72. package/dist/ui/common/Checkbox.js +30 -0
  73. package/dist/ui/common/CheckboxGroup.js +42 -0
  74. package/dist/ui/common/CokoLink.js +24 -0
  75. package/dist/ui/common/Collapse.js +14 -0
  76. package/dist/ui/common/DateParser.js +49 -0
  77. package/dist/ui/common/Divider.js +8 -0
  78. package/dist/ui/common/Empty.js +14 -0
  79. package/dist/ui/common/Form.js +216 -0
  80. package/dist/ui/common/FormSection.js +35 -0
  81. package/dist/ui/common/Headings.js +74 -0
  82. package/dist/ui/common/Input.js +72 -0
  83. package/dist/ui/common/InputNumber.js +54 -0
  84. package/dist/ui/common/InviteStatus.js +63 -0
  85. package/dist/ui/common/Layout.js +17 -0
  86. package/dist/ui/common/LinkWithoutStyles.js +12 -0
  87. package/dist/ui/common/List.js +390 -0
  88. package/dist/ui/common/Modal.js +17 -0
  89. package/dist/ui/common/Note.js +23 -0
  90. package/dist/ui/common/Page.js +33 -0
  91. package/dist/ui/common/Pagination.js +126 -0
  92. package/dist/ui/common/Popup.js +146 -0
  93. package/dist/ui/common/Radio.js +54 -0
  94. package/dist/ui/common/Result.js +8 -0
  95. package/dist/ui/common/Ribbon.js +54 -0
  96. package/dist/ui/common/Search.js +30 -0
  97. package/dist/ui/common/Select.js +148 -0
  98. package/dist/ui/common/Spin.js +87 -0
  99. package/dist/ui/common/Split.js +49 -0
  100. package/dist/ui/common/Status.js +53 -0
  101. package/dist/ui/common/Switch.js +47 -0
  102. package/dist/ui/common/Table.js +111 -0
  103. package/dist/ui/common/Tabs.js +8 -0
  104. package/dist/ui/common/TabsStyled.js +65 -0
  105. package/dist/ui/common/TextArea.js +29 -0
  106. package/dist/ui/common/Typography.js +9 -0
  107. package/dist/ui/common/VisuallyHiddenElement.js +17 -0
  108. package/dist/ui/common/_reusableStyles.js +14 -0
  109. package/dist/ui/common/index.js +341 -0
  110. package/dist/ui/index.js +49 -0
  111. package/package.json +114 -0
  112. package/scripts/coko-client-build.js +42 -0
  113. package/scripts/coko-client-build.sh +28 -0
  114. package/scripts/coko-client-dev.js +16 -0
  115. package/scripts/coko-client-dev.sh +28 -0
  116. package/scripts/env.sh +41 -0
  117. package/webpack/changes.md +20 -0
  118. package/webpack/index.ejs +15 -0
  119. package/webpack/noop.js +11 -0
  120. package/webpack/webpack.config.js +483 -0
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _toolkit = require("../../toolkit");
12
+ var _common = require("../common");
13
+ var _templateObject, _templateObject2, _templateObject3;
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
16
+ 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; }
17
+ 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) { _defineProperty(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; }
18
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
20
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
24
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
26
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
27
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
28
+ var Wrapper = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n gap: ", ";\n margin: 0 auto;\n width: 100%;\n\n @media (min-width: ", ") {\n padding: ", ";\n }\n"])), (0, _toolkit.grid)(1), (0, _toolkit.th)('mediaQueries.small'), (0, _toolkit.grid)(4));
29
+ var StyledSelect = (0, _styledComponents["default"])(_common.Select)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex-grow: 1;\n\n .react-select__control {\n border: 0;\n box-shadow: ", " 0 0 0 1px;\n padding: 0 ", ";\n transition: box-shadow 0.2s ease-in;\n }\n\n .react-select__control--is-focused {\n box-shadow: ", " 0 0 0 2px;\n }\n\n .react-select__menu {\n margin-top: 4px;\n }\n"])), (0, _toolkit.th)('colorBorder'), (0, _toolkit.grid)(1), (0, _toolkit.th)('colorPrimary'));
30
+ var AddButton = (0, _styledComponents["default"])(_common.Button)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n height: 100%;\n"])));
31
+ var SearchBox = function SearchBox(props) {
32
+ var additionalSearchFields = props.additionalSearchFields,
33
+ className = props.className,
34
+ searchPlaceholder = props.searchPlaceholder,
35
+ onAdd = props.onAdd,
36
+ onSearch = props.onSearch;
37
+ var _useState = (0, _react.useState)([]),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ selection = _useState2[0],
40
+ setSelection = _useState2[1];
41
+ var _useState3 = (0, _react.useState)(false),
42
+ _useState4 = _slicedToArray(_useState3, 2),
43
+ loadingSearchResults = _useState4[0],
44
+ setLoadingSearchResults = _useState4[1];
45
+ var _useState5 = (0, _react.useState)([]),
46
+ _useState6 = _slicedToArray(_useState5, 2),
47
+ searchResults = _useState6[0],
48
+ setSearchResults = _useState6[1];
49
+ var handleSearch = function handleSearch(searchValue) {
50
+ setLoadingSearchResults(true);
51
+ onSearch(searchValue).then(function (data) {
52
+ if (!additionalSearchFields.length || !data.length) {
53
+ setSearchResults(data);
54
+ return;
55
+ }
56
+ var nameMatchData = data.filter(function (d) {
57
+ return d.displayName.toLowerCase().includes(searchValue.toLowerCase());
58
+ });
59
+ var otherData = data.filter(function (d) {
60
+ return !d.displayName.toLowerCase().includes(searchValue.toLowerCase());
61
+ });
62
+ var parsedData = [];
63
+ nameMatchData.length && parsedData.push({
64
+ label: 'Reviewer Name',
65
+ options: nameMatchData.map(function (n) {
66
+ return _objectSpread(_objectSpread({}, n), {}, {
67
+ key: "displayName-".concat(n.id)
68
+ });
69
+ })
70
+ });
71
+ additionalSearchFields.forEach(function (field) {
72
+ if (field.items && Array.isArray(field.items)) {
73
+ field.items.forEach(function (item) {
74
+ if (!item.toLowerCase().includes(searchValue.toLowerCase())) return;
75
+ var group = {
76
+ label: "".concat(field.label, ": ").concat(item),
77
+ options: []
78
+ };
79
+ var filteredData = otherData.filter(function (d) {
80
+ return d[field.value] !== undefined && d[field.value].includes(item);
81
+ });
82
+ if (!filteredData.length) return;
83
+ group.options = filteredData.map(function (f) {
84
+ return _objectSpread(_objectSpread({}, f), {}, {
85
+ key: "".concat(field.value, "-").concat(item, "-").concat(f.value)
86
+ });
87
+ });
88
+ parsedData.push(group);
89
+ });
90
+ } else {
91
+ var group = {
92
+ label: field.label,
93
+ options: []
94
+ };
95
+ var filteredData = otherData.filter(function (d) {
96
+ return d[field.value] !== undefined && d[field.value] !== false;
97
+ });
98
+ if (!filteredData.length) return;
99
+ group.options = filteredData.map(function (f) {
100
+ return _objectSpread(_objectSpread({}, f), {}, {
101
+ key: "".concat(field.value, "-").concat(f.value)
102
+ });
103
+ });
104
+ parsedData.push(group);
105
+ }
106
+ });
107
+ setSearchResults(parsedData);
108
+ })["finally"](function () {
109
+ setLoadingSearchResults(false);
110
+ });
111
+ };
112
+ var handleAdd = function handleAdd() {
113
+ onAdd(selection.map(function (s) {
114
+ return s.value;
115
+ }))["finally"](function () {
116
+ setSearchResults([]);
117
+ setSelection([]);
118
+ });
119
+ };
120
+ return /*#__PURE__*/_react["default"].createElement(Wrapper, {
121
+ className: className
122
+ }, /*#__PURE__*/_react["default"].createElement(StyledSelect, {
123
+ async: true,
124
+ defaultOpen: false,
125
+ labelInValue: true,
126
+ loading: loadingSearchResults,
127
+ mode: "multiple",
128
+ onChange: setSelection,
129
+ onSearch: handleSearch,
130
+ options: searchResults,
131
+ placeholder: searchPlaceholder,
132
+ value: selection
133
+ }), /*#__PURE__*/_react["default"].createElement(AddButton, {
134
+ "aria-labelledby": "reviewer-team",
135
+ disabled: selection.length === 0,
136
+ onClick: handleAdd,
137
+ type: "primary"
138
+ }, "Add User", selection.length > 1 && 's'));
139
+ };
140
+ SearchBox.propTypes = {
141
+ /** Additional search fields definitions to display on search */
142
+ additionalSearchFields: _propTypes["default"].arrayOf(_propTypes["default"].shape({
143
+ label: _propTypes["default"].string.isRequired,
144
+ value: _propTypes["default"].string.isRequired,
145
+ items: _propTypes["default"].arrayOf(_propTypes["default"].string)
146
+ })),
147
+ /** Function to run when "Add user(s)" is clicked */
148
+ onAdd: _propTypes["default"].func,
149
+ /** Function to run when typing into the search field */
150
+ onSearch: _propTypes["default"].func,
151
+ /** Placeholder for the search bar */
152
+ searchPlaceholder: _propTypes["default"].string
153
+ };
154
+ SearchBox.defaultProps = {
155
+ additionalSearchFields: [],
156
+ onAdd: function onAdd() {},
157
+ onSearch: function onSearch() {},
158
+ searchPlaceholder: 'Add a reviewer to the list'
159
+ };
160
+ var _default = exports["default"] = SearchBox;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _toolkit = require("../../toolkit");
11
+ var _templateObject, _templateObject2;
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
14
+ var Wrapper = _styledComponents["default"].span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border: 1px dashed ", ";\n font-size: ", ";\n padding: ", ";\n"])), (0, _toolkit.th)('colorPrimary'), (0, _toolkit.th)('fontSizeBaseSmall'), (0, _toolkit.grid)(1));
15
+ var Label = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n color: ", ";\n text-transform: uppercase;\n"])), (0, _toolkit.th)('colorPrimary'));
16
+ var SuggestedReviewer = function SuggestedReviewer(props) {
17
+ var className = props.className,
18
+ name = props.name;
19
+ return /*#__PURE__*/_react["default"].createElement(Wrapper, {
20
+ className: className
21
+ }, /*#__PURE__*/_react["default"].createElement(Label, null, "Author Suggested Reviewer:"), " ", name);
22
+ };
23
+ SuggestedReviewer.propTypes = {
24
+ /** Display name of suggested reviewer */
25
+ name: _propTypes["default"].string.isRequired
26
+ };
27
+ SuggestedReviewer.defaultProps = {};
28
+ var _default = exports["default"] = SuggestedReviewer;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AssignReviewers", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _AssignReviewers["default"];
10
+ }
11
+ });
12
+ var _AssignReviewers = _interopRequireDefault(require("./AssignReviewers"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _toolkit = require("../../toolkit");
11
+ var _common = require("../common");
12
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
14
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
15
+ var Wrapper = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
16
+ var SubmitButton = (0, _styledComponents["default"])(_common.Button)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: 100%;\n"])));
17
+ var Footer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: ", ";\n margin-top: ", ";\n"])), function (props) {
18
+ return props.showForgotPassword ? 'space-between' : 'flex-end';
19
+ }, (0, _toolkit.grid)(4));
20
+ var ForgotPassword = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n > a {\n color: ", ";\n }\n"])), function (props) {
21
+ return props.theme.colorText;
22
+ });
23
+ var AlternativeAction = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-weight: bold;\n\n > a {\n color: ", ";\n }\n"])), function (props) {
24
+ return props.theme.colorText;
25
+ });
26
+ var AuthenticationForm = function AuthenticationForm(props) {
27
+ var alternativeActionLabel = props.alternativeActionLabel,
28
+ alternativeActionLink = props.alternativeActionLink,
29
+ className = props.className,
30
+ children = props.children,
31
+ errorMessage = props.errorMessage,
32
+ forgotPasswordUrl = props.forgotPasswordUrl,
33
+ hasError = props.hasError,
34
+ loading = props.loading,
35
+ onSubmit = props.onSubmit,
36
+ showForgotPassword = props.showForgotPassword,
37
+ submitButtonLabel = props.submitButtonLabel;
38
+ return /*#__PURE__*/_react["default"].createElement(Wrapper, {
39
+ className: className
40
+ }, /*#__PURE__*/_react["default"].createElement(_common.Form, {
41
+ layout: "vertical",
42
+ onFinish: onSubmit,
43
+ ribbonMessage: errorMessage,
44
+ submissionStatus: hasError ? 'error' : null
45
+ }, children, /*#__PURE__*/_react["default"].createElement(SubmitButton, {
46
+ htmlType: "submit",
47
+ loading: loading,
48
+ type: "primary"
49
+ }, submitButtonLabel)), !!alternativeActionLabel && /*#__PURE__*/_react["default"].createElement(Footer, {
50
+ showForgotPassword: showForgotPassword
51
+ }, showForgotPassword && /*#__PURE__*/_react["default"].createElement(ForgotPassword, null, /*#__PURE__*/_react["default"].createElement(_common.CokoLink, {
52
+ to: forgotPasswordUrl
53
+ }, "Forgot your password?")), /*#__PURE__*/_react["default"].createElement(AlternativeAction, null, /*#__PURE__*/_react["default"].createElement(_common.CokoLink, {
54
+ to: alternativeActionLink
55
+ }, alternativeActionLabel))));
56
+ };
57
+ AuthenticationForm.propTypes = {
58
+ /** Function to run on form submit */
59
+ onSubmit: _propTypes["default"].func.isRequired,
60
+ /** Text displayed at bottom right */
61
+ alternativeActionLabel: _propTypes["default"].string,
62
+ /** Link to redirect to when clicking on alternative action */
63
+ alternativeActionLink: _propTypes["default"].string,
64
+ /** Error message to display when `hasError` is true */
65
+ errorMessage: _propTypes["default"].string,
66
+ /** Link to redirect to when clicking on "forgot password" */
67
+ forgotPasswordUrl: _propTypes["default"].string,
68
+ /** Controls whether there is an incoming error from __outside__ the form. (eg. from a failed server response) */
69
+ hasError: _propTypes["default"].bool,
70
+ /** Control waiting for response status */
71
+ loading: _propTypes["default"].bool,
72
+ /** Show / hide "forgot password" */
73
+ showForgotPassword: _propTypes["default"].bool,
74
+ /** Text displayed inside submit button */
75
+ submitButtonLabel: _propTypes["default"].string
76
+ };
77
+ AuthenticationForm.defaultProps = {
78
+ alternativeActionLabel: null,
79
+ alternativeActionLink: null,
80
+ errorMessage: null,
81
+ forgotPasswordUrl: '/request-password-reset',
82
+ hasError: false,
83
+ loading: false,
84
+ showForgotPassword: false,
85
+ submitButtonLabel: 'Submit'
86
+ };
87
+ var _default = exports["default"] = AuthenticationForm;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ var _common = require("../common");
9
+ var _templateObject;
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
12
+ var Title = (0, _styledComponents["default"])(_common.H1)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n text-align: center;\n"])));
13
+ var _default = exports["default"] = Title;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ var _toolkit = require("../../toolkit");
9
+ var _templateObject;
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
12
+ var AuthenticationWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: white;\n border-radius: 3px;\n padding: ", ";\n width: 100%;\n"])), (0, _toolkit.grid)(12));
13
+ var _default = exports["default"] = AuthenticationWrapper;
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _antd = require("antd");
11
+ var _common = require("../common");
12
+ var _ProfileForm = _interopRequireDefault(require("./ProfileForm"));
13
+ var _excluded = ["className", "form", "loading", "message", "onSubmit", "submissionStatus"];
14
+ var _templateObject, _templateObject2;
15
+ /* eslint-disable react/jsx-props-no-spreading */
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
17
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
18
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
19
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
20
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
21
+ var Col = (0, _styledComponents["default"])(_antd.Col)(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
22
+ var Row = function Row(_ref) {
23
+ var children = _ref.children;
24
+ return /*#__PURE__*/_react["default"].createElement(_antd.Row, {
25
+ align: "baseline",
26
+ gutter: 8
27
+ }, children);
28
+ };
29
+ var Wrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([""])));
30
+ var ChangePassword = function ChangePassword(props) {
31
+ var className = props.className,
32
+ form = props.form,
33
+ loading = props.loading,
34
+ message = props.message,
35
+ onSubmit = props.onSubmit,
36
+ submissionStatus = props.submissionStatus,
37
+ rest = _objectWithoutProperties(props, _excluded);
38
+ return /*#__PURE__*/_react["default"].createElement(Wrapper, {
39
+ className: className
40
+ }, /*#__PURE__*/_react["default"].createElement(_ProfileForm["default"], _extends({
41
+ form: form,
42
+ loading: loading,
43
+ message: message,
44
+ onSubmit: onSubmit,
45
+ submissionStatus: submissionStatus
46
+ }, rest), /*#__PURE__*/_react["default"].createElement(_common.FormSection, {
47
+ label: "Password",
48
+ last: true
49
+ }, /*#__PURE__*/_react["default"].createElement(Row, null, /*#__PURE__*/_react["default"].createElement(Col, {
50
+ sm: 12,
51
+ xs: 24
52
+ }, /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
53
+ label: "Current password",
54
+ name: "currentPassword",
55
+ rules: [{
56
+ required: true,
57
+ message: 'Please provide current password before changing it'
58
+ }]
59
+ }, /*#__PURE__*/_react["default"].createElement(_common.Input, {
60
+ autoComplete: "current-password",
61
+ "data-testid": "currentPassword",
62
+ type: "password"
63
+ })))), /*#__PURE__*/_react["default"].createElement(Row, null, /*#__PURE__*/_react["default"].createElement(Col, {
64
+ sm: 12,
65
+ xs: 24
66
+ }, /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
67
+ dependencies: ['currentPassword'],
68
+ label: "New password",
69
+ name: "newPassword",
70
+ rules: [{
71
+ required: true,
72
+ message: 'This field is required'
73
+ }, function (_ref2) {
74
+ var getFieldValue = _ref2.getFieldValue;
75
+ return {
76
+ validator: function validator(_, value) {
77
+ if (value && !!getFieldValue('currentPassword') || !value) {
78
+ return Promise.resolve();
79
+ }
80
+ return Promise.reject(new Error('You must first provide the current password in order to change it!'));
81
+ }
82
+ };
83
+ }]
84
+ }, /*#__PURE__*/_react["default"].createElement(_common.Input, {
85
+ autoComplete: "new-password",
86
+ "data-testid": "newPassword",
87
+ type: "password"
88
+ }))), /*#__PURE__*/_react["default"].createElement(Col, {
89
+ sm: 12,
90
+ xs: 24
91
+ }, /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
92
+ dependencies: ['newPassword'],
93
+ label: "Password confirmation",
94
+ name: "newPasswordConfirmation",
95
+ rules: [{
96
+ required: true,
97
+ message: 'This field is required'
98
+ }, function (_ref3) {
99
+ var getFieldValue = _ref3.getFieldValue;
100
+ return {
101
+ validator: function validator(_, value) {
102
+ if (!value || getFieldValue('newPassword') === value) {
103
+ return Promise.resolve();
104
+ }
105
+ return Promise.reject(new Error('The two passwords that you entered do not match!'));
106
+ }
107
+ };
108
+ }]
109
+ }, /*#__PURE__*/_react["default"].createElement(_common.Input, {
110
+ autoComplete: "new-password",
111
+ "data-testid": "newPasswordConfirmation",
112
+ type: "password"
113
+ })))))));
114
+ };
115
+ ChangePassword.propTypes = {
116
+ form: _propTypes["default"].shape(),
117
+ loading: _propTypes["default"].bool,
118
+ message: _propTypes["default"].string,
119
+ onSubmit: _propTypes["default"].func.isRequired,
120
+ submissionStatus: _propTypes["default"].oneOf(['success', 'error', 'danger'])
121
+ };
122
+ ChangePassword.defaultProps = {
123
+ form: null,
124
+ loading: false,
125
+ message: '',
126
+ submissionStatus: null
127
+ };
128
+ var _default = exports["default"] = ChangePassword;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _common = require("../common");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ var DeactivateUsers = function DeactivateUsers() {
11
+ return /*#__PURE__*/_react["default"].createElement(_common.Result, {
12
+ status: "403",
13
+ subTitle: "Sorry, your user has been deactivated. Please contact the administrators if you think this is a mistake.",
14
+ title: "403"
15
+ });
16
+ };
17
+ var _default = exports["default"] = DeactivateUsers;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _common = require("../common");
10
+ var _AuthenticationForm = _interopRequireDefault(require("./AuthenticationForm"));
11
+ var _AuthenticationHeader = _interopRequireDefault(require("./AuthenticationHeader"));
12
+ var _AuthenticationWrapper = _interopRequireDefault(require("./AuthenticationWrapper"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
14
+ // import styled from 'styled-components'
15
+
16
+ var Login = function Login(props) {
17
+ var className = props.className,
18
+ errorMessage = props.errorMessage,
19
+ hasError = props.hasError,
20
+ loading = props.loading,
21
+ onSubmit = props.onSubmit;
22
+ return /*#__PURE__*/_react["default"].createElement(_common.Page, {
23
+ maxWidth: 600
24
+ }, /*#__PURE__*/_react["default"].createElement(_AuthenticationWrapper["default"], {
25
+ className: className
26
+ }, /*#__PURE__*/_react["default"].createElement(_AuthenticationHeader["default"], null, "Login"), /*#__PURE__*/_react["default"].createElement(_AuthenticationForm["default"], {
27
+ alternativeActionLabel: "Do you want to signup instead?",
28
+ alternativeActionLink: "/signup",
29
+ errorMessage: errorMessage,
30
+ hasError: hasError,
31
+ loading: loading,
32
+ onSubmit: onSubmit,
33
+ showForgotPassword: true,
34
+ submitButtonLabel: "Log in",
35
+ title: "Login"
36
+ }, /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
37
+ label: "Email",
38
+ name: "email",
39
+ rules: [{
40
+ required: true,
41
+ message: 'Email is required'
42
+ }, {
43
+ type: 'email',
44
+ message: 'This is not a valid email address'
45
+ }]
46
+ }, /*#__PURE__*/_react["default"].createElement(_common.Input, {
47
+ autoComplete: "email",
48
+ placeholder: "Please enter your email",
49
+ type: "email"
50
+ })), /*#__PURE__*/_react["default"].createElement(_common.Form.Item, {
51
+ label: "Password",
52
+ name: "password",
53
+ rules: [{
54
+ required: true,
55
+ message: 'Password is required'
56
+ }]
57
+ }, /*#__PURE__*/_react["default"].createElement(_common.Input, {
58
+ autoComplete: "current-password",
59
+ placeholder: "Please enter your password",
60
+ type: "password"
61
+ })))));
62
+ };
63
+ Login.propTypes = {
64
+ errorMessage: _propTypes["default"].string,
65
+ hasError: _propTypes["default"].bool,
66
+ loading: _propTypes["default"].bool,
67
+ onSubmit: _propTypes["default"].func.isRequired
68
+ };
69
+ Login.defaultProps = {
70
+ errorMessage: null,
71
+ hasError: false,
72
+ loading: false
73
+ };
74
+ var _default = exports["default"] = Login;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _toolkit = require("../../toolkit");
11
+ var _common = require("../common");
12
+ var _excluded = ["children", "className", "message", "form", "loading", "onSubmit", "showSecondaryButton", "secondaryButtonAction", "secondaryButtonLabel", "submitButtonLabel", "submissionStatus"];
13
+ var _templateObject, _templateObject2;
14
+ /* eslint-disable react/jsx-props-no-spreading */
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
16
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
17
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
18
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
19
+ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
20
+ var Wrapper = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
21
+ var FormButtonsContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n gap: ", ";\n justify-content: right;\n padding: 0 ", ";\n"])), (0, _toolkit.grid)(1), (0, _toolkit.grid)(4));
22
+ var ProfileForm = function ProfileForm(props) {
23
+ var children = props.children,
24
+ className = props.className,
25
+ message = props.message,
26
+ form = props.form,
27
+ loading = props.loading,
28
+ onSubmit = props.onSubmit,
29
+ showSecondaryButton = props.showSecondaryButton,
30
+ secondaryButtonAction = props.secondaryButtonAction,
31
+ secondaryButtonLabel = props.secondaryButtonLabel,
32
+ submitButtonLabel = props.submitButtonLabel,
33
+ submissionStatus = props.submissionStatus,
34
+ rest = _objectWithoutProperties(props, _excluded);
35
+ return /*#__PURE__*/_react["default"].createElement(Wrapper, {
36
+ className: className
37
+ }, /*#__PURE__*/_react["default"].createElement(_common.Form, _extends({
38
+ form: form,
39
+ layout: "vertical",
40
+ onFinish: onSubmit,
41
+ ribbonMessage: message,
42
+ ribbonPosition: "bottom",
43
+ submissionStatus: submissionStatus
44
+ }, rest), children, /*#__PURE__*/_react["default"].createElement(FormButtonsContainer, null, showSecondaryButton && /*#__PURE__*/_react["default"].createElement(_common.Button, {
45
+ disabled: loading,
46
+ onClick: secondaryButtonAction
47
+ }, secondaryButtonLabel), /*#__PURE__*/_react["default"].createElement(_common.Button, {
48
+ "data-testid": "profile-form-submit-button",
49
+ htmlType: "submit",
50
+ loading: loading,
51
+ type: "primary"
52
+ }, submitButtonLabel)), loading && /*#__PURE__*/_react["default"].createElement(_common.VisuallyHiddenElement, {
53
+ role: "status"
54
+ }, "Saving profile")));
55
+ };
56
+ ProfileForm.propTypes = {
57
+ /** optional form instance to control the form from the parent */
58
+ form: _propTypes["default"].shape(),
59
+ loading: _propTypes["default"].bool,
60
+ message: _propTypes["default"].string,
61
+ /** Function that receives the values as parameter */
62
+ onSubmit: _propTypes["default"].func.isRequired,
63
+ showSecondaryButton: _propTypes["default"].bool,
64
+ secondaryButtonAction: _propTypes["default"].func,
65
+ secondaryButtonLabel: _propTypes["default"].string,
66
+ submitButtonLabel: _propTypes["default"].string,
67
+ submissionStatus: _propTypes["default"].oneOf(['success', 'error', 'danger'])
68
+ };
69
+ ProfileForm.defaultProps = {
70
+ form: null,
71
+ loading: false,
72
+ message: '',
73
+ showSecondaryButton: false,
74
+ secondaryButtonAction: function secondaryButtonAction() {},
75
+ secondaryButtonLabel: 'Cancel',
76
+ submitButtonLabel: 'Save',
77
+ submissionStatus: null
78
+ };
79
+ var _default = exports["default"] = ProfileForm;